MCP Server

Vaquill

io.github.Vaquill-AI/vaquill-mcp

What this MCP does

Searches and retrieves US statutes, regulations, constitutions, and court rules, supports citation resolution and cross-references, and monitors legal-source changes.

count_statute_sections
Count Sections in a Scope
Exact section count for a jurisdiction, corpus, code, title, chapter or part. Use when sizing a job before walking divisions and fetching sections. This counts a scope, not search matches. There is no query parameter, because search ranks within a bounded window and cannot give an exact total of matching sections. A zero count may indicate a wrong filter. Cost: 1 credit.
Read only
Input schema
{'type': 'object', 'required': [], 'properties': {'code': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['tx_26'], 'description': 'State code identifier, e.g. `tx_26`. With `corpusType=FEDERAL_RULES`, a rule set instead (`frcp`, `uscapp_t28a_fre`). Same values and checks as `code` on `/search`.'}, 'part': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['240'], 'description': 'CFR part identifier. Pair with `titleNumber`.'}, 'state': {'enum': ['federal', 'al', 'ak', 'az', 'ar', 'ca', 'co', 'ct', 'de', 'dc', 'fl', 'ga', 'hi', 'id', 'il', 'in', 'ia', 'ks', 'ky', 'la', 'me', 'md', 'ma', 'mi', 'mn', 'ms', 'mo', 'mt', 'ne', 'nv', 'nh', 'nj', 'nm', 'ny', 'nc', 'nd', 'oh', 'ok', 'or', 'pa', 'pr', 'ri', 'sc', 'sd', 'tn', 'tx', 'ut', 'vt', 'va', 'wa', 'wv', 'wi', 'wy'], 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['tx'], 'description': 'Two-letter jurisdiction code or `federal`, single or list.'}, 'article': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['Amendment XIV'], 'description': 'Article label (`Amendment XIV`) on CONSTITUTION / STATE_CONSTITUTION, or article number (`2-A`) on a STATE / REGULATION code divided by article. Same values and pairing rules as `article` on `/search`.'}, 'chapter': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['554'], 'description': 'Chapter identifier. Pair with `titleNumber` or `code`.'}, 'actStatus': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['repealed'], 'description': 'Count only sections carrying this status.'}, 'corpusType': {'anyOf': [{'enum': ['USC', 'CFR', 'STATE', 'CONSTITUTION', 'FEDERAL_RULES', 'STATE_CONSTITUTION', 'STATE_RULES', 'EXECUTIVE_ACTION', 'REGULATION', 'FEDERAL_REGISTER', 'FEDERAL_REGISTER_NOTICE', 'AGENCY_GUIDANCE', 'SENTENCING_GUIDELINES', 'US_TAX_TREATY', 'STATE_AGENCY_GUIDANCE', 'STATE_AG_OPINION', 'SESSION_LAW', 'STATUTE_COMPILATION', 'AGENCY_ADJUDICATION', 'CFR_ANNUAL', 'USC_ANNUAL'], 'type': 'string'}, {'type': 'array', 'items': {'enum': ['USC', 'CFR', 'STATE', 'CONSTITUTION', 'FEDERAL_RULES', 'STATE_CONSTITUTION', 'STATE_RULES', 'EXECUTIVE_ACTION', 'REGULATION', 'FEDERAL_REGISTER', 'FEDERAL_REGISTER_NOTICE', 'AGENCY_GUIDANCE', 'SENTENCING_GUIDELINES', 'US_TAX_TREATY', 'STATE_AGENCY_GUIDANCE', 'STATE_AG_OPINION', 'SESSION_LAW', 'STATUTE_COMPILATION', 'AGENCY_ADJUDICATION', 'CFR_ANNUAL', 'USC_ANNUAL'], 'type': 'string'}}, {'type': 'null'}], 'examples': ['REGULATION'], 'description': 'Corpus to count, single or list. Omit to count every corpus.'}, 'titleNumber': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'examples': [42], 'description': 'USC or CFR title number.'}, 'excludeRepealed': {'type': 'boolean', 'default': False, 'examples': [True], 'description': 'Only sections with an affirmatively dead status are excluded. Sections with no recorded status are kept. US Code uses a stored annual edition, so sections repealed after that edition closed are still counted.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
fetch
Fetch Document
Fetch the full text of one US law section by the `id` from a `search` result, returning `{id, title, text, url, metadata}`. Also accepts a citation URL, a bare path, or a Bluebook citation such as '42 U.S.C. 1983'. Present for clients that require the standard search/fetch pair; prefer `get_us_statute_section_text` if available. Charged as a section lookup plus a body read.
Read only
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_credit_balance
Credit Balance
The credits this API key can spend now, calculated from live credit buckets under the same expiry rules used for billing. Use for pre-flight checks or low-balance alerts. creditsRemaining is a spendable balance, not a cached estimate. Any valid API key works without a particular scope, and normal rate limits still apply. Free.
Read only
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Output schema
{'type': 'object', 'additionalProperties': True}
get_pricing
Credit Pricing
Current API credit pricing: per-endpoint credit costs and the credit-to-currency conversion rate (1 credit = $0.01 USD). Free, and no authentication required. Use to check what a call will cost before making it.
Read only
Input schema
{'type': 'object', 'required': [], 'properties': {'region': {'anyOf': [{'enum': ['US', 'IN'], 'type': 'string'}, {'type': 'null'}], 'description': "Defaults to the jurisdiction of the documentation you are reading. If omitted, returns pricing only for that jurisdiction's endpoints, not prices across jurisdictions."}}}
Output schema
{'type': 'object', 'additionalProperties': True}
get_section_changes
Section Change History
What our refreshes have observed changing on one section over time: when it was added, amended or removed, newest first. This is our capture history, not the publisher's -- an empty list means we recorded no change, never that the section was never amended. For the publisher's own history, read amendmentHistory on the section. Cost: 1 credit.
Read only
Input schema
{'type': 'object', 'required': ['act_id'], 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200.0, 'minimum': 1.0, 'examples': [50], 'description': 'Max changes to return on this page.'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'default': 'desc', 'description': "`desc` (default) is newest first, the natural reading order for a history. Use `asc` to replay a section's life forward, or when catching up from a cursor."}, 'act_id': {'type': 'string', 'examples': ['CFR_T21_P314_S314_50'], 'maxLength': 200, 'minLength': 3, 'description': 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.'}, 'sinceId': {'anyOf': [{'type': 'integer', 'minimum': 0.0}, {'type': 'null'}], 'description': 'Return only changes with an `id` greater than this: the cursor for polling forward into new changes. Ids are a monotonic sequence, so this is exact, immune to clock skew, and cannot drop two changes that share a timestamp. Carry `cursor` forward.'}, 'beforeId': {'anyOf': [{'type': 'integer', 'minimum': 0.0}, {'type': 'null'}], 'description': 'Return only changes with an `id` less than this: the cursor for walking BACK through history, which is what a newest-first reader needs. Pass the smallest `id` on your last page.'}, 'changeKind': {'anyOf': [{'type': 'array', 'items': {'enum': ['added', 'amended', 'removed'], 'type': 'string'}}, {'type': 'null'}], 'description': 'Filter to these kinds. Repeat the parameter to pass several (`?changeKind=amended&changeKind=removed`). Omit for all three.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
get_section_cited_by
Sections Citing This One
The USC and CFR sections whose text cross-references a given section: the inverse of the crossReferences already returned on a section lookup. Use to find where a definition or requirement is actually invoked, or to gauge how load-bearing a provision is across the code. Cost: 2 credits.
Read only
Input schema
{'type': 'object', 'required': ['act_id'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100.0, 'minimum': 1.0, 'examples': [25], 'description': 'Maximum citing sections to return.'}, 'act_id': {'type': 'string', 'examples': ['USC_T42_C21_S1983'], 'maxLength': 200, 'minLength': 3, 'description': 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
get_section_cross_state
Same Rule in Other States
Provisions in OTHER states that address the same subject as a given state statute section, ranked by similarity. State statutes only. Use for fifty-state surveys, multi-jurisdiction compliance, or to check whether a client's home-state rule is typical or an outlier. Cost: 6 credits.
Read only
Input schema
{'type': 'object', 'required': ['act_id'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 25.0, 'minimum': 1.0, 'examples': [5], 'description': 'Maximum states to return, one provision each.'}, 'act_id': {'type': 'string', 'examples': ['USC_T42_C21_S1983'], 'maxLength': 200, 'minLength': 3, 'description': 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
get_section_definitions
Defined Terms in Section
The term definitions that govern a section, parsed from its chapter's definitions section. Use whenever a provision turns on a term of art ('covered entity', 'security', 'employer') and you need the statute's own definition rather than the ordinary meaning. Cost: 4 credits.
Read only
Input schema
{'type': 'object', 'required': ['act_id'], 'properties': {'act_id': {'type': 'string', 'examples': ['USC_T42_C21_S1983'], 'maxLength': 200, 'minLength': 3, 'description': 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
get_section_neighbors
Adjacent Sections
The sections immediately before and after a given section within its own chapter or code, in statutory order. Use to read a provision in context, to find a definitions or penalties sibling, or to check whether the operative language continues into the next section. Cost: 2 credits.
Read only
Input schema
{'type': 'object', 'required': ['act_id'], 'properties': {'limit': {'type': 'integer', 'default': 3, 'maximum': 10.0, 'minimum': 1.0, 'examples': [3], 'description': 'How many sections to return on EACH side.'}, 'act_id': {'type': 'string', 'examples': ['USC_T42_C21_S1983'], 'maxLength': 200, 'minLength': 3, 'description': 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
get_sections_batch
Statute Sections (Batch)
Metadata for up to 50 sections in one call, by a list of act_ids. Same fields as get_us_statute_section. Use instead of looping that tool when you already hold several act_ids, for example every result of one search. Sections that are not found are skipped and not charged. Cost: 2 credits.
Read only
Input schema
{'type': 'object', 'required': ['actIds'], 'properties': {'actIds': {'type': 'array', 'items': {'type': 'string'}, 'examples': [['USC_T42_C21_S1983', 'CFR_T17_P240_S240_10b5_1']], 'maxItems': 50, 'minItems': 1, 'description': 'Section identifiers from a prior search, up to 50 per call. Duplicates are collapsed and order is preserved. DO NOT BUILD THESE FROM A CITATION: the chapter/article segments exist only in the data, so assembled ids miss. To start from a citation, use resolve_statute_citation.'}, 'includeBody': {'type': 'boolean', 'default': False, 'examples': [True], 'description': 'Adds the ordinary body price for each row that returns text. Unresolved text returns `body: null` with no body charge. Use `creditsConsumed` for the total rather than calculating from the number of IDs.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
get_us_statute_section
Statute Section Metadata
Metadata for one US statute, regulation or rule section by act_id: citation, title hierarchy, breadcrumb, amendment history, and links to HTML, PDF and XML. Does NOT include the section text -- use get_us_statute_section_text for that. Good for confirming you have the right section before paying for its full body. Cost: 2 credits.
Read only
Input schema
{'type': 'object', 'required': ['act_id'], 'properties': {'act_id': {'type': 'string', 'examples': ['USC_T42_C21_S1983'], 'maxLength': 200, 'minLength': 3, 'description': 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
get_us_statute_section_text
Statute Section Text
The full text of a US statute, regulation or rule section by act_id. Returns styled HTML (with cross-references and paragraph numbering as officially published) and plain text. Use when you need the actual statutory language to quote, draft against, or analyze rather than just cite. Cost: 6 credits.
Read only
Input schema
{'type': 'object', 'required': ['act_id'], 'properties': {'asOf': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, {'type': 'null'}], 'format': 'date', 'examples': ['2026-01-15'], 'description': 'Text as it stood on this date (`YYYY-MM-DD`), same cost. A RECONSTRUCTION from observed changes, not an archive: read the response\'s `asOf.isBounded` before citing it, since false means the answer is limited by when capture began, not by the law. A section we cannot rebuild returns `source: "unavailable"` and is refunded.'}, 'act_id': {'type': 'string', 'examples': ['CFR_T17_P240_S240_10b5_1'], 'maxLength': 200, 'minLength': 3, 'description': 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.'}, 'format': {'enum': ['both', 'html', 'plain', 'content', 'operative'], 'type': 'string', 'default': 'both', 'examples': ['operative'], 'description': "Which representations to return. The default `both` carries a long section's text twice, so `plain` or `html` roughly halves the payload at the same price. `content` and `operative` return only the operative text, about 1 KB instead of 30 KB on a long section, but ONLY United States Code sections can be split: on any other corpus they return no text, so check for null."}, 'structured': {'type': 'boolean', 'default': False, 'examples': [True], 'description': 'When true, also return `markdown` and a `subsections` tree parsed from the text for pincite addressing. Same cost.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
list_statute_divisions
Browse Code Structure
Walk the statutory hierarchy: list the child divisions (titles, chapters, parts, or sections) under any level, in statutory order. Use to browse a code structurally when you do not yet know the section number, or to enumerate everything under a chapter. Cost: 1 credit.
Read only
Input schema
{'type': 'object', 'required': ['corpusType'], 'properties': {'code': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'examples': ['tx_pe'], 'description': 'Code to drill into: a state code such as `tx_pe` (list them with `corpusType=STATE&state=<state>`), or a federal rule set such as `frcp` (list them with `corpusType=FEDERAL_RULES`).'}, 'part': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'examples': ['240'], 'description': 'Part identifier to drill into (CFR).'}, 'state': {'enum': ['al', 'ak', 'az', 'ar', 'ca', 'co', 'ct', 'de', 'dc', 'fl', 'ga', 'hi', 'id', 'il', 'in', 'ia', 'ks', 'ky', 'la', 'me', 'md', 'ma', 'mi', 'mn', 'ms', 'mo', 'mt', 'ne', 'nv', 'nh', 'nj', 'nm', 'ny', 'nc', 'nd', 'oh', 'ok', 'or', 'pa', 'pr', 'ri', 'sc', 'sd', 'tn', 'tx', 'ut', 'vt', 'va', 'wa', 'wv', 'wi', 'wy'], 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'examples': ['tx'], 'description': '2-letter jurisdiction code, required for the state-scoped corpora (STATE, REGULATION, STATE_CONSTITUTION). Case-insensitive.'}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': "Resume token from a previous response's `nextCursor`. Only meaningful at the level that lists sections. Omit it to start at the beginning of the container."}, 'article': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'examples': ['Article III'], 'description': "Article to drill into: a constitution's article or amendment (`Article III`, `Amendment XIV`), or the article of a state code that is divided by articles rather than chapters (New York, where the listing's `kind` is `article`). Pass the `identifier` exactly as the listing returned it."}, 'chapter': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'examples': ['21'], 'description': 'Chapter identifier to drill into (USC and state codes). Accepted alongside `part` on CFR, where it is not needed: part numbers are unique within a title.'}, 'actStatus': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'List only sections carrying this status, e.g. `repealed`. The inverse of `excludeRepealed`, and useful for auditing what a container holds that is no longer operative.'}, 'corpusType': {'enum': ['USC', 'CFR', 'STATE', 'REGULATION', 'CONSTITUTION', 'STATE_CONSTITUTION', 'FEDERAL_RULES'], 'type': 'string', 'examples': ['USC'], 'description': 'Corpus to browse. Case-insensitive. The browsable subset of the `corpusType` tokens on `/us/statutes/coverage`.'}, 'titleNumber': {'anyOf': [{'type': 'integer', 'minimum': 1.0}, {'type': 'null'}], 'examples': [42], 'description': 'USC/CFR title number to drill into.'}, 'excludeRepealed': {'type': 'boolean', 'default': False, 'description': 'Only sections with an affirmatively dead status, including repealed, superseded or renumbered, are excluded. Sections with no recorded status are kept, not treated as repealed.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
list_statutes_coverage
Corpus Coverage
Self-describing coverage matrix: every corpusType we hold and its per-jurisdiction section counts. Use before answering a jurisdiction question to check whether we actually cover that state and that body of law, so you can say so instead of searching a corpus that does not exist. Free.
Read only
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Output schema
{'type': 'object', 'additionalProperties': True}
resolve_statute_citation
Resolve Citation
Resolve a Bluebook citation string ('42 U.S.C. 1983', '16 C.F.R. 444.1', 'Cal. Code Regs. tit. 22, 76227') to the exact section, confirmed, with an official source link and the act_id. Use this whenever the user gives you a citation rather than a question -- it is far more reliable than searching for the citation text. Cost: 2 credits.
Read only
Input schema
{'type': 'object', 'required': ['cite'], 'properties': {'cite': {'type': 'string', 'examples': ['42 U.S.C. 1983'], 'maxLength': 200, 'minLength': 2, 'description': "A Bluebook citation string, e.g. '42 U.S.C. 1983' or '16 C.F.R. 444.1'."}, 'state': {'enum': ['al', 'ak', 'az', 'ar', 'ca', 'co', 'ct', 'de', 'dc', 'fl', 'ga', 'hi', 'id', 'il', 'in', 'ia', 'ks', 'ky', 'la', 'me', 'md', 'ma', 'mi', 'mn', 'ms', 'mo', 'mt', 'ne', 'nv', 'nh', 'nj', 'nm', 'ny', 'nc', 'nd', 'oh', 'ok', 'or', 'pa', 'pr', 'ri', 'sc', 'sd', 'tn', 'tx', 'ut', 'vt', 'va', 'wa', 'wv', 'wi', 'wy'], 'anyOf': [{'type': 'string', 'maxLength': 2, 'minLength': 2}, {'type': 'null'}], 'examples': ['tx'], 'description': 'Optional 2-letter jurisdiction to resolve WITHIN, e.g. `tx`. Some citation forms are shared: `8 CCR 1206-2` is Colorado and `22 CCR 76227` is California. A constraint, not a hint: a citation naming a different jurisdiction returns `resolved: false` rather than being forced into this one.'}, 'corpusType': {'enum': ['CONSTITUTION', 'REGULATION', 'STATE', 'STATE_CONSTITUTION', 'STATE_RULES'], 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'examples': ['REGULATION'], 'description': 'Optional corpus to resolve WITHIN: `STATE`, `REGULATION`, `STATE_RULES`, `CONSTITUTION`, `STATE_CONSTITUTION`. Narrows a citation whose form several corpora share; like `state`, a citation belonging to another corpus resolves to nothing instead.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
resolve_statute_citations_batch
Resolve Citations (Batch)
Resolve up to 50 Bluebook citations in one call, returning the same confirmed section, official source link and act_id as the single-citation tool. Use when a document or answer cites several provisions: one call is far cheaper in both credits and latency than looping the single-citation tool. Cost: 2 credits.
Read only
Input schema
{'type': 'object', 'required': ['citations'], 'properties': {'state': {'enum': ['al', 'ak', 'az', 'ar', 'ca', 'co', 'ct', 'de', 'dc', 'fl', 'ga', 'hi', 'id', 'il', 'in', 'ia', 'ks', 'ky', 'la', 'me', 'md', 'ma', 'mi', 'mn', 'ms', 'mo', 'mt', 'ne', 'nv', 'nh', 'nj', 'nm', 'ny', 'nc', 'nd', 'oh', 'ok', 'or', 'pa', 'pr', 'ri', 'sc', 'sd', 'tn', 'tx', 'ut', 'vt', 'va', 'wa', 'wv', 'wi', 'wy'], 'anyOf': [{'type': 'string', 'maxLength': 2, 'minLength': 2}, {'type': 'null'}], 'examples': ['ca'], 'description': 'Optional two-letter jurisdiction to resolve every citation WITHIN. Applies to the whole batch: a batch spanning jurisdictions should omit it and let each citation name its own. Same semantics as the single-citation route -- a constraint, not a hint.'}, 'citations': {'type': 'array', 'items': {'type': 'string'}, 'examples': [['42 U.S.C. 1983', '16 C.F.R. 444.1', 'Cal. Civ. Code 1950.5']], 'maxItems': 500, 'minItems': 1, 'description': 'Bluebook citation strings, up to 50 per call. Duplicates are collapsed and order preserved, so `results` lines up with the de-duplicated input. Priced PER CITATION at the single-resolve rate: batching is a round-trip and latency win, not a discount.'}, 'corpusType': {'enum': ['CONSTITUTION', 'REGULATION', 'STATE', 'STATE_CONSTITUTION', 'STATE_RULES'], 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'examples': ['REGULATION'], 'description': 'Restricts every citation to one corpus: `STATE`, `REGULATION`, `STATE_RULES`, `CONSTITUTION`, `STATE_CONSTITUTION`. `STATE` covers federal and state statutes, and the two constitution values are synonyms here, with `state` distinguishing the jurisdiction.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
search
Search US Law
Generic corpus search over US primary law, returning `{id, title, url}` records for citation. Present so this server works in clients that require the standard search/fetch pair. If you can call `search_us_statutes`, prefer it: it filters by jurisdiction, corpus, date and status, which this cannot. Pair with `fetch` to read a result.
Read only
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {'type': 'string'}}}}
search_us_statutes
Search US Statutes
Semantic + keyword search across US primary law: the United States Code (USC), the Code of Federal Regulations (CFR), and all 50 states' statutes, regulations, constitutions and court rules. Use for any 'what does the law say' question. Filter by corpusType and titleNumber. Returns sections with citation, hierarchy and official source links. The returned act_id (e.g. 'USC_T42_C21_S1983') feeds every other statute tool -- do not hand-build one, they usually 404. Cost: 4 credits.
Read only
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'code': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['tx_pe'], 'description': 'Restrict to specific state statutory codes, e.g. `tx_pe` for the Texas Penal Code. Values are the `actId`s from list_statute_divisions. List allowed, across states. The only way to scope below a whole jurisdiction: `state=tx` alone searches all ~15 Texas codes.'}, 'part': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['240'], 'description': "One or more parts within a title, e.g. `240` for 17 C.F.R. Part 240. The CFR counterpart to `chapter`: pass a hit's `parent.part` back. Pair with `titleNumber`; an unpaired part is rejected."}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50.0, 'minimum': 1.0, 'description': 'Number of results to return per page.'}, 'query': {'type': 'string', 'examples': ['insider trading penalties'], 'maxLength': 500, 'minLength': 2, 'description': 'Search query in natural language.'}, 'state': {'enum': ['federal', 'al', 'ak', 'az', 'ar', 'ca', 'co', 'ct', 'de', 'dc', 'fl', 'ga', 'hi', 'id', 'il', 'in', 'ia', 'ks', 'ky', 'la', 'me', 'md', 'ma', 'mi', 'mn', 'ms', 'mo', 'mt', 'ne', 'nv', 'nh', 'nj', 'nm', 'ny', 'nc', 'nd', 'oh', 'ok', 'or', 'pa', 'pr', 'ri', 'sc', 'sd', 'tn', 'tx', 'ut', 'vt', 'va', 'wa', 'wv', 'wi', 'wy'], 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['ca'], 'description': 'Jurisdiction. A 2-letter code for one of the 52 supported US jurisdictions (50 states + DC + PR), or `federal` for USC / CFR / Constitution / federal rules. Pass a list to search several at once. Case-insensitive. Omit to search every jurisdiction.'}, 'agency': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['environmental-protection-agency'], 'description': 'Federal Register agency slug, e.g. `environmental-protection-agency`. Pass a list to match any of several. Applies to `FEDERAL_REGISTER` and `EXECUTIVE_ACTION`; other corpora carry no agency, so combining this with them returns nothing.'}, 'fields': {'enum': ['abstract', 'actId', 'actStatus', 'action', 'adoptingCitations', 'agencies', 'agencySlugs', 'alternateCitations', 'amendmentHistory', 'amendmentNote', 'amendmentYears', 'amendmentsCount', 'articleName', 'articleNumber', 'audience', 'body', 'breadcrumb', 'caseName', 'chapter', 'chapterName', 'citation', 'citationShort', 'committeeNote', 'corpusType', 'court', 'crossReferencesCfr', 'crossReferencesUsc', 'currencyNote', 'currencyYear', 'currentThrough', 'datesText', 'displayLabel', 'displayPath', 'documentNumber', 'documentSubtype', 'documentTypeLabel', 'docxUrl', 'edition', 'effectiveDate', 'effectiveDateRaw', 'excerpt', 'expirationDate', 'expirationDateRaw', 'externalUrl', 'federalRegisterCitations', 'forum', 'frCommentsCloseOn', 'frCorrectionOf', 'frCorrections', 'frDocketIds', 'frEffectiveOn', 'frEndPage', 'frRegulationIdNumbers', 'frRegulationsDotGovUrl', 'frRelatedDocuments', 'frSignificant', 'frStartPage', 'frVolume', 'goodLawStatus', 'govInfoHtmlUrl', 'govInfoPdfUrl', 'granuleId', 'history', 'historyEffectiveDate', 'htmlUrl', 'implementingRegulations', 'issueDate', 'issueDateRaw', 'issuingAgency', 'languageCode', 'lastAmendedDate', 'lastAmendedYear', 'lawImplemented', 'licenseNote', 'originalEnactmentDate', 'originalEnactmentDateRaw', 'packageId', 'parent', 'part', 'partName', 'pdfUrl', 'popularName', 'president', 'priorEffectiveDates', 'program', 'publicLawCites', 'publicLaws', 'publicationDate', 'publisherKey', 'referencedShortTitles', 'relatedCitations', 'relatedDocuments', 'releaseDate', 'relevanceScore', 'renumberedTo', 'renumberedToLabel', 'requesters', 'rescindedOn', 'rescindedOnRaw', 'reviewDate', 'ruleSet', 'ruleSetCode', 'sectionNumber', 'sectionTitle', 'settlementAmount', 'signingDate', 'signingDateRaw', 'source', 'sourceCharEnd', 'sourceCharStart', 'sourceCredit', 'sourceNote', 'sourcePageEnd', 'sourcePageStart', 'state', 'stateHtmlUrl', 'statutoryAuthority', 'subchapter', 'subchapterName', 'subject', 'subjectNumber', 'subpart', 'subpartName', 'subtitle', 'subtitleName', 'supersededBy', 'supersedes', 'supersessionActions', 'textUrl', 'title', 'titleName', 'titleNumber', 'topLevelTitle', 'topics', 'transferredTo', 'transferredToLabel', 'versionId', 'volume', 'wordCount', 'xmlUrl', 'year'], 'anyOf': [{'type': 'array', 'items': {'type': 'string'}, 'uniqueItems': True}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': [['title', 'excerpt', 'state']], 'description': 'Return only these result fields, e.g. `["title", "excerpt"]`. A result carries 40+ fields, most null on any given row. `actId` and `citation` are always included. Unknown names are rejected 422. Omit for the full object.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 70.0, 'minimum': 0.0, 'description': 'How many results to skip, for paging. Every page of a query is cut from one ranking, so results never repeat or go missing between pages. The deepest reachable result is `offset` + `limit`; check `hasMore`.'}, 'source': {'enum': ['administrative_guidance', 'ag_precedent', 'agency_guidance', 'bia_precedent', 'bis_advisory_opinion', 'cfpb_circular', 'cfpb_enforcement_action', 'cfpb_supervisory_guidance', 'cftc_staff_letter', 'cms_iom', 'copyright_circular', 'copyright_compendium', 'cpsc_advisory_opinion', 'cpsc_secg', 'ddtc_commodity_jurisdiction', 'ddtc_guidance', 'dfars', 'dfars_pgi', 'doe_appliance_guidance', 'doj_business_review', 'doj_justice_manual', 'doj_leniency', 'eeoc_guidance', 'far', 'fcc_declaratory_ruling', 'fdic_fil', 'ferc_policy_statement', 'fincen_amla_material', 'fincen_boi_compliance_guide', 'fincen_boi_faq', 'fincen_boi_rule_qa', 'fincen_guidance', 'fincen_ruling', 'frap', 'frb_sr_letter', 'frbp', 'frcp', 'frcrp', 'fre', 'ftc_administrative_decision', 'ftc_advisory_opinion', 'ftc_advocacy_filing', 'ftc_hsr_interpretation', 'ftc_policy_statement', 'hhs_ocr_hipaa_faq', 'hhs_ocr_hipaa_guidance', 'hhs_ocr_resolution_agreement', 'immigration_admin_precedent', 'irs_announcement', 'irs_irm', 'irs_notice', 'irs_rev_proc', 'irs_rev_rul', 'irs_written_determination', 'merger_guidelines', 'mpep', 'mspb_nonprecedential', 'mspb_precedential', 'nlrb_advice_memo', 'nlrb_board_decision', 'nlrb_gc_memo', 'occ_bulletin', 'occ_interpretive_letter', 'ofac_faq', 'olc_opinion', 'sct', 'sec_commission_opinion', 'senate_treaty', 'senate_treaty_document', 'senate_treaty_resolution', 'ssa_ruling', 'state_financial_bulletin', 'state_insurance_bulletin', 'tmep', 'us_tax_treaty', 'us_tax_treaty_technical_explanation', 'uscis_policy_manual', 'whd_foh', 'whd_opinion_letter'], 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['sct'], 'description': "The named body of law within a `corpusType` that folds several together: `FEDERAL_RULES` into `frcp`/`fre`/`sct`, `CFR` into `far`/`dfars`, `AGENCY_GUIDANCE` into ~34 agency sources, `AGENCY_ADJUDICATION` into `olc_opinion`/`mspb_precedential`/`mspb_nonprecedential`. Every result carries its own `source`, so a hit's value can be passed straight back."}, 'yearTo': {'anyOf': [{'type': 'integer', 'maximum': 2100.0, 'minimum': 1700.0}, {'type': 'null'}], 'examples': [2026], 'description': 'Only sections last amended in or before this year. This filters the LAST amendment, so a section amended in 2025 is excluded by `yearTo=2024` even though it existed in 2024. A currency filter, not point-in-time retrieval.'}, 'article': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['Amendment XIV'], 'description': "Scope a search to one or more articles. On `CONSTITUTION` and `STATE_CONSTITUTION` this is the article label as `GET /us/statutes/divisions` lists it (`Amendment XIV`, `Article IV`, `Preamble`). On `STATE` / `REGULATION` it is the article of a code divided by article instead of chapter, such as New York (`2-A` in `ny_jud`). This is the search side of `parent.article`: pass a hit's `parent` straight back to search within its article.\n\nPass the `identifier` exactly as the listing returned it; a case slip such as `amendment xiv` also matches. Article labels repeat, so `article` needs a `corpusType` from one of those two families, `STATE_CONSTITUTION` also needs `state`, and `STATE` / `REGULATION` need the `code`. A request missing one is refused with 422 before anything is charged. String or list."}, 'chapter': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['21'], 'description': "One or more chapters within a title or code, e.g. `21` for USC Title 42 Chapter 21. Pass a hit's `parent.chapter` back to search its neighbors. Chapter numbers repeat across titles, so pair with `titleNumber` (USC) or `code` (state); an unpaired chapter is rejected."}, 'yearFrom': {'anyOf': [{'type': 'integer', 'maximum': 2100.0, 'minimum': 1700.0}, {'type': 'null'}], 'examples': [2020], 'description': "Only sections last amended in or after this year; pair with `yearTo` for a window. Tracks the publisher's own amendment credit, not when we rebuilt the corpus. About a fifth of sections carry no credit and are excluded once either bound is set."}, 'actStatus': {'enum': ['abolished', 'deleted', 'expired', 'in_force', 'inactive', 'non_precedential', 'not_funded', 'not_yet_effective', 'omitted', 'proposed', 'recodified', 'recompiled', 'rejected', 'relocated', 'removed', 'renumbered', 'repealed', 'rescinded', 'reserved', 'revoked', 'superseded', 'terminated', 'transferred', 'unconstitutional', 'vacant', 'vacated', 'vetoed', 'withdrawn'], 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'examples': ['repealed'], 'description': 'Positively scope to raw publisher statuses: `repealed` for dead law only, `in_force` for sections affirmatively marked current. The inverse of `excludeRepealed`, and what a compliance diff asking what was LOST needs. Combining a dead status with `excludeRepealed: true` is rejected 422.'}, 'matchType': {'enum': ['any', 'all', 'phrase'], 'type': 'string', 'default': 'any', 'examples': ['phrase'], 'description': '`any` (default) is hybrid semantic + keyword ranking, for natural-language questions. `all` requires every query term; `phrase` matches an exact phrase, for a defined term. To pull up one section, pass its citation as the query and it resolves to that section at rank 1.'}, 'corpusType': {'anyOf': [{'enum': ['USC', 'CFR', 'STATE', 'CONSTITUTION', 'FEDERAL_RULES', 'STATE_CONSTITUTION', 'STATE_RULES', 'EXECUTIVE_ACTION', 'REGULATION', 'FEDERAL_REGISTER', 'FEDERAL_REGISTER_NOTICE', 'AGENCY_GUIDANCE', 'SENTENCING_GUIDELINES', 'US_TAX_TREATY', 'STATE_AGENCY_GUIDANCE', 'STATE_AG_OPINION', 'SESSION_LAW', 'STATUTE_COMPILATION', 'AGENCY_ADJUDICATION', 'CFR_ANNUAL', 'USC_ANNUAL'], 'type': 'string'}, {'type': 'array', 'items': {'enum': ['USC', 'CFR', 'STATE', 'CONSTITUTION', 'FEDERAL_RULES', 'STATE_CONSTITUTION', 'STATE_RULES', 'EXECUTIVE_ACTION', 'REGULATION', 'FEDERAL_REGISTER', 'FEDERAL_REGISTER_NOTICE', 'AGENCY_GUIDANCE', 'SENTENCING_GUIDELINES', 'US_TAX_TREATY', 'STATE_AGENCY_GUIDANCE', 'STATE_AG_OPINION', 'SESSION_LAW', 'STATUTE_COMPILATION', 'AGENCY_ADJUDICATION', 'CFR_ANNUAL', 'USC_ANNUAL'], 'type': 'string'}}, {'type': 'null'}], 'examples': ['CFR'], 'description': 'Restrict to one corpus, or several as a list. Federal: `USC`, `USC_ANNUAL` (published past editions), `CFR`, `CFR_ANNUAL` (same, superseded by construction), `CONSTITUTION`, `FEDERAL_RULES`, `FEDERAL_REGISTER`, `FEDERAL_REGISTER_NOTICE` (a curated slice, not the whole series), `EXECUTIVE_ACTION`, `AGENCY_GUIDANCE`, `SENTENCING_GUIDELINES`, `US_TAX_TREATY`, `SESSION_LAW` (Statutes at Large, as enacted), `STATUTE_COMPILATION` (an act as amended through a stated later law), `AGENCY_ADJUDICATION` (DOJ Office of Legal Counsel opinions and MSPB decisions). Pair with `state`: `STATE`, `REGULATION`, `STATE_RULES`, `STATE_CONSTITUTION`, `STATE_AGENCY_GUIDANCE`, `STATE_AG_OPINION`. Omit for all.'}, 'includeBody': {'type': 'boolean', 'default': False, 'examples': [True], 'description': "Return each hit's full text inline on `body`, instead of one `/section/{actId}/body` call per hit. Buys latency, not a discount: the 4-credit search PLUS 6 credits for every row that returns text, so ten rows is 64. â\x9a\xa0ï¸\x8f It multiplies with `limit`; 50 rows is 304 credits in one call. Rows with no text are not charged, so read `creditsConsumed`. Prefer this over a bigger `excerptChars`: an excerpt is windowed around the match and can start mid-section, so it is not safe to quote."}, 'publishedTo': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, {'type': 'null'}], 'format': 'date', 'examples': ['2024-12-31'], 'description': 'Only return Federal Register documents published on or before this date.'}, 'titleNumber': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'examples': [17], 'description': 'Filter by USC/CFR title number (e.g., 17 for SEC, 42 for civil rights). Only meaningful for `USC`/`CFR`; ignored for state corpora whose titles are alphabetic (e.g. Texas `pe` = Penal Code).'}, 'changedSince': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, {'type': 'null'}], 'format': 'date', 'examples': ['2026-08-01'], 'description': 'Only sections we OBSERVED changing on or after this date (`YYYY-MM-DD`). Observed, not effective: the date we saw it, an upper bound on when it took effect. Capture began long after the corpus did and events sweep at 24 months, so empty means no captured change, never that nothing was amended.'}, 'documentType': {'anyOf': [{'enum': ['final', 'proposed', 'presidential'], 'type': 'string'}, {'type': 'null'}], 'examples': ['final'], 'description': "Federal Register document stage: `final` (a rule in force), `proposed` (an NPRM), or `presidential` (a Presidential Document, the `EXECUTIVE_ACTION` corpus). The same distinction appears in each row's `actId` prefix (`FR_RULE_` vs `FR_PRORULE_`)."}, 'excerptChars': {'type': 'integer', 'default': 500, 'maximum': 4000.0, 'minimum': 100.0, 'description': "Characters of matching text to include in each result's `excerpt`. The excerpt is a ranking preview; use `/us/statutes/section/{actId}/body` for the full text. Default 500."}, 'publishedFrom': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, {'type': 'null'}], 'format': 'date', 'examples': ['2024-01-01'], 'description': 'Only return Federal Register documents published on or after this date (`YYYY-MM-DD`). This is the PUBLICATION date, which is not the same as `yearFrom`: that filters the version year of a section.'}, 'excludeRepealed': {'type': 'boolean', 'default': False, 'examples': [True], 'description': 'Drop sections whose own status says they are not operative (repealed, renumbered, transferred, expired, superseded, omitted, and the rest). Removes what we KNOW is dead; it does not promise the remainder is good law. Read `goodLawStatus` per result to tell them apart: `good_law` is checked, `unknown` is unchecked.'}}}
Output schema
{'type': 'object', 'additionalProperties': True}
Removed
update_watch
Oct. 1, 2026, 2:50 a.m.
Removed
test_watch
Oct. 1, 2026, 2:50 a.m.
Removed
list_watches
Oct. 1, 2026, 2:50 a.m.
Removed
list_watch_deliveries
Oct. 1, 2026, 2:50 a.m.
Removed
list_watch_changes
Oct. 1, 2026, 2:50 a.m.
Removed
list_boards
Oct. 1, 2026, 2:50 a.m.
Removed
get_watch_change_diff
Oct. 1, 2026, 2:50 a.m.
Removed
delete_watch
Oct. 1, 2026, 2:50 a.m.
Removed
create_watch
Oct. 1, 2026, 2:50 a.m.
Changed
search_us_statutes
Oct. 1, 2026, 2:50 a.m.
Changed
search
Oct. 1, 2026, 2:50 a.m.
Changed
resolve_statute_citations_batch
Oct. 1, 2026, 2:50 a.m.
Changed
resolve_statute_citation
Oct. 1, 2026, 2:50 a.m.
Changed
list_statutes_coverage
Oct. 1, 2026, 2:50 a.m.
Changed
list_statute_divisions
Oct. 1, 2026, 2:50 a.m.
Changed
get_us_statute_section_text
Oct. 1, 2026, 2:50 a.m.
Changed
get_us_statute_section
Oct. 1, 2026, 2:50 a.m.
Changed
get_sections_batch
Oct. 1, 2026, 2:50 a.m.
Changed
get_section_neighbors
Oct. 1, 2026, 2:50 a.m.
Changed
get_section_definitions
Oct. 1, 2026, 2:50 a.m.
Changed
get_section_cross_state
Oct. 1, 2026, 2:50 a.m.
Changed
get_section_cited_by
Oct. 1, 2026, 2:50 a.m.
Changed
get_section_changes
Oct. 1, 2026, 2:50 a.m.
Changed
get_pricing
Oct. 1, 2026, 2:50 a.m.
Changed
get_credit_balance
Oct. 1, 2026, 2:50 a.m.
Changed
fetch
Oct. 1, 2026, 2:50 a.m.
Changed
count_statute_sections
Oct. 1, 2026, 2:50 a.m.
Changed
search_us_statutes
Sept. 21, 2026, 2:56 a.m.
Changed
resolve_statute_citations_batch
Sept. 21, 2026, 2:56 a.m.
Changed
list_statute_divisions
Sept. 21, 2026, 2:56 a.m.