Get a macro time series
A FRED macro time series (e.g. DGS10, CPIAUCSL, VIXCLS) with its title, units, native frequency and dated observations in ascending order, optionally bounded by start and end. The series id MUST be on the published allowlist - an unknown id is rejected with invalid_request rather than proxied, so this is never an open FRED gateway. FRED encodes a missing observation as "." and those rows are OMITTED rather than coerced to 0, so a gap never reads as a real zero. When no FRED API key is configured the endpoint returns a typed unavailable error rather than a fabricated series.
A FRED macro time series (e.g. DGS10, CPIAUCSL, VIXCLS) with its title, units, native frequency and dated observations in ascending order, optionally bounded by start and end. The series id MUST be on the published allowlist - an unknown id is rejected with invalid_request rather than proxied, so this is never an open FRED gateway. FRED encodes a missing observation as "." and those rows are OMITTED rather than coerced to 0, so a gap never reads as a real zero. When no FRED API key is configured the endpoint returns a typed unavailable error rather than a fabricated series.
Authorization
ApiKeyAuth macro:readPresent your API key as a bearer token: Authorization: Bearer pk_live_....
Two environments are issued per account. A pk_test_ sandbox key returns the SAME real historical data as a live key and does NOT consume your LIVE allowance, so learning the API is free. It has its own separate windows and can be rate limited on them. A pk_live_ key reads against your allowance.
Keys carry explicit scopes (instruments:read, prices:read, actions:read, fx:read, earnings:read, options:read, news:read, sentiment:read, events:read, analytics:read, correlations:read, technicals:read, macro:read) and are enforced fail-closed, so a leaked key is bounded to what it was issued for. Revocation is immediate.
In: header
Scope: macro:read
Path Parameters
A FRED series id from the published allowlist (e.g. DGS10, CPIAUCSL, VIXCLS). An id outside the allowlist is rejected with invalid_request rather than proxied - this endpoint is not an open FRED gateway.
Value in
- "DGS1MO"
- "DGS3MO"
- "DGS6MO"
- "DGS1"
- "DGS2"
- "DGS5"
- "DGS10"
- "DGS20"
- "DGS30"
- "FEDFUNDS"
- "DFEDTARU"
- "DFEDTARL"
- "CPIAUCSL"
- "CPILFESL"
- "PCEPI"
- "PCEPILFE"
- "T5YIE"
- "T10YIE"
- "DFII5"
- "DFII10"
- "DFII20"
- "DFII30"
- "T10Y2Y"
- "T10Y3M"
- "DTWEXBGS"
- "UNRATE"
- "PAYEMS"
- "VIXCLS"
Query Parameters
Earliest observation date, inclusive (yyyy-mm-dd). Omit for the full available history.
^\d{4}-\d{2}-\d{2}$Latest observation date, inclusive (yyyy-mm-dd). Omit for up to the latest observation.
^\d{4}-\d{2}-\d{2}$Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/macro/series/DGS1MO"{ "data": { "seriesId": "string", "title": "string", "units": "string", "frequency": "daily", "observations": [ { "date": "string", "value": 0 } ] }, "meta": { "asOf": "string", "source": "string", "stale": true }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}{ "error": { "code": "invalid_request", "message": "string", "docsUrl": "http://example.com", "details": { "property1": [ "string" ], "property2": [ "string" ] } }}Get a technical snapshot GET
A full technical-indicator snapshot (RSI, MACD, SMA/EMA/WMA, Bollinger, ATR, Stochastic, Ichimoku, VWAP, candlestick and chart patterns, plus a consensus trend) over stored daily bars. Every indicator is a deterministic transform of the stored closes/OHLCV. The snapshot is POINT-IN-TIME correct: asOf bounds the bars to those on or before it, so a backtest reads the indicator as it stood then. An indicator that needs more bars than the window holds is null - never a garbage value from too little data - and assumptions.barsUsed reports exactly how many bars were available so the reason is visible. Returns 404 for an unknown instrument or a window with no stored bars.
Get an option contract GET
One contract by id, with its latest observed quote and its latest Greeks. Returns 404 for an unknown contract id - never an invented contract. The same Greeks honesty contract as the chain endpoint applies: provider Greeks are observations, computed Greeks carry their model and inputs, and a contract with neither is returned quote-only with the missing inputs named.