RETIRED — US court opinions (410 corpus_retired)

⛔ RETIRED 2026-08-22 — THIS ENDPOINT NOW RETURNS 410 corpus_retired.

The US court-opinion corpus (988,554 records) is out of scope for this API and is no longer served. Opinion identifications remain available at https://www.courtlistener.com. No other /v1 surface is affected, and nothing is charged against your record budget for this path — the refusal is returned before the tier gate and before any metering.

The original description is kept verbatim below, as the record of what this endpoint did. A restore therefore reinstates a KNOWN contract rather than a reconstructed one.

─────────────────────────────────────────────────────────────

Published opinions filed 2015-01-01 onward from federal appellate courts and state supreme/appellate courts. Each record IDENTIFIES a decision — case name, court, filing date, docket number, reporter citation, and how many later opinions cite it — and links to the full decision at absolute_url.

THERE IS NO OPINION TEXT AND NO HOLDING IN THIS CORPUS. q is a websearch full-text match over the CASE NAME only (quoted phrases and -exclusion work: "Trump v. Cook", monsanto -durnell), and every response that ran one says so in meta.search_field. Do not describe this endpoint as searching the text of decisions.

METERED ON RECORDS SERVED, on the SAME budget as /v1/us-law rather than a second one. That is deliberate: a separate allowance would have widened every existing key the day this dataset shipped. Every response carries meta.record_budget; exhausting it returns 429 record_budget_exceeded.

TWO LIMITS COME FROM THE SIZE OF THE TABLE, NOT FROM YOUR TIER, and they apply identically at every tier including Enterprise. (1) meta.total is the PLANNER’S ESTIMATE above 1,000 rows — it measured 53% low on one full-text query — so it is always accompanied by meta.total_is_estimate; pass count=exact for the true number, at up to ~3.3 s. (2) sort=citation_count and cited_min have no index behind them and are refused with 400 unless the query already carries a narrowing filter; unfiltered, they are cancelled by the database statement timeout.

PRODUCT SCOPE: this endpoint belongs to the US Law Platform. A key licensed only for AI Law Tracker is served here at the public (keyless) level, reported in X-ALT-Product-Scope — not refused.

get/us-law/opinions

Request

  • Base URL: https://ai-law-tracker.com/api/v1
  • URL: https://ai-law-tracker.com/api/v1/us-law/opinions
  • Auth: one of:
    • none
    • API key in header X-API-Key
    • HTTP bearer

Query parameters

courtstring

Court slug, comma-separated for several (max 25), e.g. scotus,ca9. The valid values are published by /us-law/courts, which needs no key.

court_levelstring

federal_appellate, state_supreme and/or state_appellate, comma-separated.

jurisdiction_levelstring

federal and/or state, comma-separated. state covers both state_supreme and state_appellate. Combined with court_level it means the INTERSECTION; a contradictory pair returns an empty page rather than a silently dropped filter.

cluster_idstring

Fetch specific opinions by cluster id; comma-separated, up to 100. The batch form of /us-law/opinions/{cluster_id}.

filed_fromstring date

Filed on or after this date (YYYY-MM-DD).

filed_tostring date

Filed on or before this date (YYYY-MM-DD).

qstring

Websearch full-text over the CASE NAME. Quoted phrases and -exclusion supported. It does NOT search opinion text — this corpus holds none.

citationstring

Exact reporter citation, e.g. 2022 OK 38. CASE-SENSITIVE against the canonical citation: the index that makes this a 212 ms lookup instead of a 6.3 s scan cannot answer a case-insensitive match.

citation_prefixstring

Citation starts-with, e.g. "2022 OK" for that year and reporter. The deliberate widening of citation, asked for by name so you know which you got.

cited_mininteger

Only opinions cited by at least this many later opinions. Requires at least one narrowing filter (see the endpoint description).

sort'date_filed' | 'citation_count'

citation_count requires at least one narrowing filter. case_name sorting is not offered — no index, and nobody pages a million captions alphabetically.

order'asc' | 'desc'
count'estimated' | 'exact'

exact costs up to ~3.3 s and needs a key (any key, including a free one) — an unauthenticated request that can pin a database core for 3 s is a self-inflicted denial-of-service. A keyless caller silently gets estimated and sees count in meta.gated.

limitinteger

Clamped to your tier cap; the clamp is reported in meta.gated.

offsetinteger

Clamped to your tier pagination depth.

Response

Matching opinions, plus the record-budget state.

api_versionstring
attributionstring

Changes

No recorded changes to this operation across all 1 revision of this API.