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.3.02026-11-02
    CNR lookup, case monitoring and webhooks
    • New GET /cases/by-cnr/{cnr}: look a case up by CNR for 1 credit, charged only when a record is returned. Add fetch=true to pull a CNR we do not hold live from eCourts.
    • POST /search/cases accepts an optional cnr field for an exact match.
    • New watchlists of CNRs: POST, GET, PATCH and DELETE /watchlists, and POST, GET and DELETE /watchlists/{id}/items. Every watched case is checked at least once each IST day, free within your plan's watch cap (Free 10, Pay As You Go 1,000, Scale 10,000, Enterprise by contract).
    • New events feed: GET /changes and GET /watchlists/{id}/events, 1 credit per page of up to 100 events, empty pages free. Event types: case.tracking_started, case.order_added, case.hearing_date_changed, case.status_changed, case.stage_changed, case.disposed and case.not_found.
    • New signed webhooks: POST, GET, PATCH and DELETE /webhooks, with rotate-secret, test and delivery log endpoints. HMAC SHA256 signatures, eight attempts over about two days, free.
    • POST /request-timeline with refresh:true now costs 1 credit (previously 20).
    • New API key scopes monitoring:read and monitoring:write. Keys with no explicit scopes keep full access.
    • SDKs @courtmesh/sdk and courtmesh 0.5.0 and @courtmesh/mcp-server 0.5.0 add the new endpoints and a webhook signature helper.
    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 a deeper dependency check, returning version 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 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.