Phase 1 · read only
Public HTTP/JSON for the live Cambent Token Index. Source: Cambent TKX. Current published levels need no API key. History and archive need scope read-index (without a key: last 30 days before as-of). This API does not route traffic or recommend a model. Cite: Source: Cambent TKX.
tkx: TKX headlinetkx-open: TKX-Opentkx-frontier: TKX-FrontierTask, tier, and jurisdiction sub-indices are not published. Unknown ids return 404.
GET /v1/index: catalog of live series ids and print/history paths. No printed values. No API key.GET /v1/index/tkx: current published TKX, TKX-Open, and TKX-Frontier. No API key.GET /v1/index/{id}: one current published series. No API key. Unknown ids are 404.GET /v1/index/{id}/history?from=&to=&interval=day: daily published history. Without a key: last 30 days before as-of. Scope read-index unlocks the archive.GET /v1/tasks: catalog of live task keys (reason, code, extract, classify). Wire ids only. Blend weights live on GET /v1/methodology, not here.GET /v1/tasks/{task}/models: signal-only listed-model slice for one task. Default is all rows (including illustrative and null), sorted by id. Optional graded=true is a tag filter. Position vs the published composite TKX. Not a recommendation.GET /v1/models: listed models (public fields only). points[] only where a real QA-cost snapshot exists in the visible windowGET /v1/models/{id}: one model, stable name slug. Live body includes access, fromFloor, fromFloorDays, and note. Unknown slugs are 404.GET /v1/models/{id}/tasks/{task}: signal-only one model on one task. Index context plus that model's own cell. Null or illustrative quality is 200 with honest tags. Not a recommendation.GET /v1/events: real membership add/drop and re-benchmark events (empty list if none in the visible window)GET /v1/methodology: versions, baseline, live coverage, published task-blend and token-workload numbers, and the methodology URL. Blend weights live here, not on model rows.GET /openapi.json: OpenAPI 3GET /health and GET /healthz: public liveness. Same JSON. Not a print.Primary names are clean. Short keys are deprecated exact-mirror aliases (same cell, same provenance) and remain at least 90 days after clean names ship. This is not a cold drop.
input_price / output_price (aliases in / out): input and output token prices, USD per million tokens. Same million-token (MTok) convention as QA-cost.price_source (alias src): price source / provenance for input_price and output_price.quality_by_task (alias q): per-task quality on the exact priced variant (reason, code, extract, classify). Null means unranked. Not a recommendation.quality_source (alias qsrc): quality provenance per task. A benchmark:... value is graded. illustrative is never auto-graded.is_graded (alias graded): whether that task quality is graded vs illustrative. Illustrative is never auto-graded. Not the same as methodology coverage.graded, which is an integer row count.grounding_tier: Path C row rollup (grounded / partially_grounded / provisional). Distinct from is_graded. Snake_case only. No short alias. Not a recommendation.grounding_source / grounding_as_of / grounding_basis: per-task Path C provenance (reason, code, extract, classify). Source and date are required when that axis is grounded or partially_grounded. List-only or held basis is the exact string listed, not scored yet. Not a recommendation.points[].qa: QA-cost = blended USD-per-MTok ÷ composite quality/100 for that graded blend. Lower values mean lower cost relative to that quality blend. Positioning data only, not a recommendation. Blend weights: GET /v1/methodology.When you publish a number from this API, cite: Source: Cambent TKX (https://tkx.cambent.ai/), as-of the response asOf. Human print: https://tkx.cambent.ai/ and https://cambent.ai/tkx. Series TKX / TKX-Open / TKX-Frontier live on that board and the /tkx print table. Scoring v0.2, construction v0.3, baseline 100 = 2026-08-04. Do not present the print as your own measurement.
/v1/index, /v1/tasks, /v1/tasks/{task}/models, /v1/models/{id}/tasks/{task}, /v1/index/tkx, /v1/index/tkx-open, and /v1/index/tkx-frontier are public. A bad key on those paths still returns the public body.read-index. Without a key, dated history, model points[], and events cover the last 30 days before as-of. That window is not a delay on the current published level.Authorization: Bearer $CAMBENT_KEY or X-Api-Key. Scope read-index unlocks the full archive./v1/analyze is 404.Replace HOST with this Worker URL. Current published levels need no key. History and archive need a key with scope read-index for dates older than 30 days before as-of.
curl -sS "$HOST/v1/index" curl -sS "$HOST/v1/index/tkx" curl -sS "$HOST/v1/index/tkx-open" curl -sS "$HOST/v1/tasks" curl -sS "$HOST/v1/tasks/code/models" curl -sS "$HOST/v1/models/deepseek-v4-pro/tasks/code" curl -sS "$HOST/v1/index/tkx/history?from=2026-08-22&to=2026-08-24&interval=day" curl -sS -H "Authorization: Bearer $CAMBENT_KEY" "$HOST/v1/index/tkx/history?interval=day" curl -sS -H "X-Api-Key: $CAMBENT_KEY" "$HOST/v1/index/tkx/history?interval=day" curl -sS "$HOST/v1/models" curl -sS "$HOST/v1/models/deepseek-v4-pro" curl -sS "$HOST/v1/events" curl -sS "$HOST/v1/methodology" curl -sS "$HOST/openapi.json" curl -sS "$HOST/health" curl -sS "$HOST/healthz"
import os, json, urllib.request
host = os.environ["INDEX_HOST"]
print(json.load(urllib.request.urlopen(host + "/v1/index/tkx")))
req = urllib.request.Request(host + "/v1/index/tkx/history?interval=day")
req.add_header("Authorization", "Bearer " + os.environ["CAMBENT_KEY"])
print(json.load(urllib.request.urlopen(req)))
const host = process.env.INDEX_HOST;
const headline = await fetch(host + "/v1/index/tkx").then((r) => r.json());
const history = await fetch(host + "/v1/index/tkx/history?interval=day", {
headers: { Authorization: "Bearer " + process.env.CAMBENT_KEY }
}).then((r) => r.json());
GET /v1/methodology).from is raised to as-of minus 30 days. Current TKX / Open / Frontier published levels are not limited to that window and never require a key.read-index unlocks the full archive. Keys are issued on the platform Worker, not here. A missing, invalid, or wrong-scope key stays on the 30-day window.points[] and market high/low are published only on days a QA-cost snapshot was persisted. QA-cost = blended USD-per-MTok ÷ composite quality/100 for that graded blend. Lower values mean lower cost relative to that quality blend. Positioning data only, not a recommendation. Illustrative and specialist rows are not a comparable-capability series.Retry-After.Public, no API key. Fetches GET /v1/index/tkx on this Worker (the current published level). Attribution and links to cambent.ai / tkx.cambent.ai are built in. Replace HOST with this Worker URL.
<script src="$HOST/widget.js" data-series="tkx" async></script> <script src="$HOST/widget.js" data-series="tkx,tkx-open,tkx-frontier" async></script> <iframe src="$HOST/widget?series=tkx" title="Cambent TKX" style="border:0;width:100%;max-width:360px;height:212px;" loading="lazy"></iframe>
Methodology: https://cambent.ai/methodology. Machine-readable spec: /openapi.json. Widget: /widget. Quickstart markdown: docs/platform/quickstart.md. API terms placeholder: docs/platform/api-terms.md.