Codesota · APIRegistry lookup · livev0.1 · April 2026
§ 00 · Endpoint

/api/sota — the registry, callable.

One GET, one task, one dated pick. Free, CORS-open, no auth, agent-discoverable. Returns the current state-of-the-art per task as JSON, with full provenance — benchmark id, metric, paper link, model card link, and a stable snapshot id you can cache against.

CodeSOTA does not run your inference. We are the assay; you call the model at your own provider. That separation is the product — it’s why the answers are credible.

Try /api/sota Read the methodology
§ 01 · Quickstart

Three curls.

Index — every task with at least one scored run
curl https://www.codesota.com/api/sota
OCR SOTA pick (short alias)
curl https://www.codesota.com/api/sota/ocr?tier=sota
Same call, full DB id
curl https://www.codesota.com/api/sota/document-ocr?tier=sota
§ 02 · Response

Example payload.

What the OCR call returns. Fields documented in § 03.

GET /api/sota/ocr?tier=sota
{
  "task": "ocr",
  "task_full_id": "document-ocr",
  "task_name": "Document OCR",
  "benchmark": "omnidocbench",
  "benchmark_version": null,
  "tier": "sota",
  "as_of": "2026-04-22T00:00:00.000Z",
  "snapshot_id": "reg-2026-04-22-a1b2c3",
  "pick": {
    "model_id": "paddleocr-vl-1.5",
    "model_name": "PaddleOCR-VL 1.5",
    "model_url": "https://www.codesota.com/model/paddleocr-vl-1.5",
    "vendor": "Baidu",
    "provider_hints": null,
    "score": 94.5,
    "score_metric": "omnidocbench_composite",
    "metric_id": "composite",
    "higher_is_better": true,
    "benchmark": { "id": "omnidocbench", "name": "OmniDocBench" },
    "cost_per_1k_usd": null,
    "cost_basis": null,
    "result_date": "2026-04-22"
  },
  "runners_up": [
    { "model_id": "dots-ocr-3b", "score": 88.41, "...": "..." },
    { "model_id": "monkeyocr-pro", "score": 86.96, "...": "..." }
  ],
  "registry_url": "https://www.codesota.com/ocr",
  "methodology_url": "https://www.codesota.com/methodology",
  "retrieved_at": "2026-04-26T22:00:00.000Z"
}
§ 03 · Fields

Schema reference.

FieldTypeMeaning
taskstringShort alias if one exists, otherwise the full DB id.
task_full_idstringAlways the full DB id. Stable across alias renames.
task_namestringHuman-readable task name from the registry.
benchmarkstringDataset id of the winning benchmark for this task.
benchmark_versionstring | nullReserved for v0.2 quarterly snapshots — currently null.
tier"sota"Always "sota" in v0.1. balanced/cheap return 501.
as_ofISO 8601 string | nullDate the winning result was scored.
snapshot_idstringreg-YYYY-MM-DD-xxxxxx. Stable across re-fetches that don’t change the pick.
pickobjectThe SOTA model entry for this task — see schema below.
pick.model_idstringCodesota canonical model id.
pick.model_urlURLDirect link to the model card on codesota.com.
pick.vendorstring | nullVendor or upstream lab if known.
pick.provider_hintsstring[] | nullReserved — where you can run this model. v0.2.
pick.scorenumberNumeric score, in the metric’s native units.
pick.score_metricstringsnake_case <benchmark>_<metric>, e.g. omnidocbench_composite.
pick.metric_idstringRaw metric id from the registry.
pick.higher_is_betterbooleanDirection. true for accuracy/pass@k; false for CER/WER/FID/loss.
pick.benchmarkobject{ id, name } of the benchmark dataset.
pick.cost_per_1k_usdnumber | nullReserved — unified vendor pricing. v0.2.
pick.cost_basisstring | nullReserved — narrates the cost model used. v0.2.
pick.result_dateYYYY-MM-DD | nullDate of the winning result.
runners_uppick[]Up to 3 entries below the pick, same shape.
registry_urlURLCurated task hub on codesota.com (e.g. /ocr).
methodology_urlURLAlways /methodology — published, dated, citable.
retrieved_atISO 8601Timestamp the response was generated.
§ 04 · Task aliases

Short names accepted.

The DB carries verbose, hyphenated task ids. The API accepts both forms.

ShortFull id
ocrdocument-ocr
codecode-generation
asrspeech-recognition
sttspeech-recognition
ttstext-to-speech
vqavisual-question-answering
captionimage-captioning
t2itext-to-image
t2vtext-to-video
§ 05 · Errors

Status codes.

HTTPWhenBody
404Unknown task id (or alias not registered){ error, hint, see }
404Task is registered but has zero scored runs{ error, hint, see }
501Caller asked for tier=balanced or tier=cheap (v0.1 supports only sota){ error, hint, see }
503Registry database unreachable{ error }
500Unexpected query failure{ error, hint }

All error responses include CORS headers, JSON body, and a hint or see field where useful. see typically points back to the index endpoint or the task hub on codesota.com.

§ 06 · Limits

What you can count on.

  • Caching. Cache-Control public, max-age=300, s-maxage=300. Vercel’s edge serves most hits without touching the database.
  • CORS. Access-Control-Allow-Origin: *. No credentials, no cookies. Browser code from any origin can call the endpoint.
  • Rate limit. None today. Reasonable use: a router polling every minute is fine; a crawler hitting every task every second is not. We’ll publish quotas if abuse warrants them.
  • Versioning. The path is permanent. Reserved fields (provider_hints, cost_per_1k_usd, cost_basis, benchmark_version) publish as null today and populate in v0.2 — additions only, never breaking.
  • Discoverability. Allowed in robots.txt for AI and search crawlers. Documented in llms.txt for LLM-grounded answers.
§ 07 · Positioning

Why this is not a router.

S&P doesn’t trade. UL doesn’t sell appliances. CodeSOTA doesn’t route inference. The reason every score in the registry is credible is that we have no financial stake in which model wins — adding inference markup would put exactly the wrong incentive in the loop.

/api/sota is the assay. You call the model at your own provider — OpenAI, Anthropic, Replicate, fal, self-hosted, whatever. Your latency, your billing, your circuit breakers. Our SOTA pick stays editorially independent of where you run inference.

If you want a reference router built on this endpoint, see hardparse.com — a separate product that demonstrates how to consume the registry. Note the separation: hardparse takes inference traffic, codesota does not.