CourtMesh API Changelog
    Skip to main content

    API Changelog

    Every dated change to the CourtMesh API, newest first. This is the announcements page referenced in our Terms of Service.

    Versioning and deprecation policy
    What "v1" commits to, and how we tell you before something changes under you.

    /api/v1/prod is additive only within v1: a new endpoint, a new optional request field, or a new field on a response never removes or renames anything that already exists. Existing fields keep their type and meaning. Code written against v1 today should keep working against v1 tomorrow without a scheduled migration.

    A breaking change, if one is ever needed, gets a new major version and at least 90 days notice on the version it replaces. During that window the old version keeps working and carries three signals on every response: an Deprecation header, a Sunset header naming the date it stops answering, and a Link header with rel="deprecation" pointing at the migration notes for the replacement. We also post the change on this page and email active API users directly, the same commitment made in Section 6 of our Terms of Service.

    v1.2.02026-09-18
    Request ids, idempotency keys, batch screening, reference data
    • One request id on every response (X-Request-Id header, requestId in every error body) and one error envelope across the whole API: { success: false, code, message, error, requestId }.
    • New GET /usage: your tier, balance, per tier limits and per endpoint call counts for the current period, unmetered.
    • GET /health accepts ?deep=1 for an actual Mongo, OpenSearch, Qdrant, Redis and IAM check, returning version, commit and a per dependency checks object; a hard dependency failure now answers HTTP 503.
    • New Idempotency-Key request header on POST /party/screen, POST /party/screen/batch, POST /cases/{id}/analyze, POST /cases/{id}/analyze-consolidated and POST /request-timeline: a replayed key and body returns the stored response with no second charge; a reused key with a different body is refused.
    • New POST /party/screen/batch: screen 1 to 25 names in one call, priced per item on the same schedule as a single screen.
    • New public, no key GET /reference/courts and GET /reference/case-types, the exact taxonomy the search endpoints accept.
    • API keys can now be rotated (POST /api/settings/api-keys/{id}/rotate) with a 24 hour overlap window, and deleting a key is a soft revoke that keeps its call history intact.
    • Organisations can enable per IP allowlisting for their API keys, with an opt in strict (fail closed) mode.
    • Free tier scope change: no AI analysis endpoints at all (previously a small monthly allowance), and the litigation check and batch screening endpoints carry an explicit monthly cap.
    v1.1.02026-09-18
    Litigation check, coverage, consolidated analysis pricing
    • New POST /party/screen: confidence scored litigation check against the corpus, with an optional LLM adjudication pass.
    • New public, no key GET /coverage: corpus coverage and freshness by court and year, cached and refreshed every few hours.
    • POST /cases/{id}/analyze priced at 100 credits.
    • Free tier AI lockout: no AI analysis generation or reads on the Free tier at all, full stop.
    v1.0.0Initial release
    Baseline: twelve endpoints
    • Initial public release: judges/search, search/cases, search/cases/semantic, cases/{id}, cases/{id}/related, cases/{id}/analysis, cases/{id}/pdf, cases/{id}/analyze, request-timeline, get-timeline/{requestId}, me and audit.