Quickstart
Make a first call. The public base URL is https://api.cambent.ai.
The public Index API base URL is https://api.cambent.ai. No key for /v1/index/tkx, /v1/models, /v1/tasks, /v1/events, or /openapi.json. Only paid history and higher limits need a key.
1. Get the current index
curl -sS "https://api.cambent.ai/v1/index/tkx"
Example of the response shape. The values in the page source are placeholders, not a reading. When the keyless call succeeds, this block shows the live JSON.
{
"source": "Cambent TKX",
"asOf": "YYYY-MM-DD",
"scoringVersion": "placeholder",
"constructionVersion": "placeholder",
"methodology": "https://cambent.ai/methodology",
"series": {
"tkx": {
"id": "tkx",
"name": "TKX",
"value": null,
"asOf": "YYYY-MM-DD"
},
"tkx-open": {
"id": "tkx-open",
"name": "TKX-Open",
"value": null,
"asOf": "YYYY-MM-DD"
},
"tkx-frontier": {
"id": "tkx-frontier",
"name": "TKX-Frontier",
"value": null,
"asOf": "YYYY-MM-DD"
}
},
"freshness": {
"state": "placeholder",
"lagging": null,
"asOf": "YYYY-MM-DD",
"requiredAsOf": "YYYY-MM-DD",
"rule": "placeholder"
},
"marketHigh": null,
"marketLow": null
}
| Field | Meaning |
|---|---|
source | Attribution string |
asOf | Date of the reading. The same date sits on each series. |
series.tkx / series.tkx-open / series.tkx-frontier | Index level against the Aug 4, 2026 baseline (100), with that series' asOf |
freshness | When the data may be behind (the last update is older than the previous weekday's close), state is STALE and lagging is true. The index level stays the same. |
scoringVersion / constructionVersion | Cite using the methodology page |
methodology | Human methodology URL |
marketHigh / marketLow | Market extremes on the panel |
2. History
Anonymous history is the last 30 days. Scope read-index unlocks the fuller dated archive.
curl -sS "https://api.cambent.ai/v1/index/tkx/history?from=YYYY-MM-DD&to=YYYY-MM-DD&interval=day"
curl -sS "https://api.cambent.ai/v1/index/tkx/history?from=YYYY-MM-DD&to=YYYY-MM-DD&interval=day" \
-H "Authorization: Bearer YOUR_API_KEY"
# or: -H "X-Api-Key: YOUR_API_KEY"
Send the key as Authorization: Bearer or X-Api-Key. Keys are issued when you Request Access. There is no public form that mints keys for strangers.
3. Look up a model
curl -sS "https://api.cambent.ai/v1/models/{id}"
Primary fields: input_price, output_price, quality_by_task, quality_source, price_source, grounding_tier, asOf.
Live series ids: tkx, tkx-open, tkx-frontier.
Other public GETs
No key: /v1/index, /v1/models, /v1/methodology, /v1/tasks, /v1/events, /health, and OpenAPI at /openapi.json.
Rate limits and errors
Anonymous Index: 120 requests per minute per IP (X-RateLimit-Limit, X-RateLimit-Scope: anonymous). Keyed calls use the issued plan rate.
Error envelope: source, error, message (plus scope / limit / retryAfter when relevant).
{
"source": "Cambent TKX",
"error": "not_found",
"message": "Unknown index id. Live series: tkx, tkx-open, tkx-frontier."
}
Cite the TKX: Source: Cambent TKX (https://tkx.cambent.ai), as of the response asOf. Methodology: https://cambent.ai/methodology.
Cambent publishes the signal; you decide.