Get the risk-free rate
The current annualized risk-free (Treasury) rate as a decimal, with an honest source tag: source=fred is a live observation, source=fallback means the live source was unreachable (or no FRED API key is configured) and a last-known or hardcoded rate is standing in. maturity names the Treasury term and asOf dates the observation. A caller can always tell a live rate from a degraded stand-in rather than being handed a number that silently drifted.
The current annualized risk-free (Treasury) rate as a decimal, with an honest source tag: source=fred is a live observation, source=fallback means the live source was unreachable (or no FRED API key is configured) and a last-known or hardcoded rate is standing in. maturity names the Treasury term and asOf dates the observation. A caller can always tell a live rate from a degraded stand-in rather than being handed a number that silently drifted.
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
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/macro/risk-free-rate"{ "data": { "rate": 0, "maturity": "string", "source": "fred", "asOf": "string" }, "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 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.
List sentiment source leads GET
The measured lead relationship for each sentiment source and subject class: bestLagDays (the lag at which the source shows peak correlation with subsequent price movement), peakCorrelation, sampleSize, and the DERIVED isPromotionEligible verdict. Published together so a consumer can see WHY a source is or is not trusted to LEAD price rather than merely coincide with it - and apply their own threshold if they disagree. No competitor exposes this.