Dow Jones U.S. Real Estate Investment & Services Index (DJUSRH) Historical Price API — daily OHLC endpoints and usage examples
You need to backfill and chart daily OHLC bars for the Dow Jones U.S. Real Estate Investment & Services Index so you can power dashboards, scanners, or alerting rules. By the end of this article you will fetch the latest DJUSRH print, understand how to interpret the fields, and know how to request daily OHLC and time-series data for robust historical coverage in your app.
What you’re building: a clean daily OHLC pipeline for DJUSRH
The practical goal is a reproducible flow:
- Resolve and confirm the exact symbol for the index (DJUSRH) before coding.
- Fetch the latest price to drive real-time tiles and checks.
- Backfill daily candles via the OHLC and time-series endpoints to render charts and compute indicators.
- Handle weekends/holidays, caching, and end-of-day cutoffs so your pipeline is stable.
If you haven’t created an API key yet, start here: Register. You can always refer to the exact endpoints and parameters in the Documentation and confirm available symbols on the Symbols page.
DJUSRH symbol, base currency, and how quotes are expressed
The index of interest in this article is the Dow Jones U.S. Real Estate Investment & Services Index. The symbol to use is DJUSRH. Always confirm symbols in Indices-API Supported Symbols before deploying code to production.
Indices-API returns data with a base currency of USD by default. In the latest and historical endpoints you will encounter a rates object. Two fields matter when translating that to a price you can chart:
- rates.DJUSRH: quoted as USD per index unit (USD → index). Taking its reciprocal yields index units per USD.
- rates.USDDJUSRH: a convenience cross that directly reports index units per USD (i.e., the index level per $1); numerically this is the reciprocal of rates.DJUSRH.
This dual representation makes it straightforward to compute an index level: you can either use USDDJUSRH directly or compute 1 / rates.DJUSRH for the same value.
Quick start: fetch the latest DJUSRH print
Use the latest endpoint to drive tiles, sanity checks, and alert kick-offs. The endpoint is updated periodically according to your plan tier. For details about refresh cadence, see the Indices-API Documentation.
curl example
Copy and run this request. Replace YOUR_API_KEY with your key.
curl "https://indices-api.com/api/latest?access_key=YOUR_API_KEY&symbols=DJUSRH"
Official JSON response
The following is a real response for DJUSRH. Use these exact field names and types in your integration.
{"data":{"success":true,"timestamp":1794357600,"date":"2026-11-11","base":"USD","rates":{"DJUSRH":0.0019530487090348,"USD":1,"USDDJUSRH":512.0200000000009}}}
Interpreting the fields you’ll actually use
- success: Boolean request status. Check this first.
- timestamp: Unix epoch seconds for the last update.
- date: Calendar date for the data payload (UTC). Treat this as the effective market date, not necessarily “today” in your local timezone.
- base: The currency base used across rates (USD).
- rates.DJUSRH: USD per index unit. The reciprocal is the index level per USD.
- rates.USDDJUSRH: Index units per USD. This is convenient for plotting the index level directly.
From the sample above, the level-equivalent is approximately 512.02. In code you can either take rates.USDDJUSRH, or compute level = 1 / rates.DJUSRH.
JavaScript example
This Node.js snippet calls the same latest endpoint, reads the core fields, and normalizes to an index level number that you can feed to a chart renderer or write into a time-series store.
import fetch from "node-fetch";
async function fetchDJUSRHLatest() {
const url = "https://indices-api.com/api/latest?access_key=YOUR_API_KEY&symbols=DJUSRH";
const res = await fetch(url);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const json = await res.json();
// Defensive parsing: the actual payload is under json.data
const { success, timestamp, date, base, rates } = json.data || {};
if (!success) throw new Error("API returned success=false");
// Prefer direct level from USDDJUSRH when present; otherwise invert rates.DJUSRH
const level = typeof rates.USDDJUSRH === "number"
? rates.USDDJUSRH
: (1 / rates.DJUSRH);
return {
timestamp, // epoch seconds
date, // "YYYY-MM-DD" UTC
base, // "USD"
level, // numeric index level suitable for tiles/charts
raw: json
};
}
fetchDJUSRHLatest()
.then(data => {
console.log(`DJUSRH ${data.date}: ${data.level.toFixed(2)}`);
})
.catch(err => {
console.error(err);
});
Daily OHLC for DJUSRH: endpoint and usage
For charting, scanning breakouts, and computing indicators like ATR or pivot points, you’ll use the daily Open/High/Low/Close endpoint. The OHLC endpoint is available under a dated path of the form:
- open-high-low-close/YYYY-MM-DD
This endpoint returns daily candles keyed by symbol for the specified date, with open, high, low, and close values. Call it once per day in your backfill loop to seed or repair your historical database. If you need the exact request parameters or optional filters (such as specifying a symbol set), check the Documentation.
Practical tips:
- End-of-day values settle after the market close. If you call too early, you may see provisional data. Cache and recheck late in the session if you require final closings.
- The endpoint requires a specific date. For batch backfills, iterate over trading days only; skip weekends and U.S. market holidays.
- Never set the OHLC request date to “today” before the session has settled. Instead, run with a cutoff: request up to yesterday’s date and treat same-day data as “latest” only.
Backfilling DJUSRH time series
Use the time-series endpoint to retrieve a contiguous span of days in one request. This is efficient for initial loads and gap fills after outages. The endpoint returns a date-keyed object whose inner maps include your requested symbols. Consult the Documentation for date range parameters and any per-request limits.
Important integration rules for time-series fetches:
- end_date cannot be today; use yesterday to avoid partial sessions.
- Expect no bars on weekends and certain holidays. Your loader should create “trading calendar aware” sequences rather than assuming every calendar day returns data.
- If your range is very large, process in rolling windows to respect payload sizes and to simplify retries.
- Normalize values consistently with your latest/OHLC logic. If the endpoint returns USD-based rates, convert to an index level the same way you do for the latest endpoint (use USDDJUSRH or 1 / rates.DJUSRH).
Production details that save you time
Update frequency and staleness:
- The latest endpoint refresh cadence varies by plan tier (e.g., periodic updates). Always check the timestamp field to confirm freshness rather than assuming “now.”
- Use If-Modified-Since semantics at your cache layer to avoid unintended hammering. Even a 30–60 second TTL can smooth bursts in dashboards without users noticing lag.
Caching and retries:
- Cache the most recent payload for at least one request interval and replay on transient errors.
- Backoff on 429/5xx and log the last-good timestamp and date so you can resume exact gaps.
Weekends and holidays:
- Don’t assume data for Saturday/Sunday. Your charts library should gracefully “skip” missing dates rather than plotting flat lines.
- Run a daily job after market close plus a buffer (e.g., 1–2 hours) to capture final settlements reliably.
Date handling and timezones:
- The date field is provided in YYYY-MM-DD and aligned to UTC. For U.S. indices, this maps to the U.S. trading session that ended that calendar day in U.S. time. Annotate your downstream data with UTC timestamps to avoid DST issues.
- Keep your backfill logic deterministic: never request beyond yesterday’s date unless you specifically want intraday-latest approximations.
Field conventions:
- base is USD by default.
- rates carry either USD per index (e.g., rates.DJUSRH) or derived cross fields like USDDJUSRH (index level per USD). Use the latter directly for charting or invert the former.
Putting it together: a minimal DJUSRH loader architecture
For a robust daily pipeline you can implement:
- Symbols resolution: On startup, verify that DJUSRH exists via the symbols list. Fail fast if unavailable.
- Latest tile fetch: Poll the latest endpoint at your UI cadence. Normalize to a single numeric level using USDDJUSRH where possible.
- End-of-day batch: After close, call the OHLC endpoint for yesterday’s date to store O/H/L/C. Use time-series for first-run backfills or when catching up a large gap.
- Integrity checks: Validate that the reciprocal relationship holds (Math.abs(1/rates.DJUSRH - rates.USDDJUSRH) < tolerance) and that dates align to trading calendars.
- Alerting: Drive threshold or percentage-change alerts using either the latest level versus prior close (from OHLC) or with the fluctuation endpoint if you choose to expand coverage later. See Documentation for details on additional endpoints.
Endpoint recap for DJUSRH
| Endpoint | Primary use | Key fields to parse | Notes |
|---|---|---|---|
| /api/latest | Current DJUSRH level for tiles and checks | success, timestamp, date, base, rates.DJUSRH, rates.USDDJUSRH | Updated periodically; compute level from USDDJUSRH or 1 / rates.DJUSRH |
| open-high-low-close/YYYY-MM-DD | Daily OHLC bar for DJUSRH | open, high, low, close per symbol | Request settled days; avoid using today before session end |
| /api/timeseries | Backfill multiple days of DJUSRH data | start_date, end_date, base, rates keyed by date | end_date should be yesterday; skip weekends/holidays |
Validation and troubleshooting tips
- If success is false or fields are missing, log the full payload for diagnosis and retry with exponential backoff.
- When comparing latest to OHLC close, expect intraday deviations; latest may reflect in-session moves.
- If you see sparse days in time-series results, check that your date window excludes today and lines up with the U.S. trading calendar. Integrating a market calendar (e.g., NYSE holiday lists) can prevent false alarms.
- For auditability, store the raw JSON, the normalized level, and the reciprocal-check delta for each ingestion step.
Related resources
- Read the full API reference and endpoint parameters in the Indices-API Documentation.
- Confirm DJUSRH and other tickers you plan to track on the Indices-API Supported Symbols list.
- Learn about the MCP and data access options here: MCP.
- For market context and sector insights, see sector-level research sources such as S&P Global Ratings and real estate market dashboards like Nareit.
FAQ
How do I compute a single numeric DJUSRH level from the latest endpoint?
Use rates.USDDJUSRH directly if present. If not present, compute 1 / rates.DJUSRH. Both represent the same value under the default USD base.
Why does my end_date return no data on the time-series endpoint?
end_date cannot be today. Use yesterday’s date, and account for weekends and U.S. holidays where no bar is expected.
When is the best time to fetch daily OHLC?
After the market close plus a buffer to allow for settlement. If you need provisional closes, label them as such and refresh later for the final print.
What timezone are dates in?
The date field is aligned to UTC. Treat it as the effective market date for the U.S. session that just completed. Don’t assume your local timezone.
How often does the latest endpoint update?
Update cadence depends on your plan. Always check the timestamp field to validate freshness and set an appropriate cache TTL for your use case. For plan details and cadence specifics, review the Documentation.
Ready to plug DJUSRH into your charts and scanners? Create your key and start shipping with the latest, OHLC, and time-series endpoints today: Register. For an overview of the platform and broader index coverage, visit indices-api.com.