Skip to main content
What this gets you: a multi-state comparison table for any rule, built automatically instead of by hand - useful for due diligence, multi-state compliance, or any “how does this vary by state” question. Many legal questions are really the same question asked of many jurisdictions: how does each state handle security deposits, non-competes, or breach notice? There are three ways to answer that here, and they differ by an order of magnitude in cost. Start at the top. Endpoints used: GET /us/statutes/section/{actId}/cross-state, POST /us/statutes/search, and GET /us/statutes/coverage (free) to check which jurisdictions carry the corpus.

Best: start from one section you already have

If you can name the provision in one state, cross-state finds its analogue elsewhere. This is the endpoint built for this question. It returns at most one provision per state, ordered most similar first, so the response reads as a jurisdiction comparison rather than a relevance list.
Take the actId from a /us/statutes/search result rather than assembling the string yourself. Do not have one? Spend one 4-credit search to find it, then one 6-credit cross-state call. That is 10 credits for a multi-state comparison against 208 for the 52-state loop.
similarity is a retrieval score between 0 and 1 describing how closely two provisions read. It is not a legal opinion. A high score means the provisions cover the same ground, never that they impose the same obligation, and the differences are usually the point. Treat the response as the shortlist to read, not the answer.
A trimmed response:
statesCovered below the limit you asked for means no provision in the remaining states cleared the similarity floor. It does not mean those states are missing from the corpus.
cross-state is scoped to state statute sections. USC, CFR, regulations and court rules return empty with a note, refunded, because a federal section has no state analogue by definition. limit caps at 25.

Next best: one search across several states

state accepts a list, so one call covers every jurisdiction you name. Use this when you have no starting section, or when you want the corpus to pick the states rather than picking them yourself.
One caveat that decides whether this is enough: the response is one merged ranking, not one slot per state. A jurisdiction whose provision is worded unusually can be pushed off the page by five strong hits from another state. Raise limit (up to 50) and group by each result’s state, and treat a missing state as “not in the top N”, not as “no such law”.
relevanceScore is a relative rank within a single response. Do not compare scores across separate responses to decide which jurisdiction is “more relevant”.

Fallback: one search per state

Loop only when you need a guaranteed slot for every named jurisdiction, including the ones with a weak match, and the visible gaps matter more than the spend. At 4 credits a call this is 208 credits for all 52 jurisdictions, against 6 for cross-state.
1

Drop the states that do not carry the corpus

GET /us/statutes/coverage is free. Read it once, cache it, and never spend a search on a jurisdiction with no data to return.
Python
2

Search each state and assemble the table

States with no match are recorded so the gaps stay visible.
Python
Example output:
Each result carries several optional source URL fields and any may be null. Use the canonical preference order in Text Formats and Source URLs rather than writing your own, so the same section gets the same official link everywhere in your product.

Monitor corpus coverage

Poll for what changed since your last sync.

Enrich a citation database

Attach canonical citations, excerpts, and source links to a batch of rows.

Coverage matrix

See which states carry which corpora.

Best practices

Scope queries, pace requests, and handle errors well.
Last modified on September 6, 2026