openapi: 3.2.0 info: title: Vaquill Ai US Statutes API version: 1.0.0 contact: name: Vaquill API Support url: https://www.vaquill.ai email: support@vaquill.ai license: name: Proprietary url: https://www.vaquill.ai/terms termsOfService: https://www.vaquill.ai/terms description: 'Operations tagged US Statutes across 2 of this provider''s published API definitions: vaquill-ai-openapi.json, vaquill-ai-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.vaquill.ai description: Production security: - ApiKeyAuth: [] - ApiKeyHeader: [] - ApiKeyQuery: [] tags: - name: US Statutes description: Search and retrieve US primary law. paths: /api/v1/us/statutes/search: post: tags: - US Statutes summary: Search US statutes, constitutions, court rules, and executive actions description: 'Search across federal and state law and get back the most relevant sections with citations and links to official source documents.' operationId: search_statutes_api_v1_us_statutes_search_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StatuteSearchRequest' required: true responses: '200': description: Ranked sections for the query. content: application/json: schema: $ref: '#/components/schemas/StatuteSearchResponse' example: results: - actId: CFR_T17_P240_S240_10b5_1 citation: 17 C.F.R. § 240.10b5-1 (2026) citationShort: 17 C.F.R. § 240.10b5-1 title: Trading on the basis of material nonpublic information in insider trading cases corpusType: CFR state: federal year: 2026 relevanceScore: 0.91 excerpt: The manipulative and deceptive devices prohibited by section 10(b)... titleNumber: 17 sectionNumber: 240.10b5-1 displayPath: Title 17 CFR > Chapter II > Part 240 > Section 240.10b5-1 htmlUrl: https://statutes-us.vaquill.ai/ecfr/... externalUrl: https://www.ecfr.gov/... sourceUrl: https://www.ecfr.gov/... total: 1 query: insider trading material nonpublic information processingTimeMs: 412.3 creditsConsumed: 4 '402': description: Insufficient API credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' example: detail: Insufficient credits '422': description: Invalid request body (e.g. query too short, limit over 50, bad corpusType). content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' example: detail: Invalid request parameters errors: - loc: - body - limit msg: Input should be less than or equal to 50 type: less_than_equal servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/section/{act_id}: get: tags: - US Statutes summary: Get statute section metadata description: 'Get detailed metadata for a specific statute section by its ID. **Cost**: 2 credits. Not-found (404) and failed lookups are not charged. The `actId` comes from `/us/statutes/search` results or Ask API sources (e.g., `USC_T42_C21_S1983`). It is structured but not meant to be hand-built; always take it from a prior response. Returns citation, title hierarchy, breadcrumb, and links to every available format (HTML, PDF, XML, plain text, DOCX) where the source provides them. Use `/us/statutes/section/{actId}/body` for the full text.' operationId: get_section_api_v1_us_statutes_section__act_id__get parameters: - name: act_id in: path required: true schema: type: string minLength: 3 maxLength: 200 description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' examples: - USC_T42_C21_S1983 title: Act Id description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/StatuteSectionResponse' example: section: actId: USC_T42_C21_S1983 citation: 42 U.S.C. § 1983 (2026) citationShort: 42 U.S.C. § 1983 title: Civil action for deprivation of rights corpusType: USC state: federal year: 2026 relevanceScore: 0.0 excerpt: 'officer''s judicial capacity, injunctive relief shall not be granted unless a declaratory decree was violated or declaratory relief was unavailable". 1979—Pub. L. 96–170 inserted "or the District of Columbia" after "Territory", and provisions relating to Acts of Congress applicable solely to the District of Columbia. Statutory Notes and Related Subsidiaries Effective Date of 1979 Amendment Amendment by Pub. L. 96–170 applicable with respect to any deprivation of rights, privileges, or...' titleNumber: '42' titleName: THE PUBLIC HEALTH AND WELFARE chapter: '21' chapterName: CIVIL RIGHTS sectionNumber: '1983' sectionTitle: Civil action for deprivation of rights displayPath: 'Title 42: THE PUBLIC HEALTH AND WELFARE / Chapter 21: CIVIL RIGHTS / Subchapter I: GENERALLY / Section 1983: Civil action for deprivation of rights' breadcrumb: - type: title num: '42' label: Title 42 name: THE PUBLIC HEALTH AND WELFARE - type: chapter num: '21' label: Chapter 21 name: CIVIL RIGHTS - type: subchapter num: I label: Subchapter I name: GENERALLY - type: section num: '1983' label: Section 1983 name: Civil action for deprivation of rights parent: corpusType: USC titleNumber: 42 chapter: '21' subchapter: I subchapterName: GENERALLY popularName: Public Health and Welfare actStatus: in_force goodLawStatus: good_law renumberedTo: '' transferredTo: '' sourceCredit: R.S. §1979; Pub. L. 96–170, §1, Dec. 29, 1979, 93 Stat. 1284; Pub. L. 104–317, title III, §309(c), Oct. 19, 1996, 110 Stat. 3853. amendmentYears: - 1996 - 1979 lastAmendedYear: 1996 amendmentsCount: 2 currentThrough: '2026-09-02' publicLaws: - Pub. L. 104-317 - Pub. L. 96-170 textUrl: https://statutes-us.vaquill.ai/usc/olrc/119-103/sections/USC_T42_C21_S1983.txt externalUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1983&num=0&edition=prelim sourceUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1983&num=0&edition=prelim processingTimeMs: 8.2 creditsConsumed: 6 '404': description: Section not found. `reason` says why and `didYouMean` what to send. content: application/json: schema: $ref: '#/components/schemas/StatuteSectionNotFoundError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/resolve: get: tags: - US Statutes summary: Resolve a citation to its section description: 'Resolve a Bluebook citation string to the exact section it names, confirmed against the corpus, with an official source link. **Cost**: 2 credits. Charged whether or not the citation resolves, because a confident "this citation does not resolve" is the answer you want when verifying a citation an LLM produced. Only server errors are refunded. Pass a Bluebook citation as `cite`: - Federal statute: `42 U.S.C. 1983` - Federal regulation: `16 C.F.R. 444.1` - State statute: `Del. Code Ann. tit. 13, 1301` A pinpoint subsection (`42 U.S.C. 1983(b)(2)`) resolves to the parent section and is echoed back in `subsection`. When the citation resolves, `section` carries the full metadata (the same shape as `/us/statutes/section/{actId}`) and `resolved` is `true`. When it does not, `resolved` is `false` and `section` is `null`: treat that as "unverified", not "current". A citation to a STATE session law (an act as enacted, for example `CHAPTER 2025-12` or `S.F.No. 1552`) names no code section, so `resolved` stays `false` and `section` stays `null`. The law is described in `sessionLaw`, beside `matchedCorpus: "session_law"`, with an `href` to read it under `/us/session-laws`, and enough to answer what it is and when it took effect without a second call: `title`, `billNumber`, `approvedDate`, `effectiveFirst` and `effectiveLast` (null when the publisher prints no effective date), `enactmentOutcome` and `sourceUrl`, the government publisher''s own text. A citation naming several laws comes back `ambiguous` with every candidate and none chosen for you. A `state` scope applies to session laws; a `corpusType` scope excludes them. No extra charge, and a citation that resolves to a section is never checked against session laws. A citation that names no state is matched against every state''s laws, so at most 6 of them are checked per call: the others carry no `sessionLaw` block, which says nothing about whether the law exists. Name the state, or send the rest in another call.' operationId: resolve_statute_citation parameters: - name: cite in: query required: true schema: type: string minLength: 2 maxLength: 200 description: A Bluebook citation string, e.g. '42 U.S.C. 1983' or '16 C.F.R. 444.1'. examples: - 42 U.S.C. 1983 title: Cite description: A Bluebook citation string, e.g. '42 U.S.C. 1983' or '16 C.F.R. 444.1'. - name: state in: query required: false schema: anyOf: - type: string minLength: 2 maxLength: 7 enum: - federal - al - ak - az - ar - ca - co - ct - de - dc - fl - ga - gu - hi - id - il - in - ia - ks - ky - la - me - md - ma - mi - mn - ms - mo - mt - ne - nv - nh - nj - nm - ny - nc - nd - mp - oh - ok - or - pa - pr - ri - sc - sd - tn - tx - ut - vt - va - wa - wv - wi - wy - type: 'null' description: 'Optional jurisdiction to resolve WITHIN: a two-letter state code, e.g. `tx`, or `federal` for the U.S. Code, the C.F.R., federal rules and the U.S. Constitution. Some citation forms are shared: `8 CCR 1206-2` is Colorado and `22 CCR 76227` is California, and the acronym alone cannot say which. This is a constraint, not a hint -- a citation that names a different jurisdiction returns `resolved: false` rather than being forced into this one, and `citationOutsideFilters` says which section it names.' examples: - tx title: State description: 'Optional jurisdiction to resolve WITHIN: a two-letter state code, e.g. `tx`, or `federal` for the U.S. Code, the C.F.R., federal rules and the U.S. Constitution. Some citation forms are shared: `8 CCR 1206-2` is Colorado and `22 CCR 76227` is California, and the acronym alone cannot say which. This is a constraint, not a hint -- a citation that names a different jurisdiction returns `resolved: false` rather than being forced into this one, and `citationOutsideFilters` says which section it names.' - name: corpusType in: query required: false schema: anyOf: - type: string enum: - CONSTITUTION - REGULATION - STATE - STATE_CONSTITUTION - STATE_RULES - type: 'null' description: 'Optional corpus to resolve WITHIN: `STATE` (statutory text, federal or state), `REGULATION` (administrative codes), `STATE_RULES` (court rules), `CONSTITUTION` (constitutional text), `STATE_CONSTITUTION` (constitutional text; a synonym of `CONSTITUTION` here, since `state` is what separates the two). Narrows a citation whose form several corpora share; like `state`, a citation belonging to another corpus resolves to nothing instead.' examples: - REGULATION title: Corpustype description: 'Optional corpus to resolve WITHIN: `STATE` (statutory text, federal or state), `REGULATION` (administrative codes), `STATE_RULES` (court rules), `CONSTITUTION` (constitutional text), `STATE_CONSTITUTION` (constitutional text; a synonym of `CONSTITUTION` here, since `state` is what separates the two). Narrows a citation whose form several corpora share; like `state`, a citation belonging to another corpus resolves to nothing instead.' responses: '200': description: The resolution verdict, with the section when resolved. content: application/json: schema: $ref: '#/components/schemas/StatuteResolveResponse' example: resolved: true inputCitation: 42 U.S.C. 1983 section: actId: USC_T42_C21_S1983 citation: 42 U.S.C. § 1983 (2026) citationShort: 42 U.S.C. § 1983 title: Civil action for deprivation of rights corpusType: USC state: federal year: 2026 relevanceScore: 0.0 excerpt: 'officer''s judicial capacity, injunctive relief shall not be granted unless a declaratory decree was violated or declaratory relief was unavailable". 1979—Pub. L. 96–170 inserted "or the District of Columbia" after "Territory", and provisions relating to Acts of Congress applicable solely to the District of Columbia. Statutory Notes and Related Subsidiaries Effective Date of 1979 Amendment Amendment by Pub. L. 96–170 applicable with respect to any deprivation of rights, privileges, or...' titleNumber: '42' titleName: THE PUBLIC HEALTH AND WELFARE chapter: '21' chapterName: CIVIL RIGHTS sectionNumber: '1983' sectionTitle: Civil action for deprivation of rights displayPath: 'Title 42: THE PUBLIC HEALTH AND WELFARE / Chapter 21: CIVIL RIGHTS / Subchapter I: GENERALLY / Section 1983: Civil action for deprivation of rights' breadcrumb: - type: title num: '42' label: Title 42 name: THE PUBLIC HEALTH AND WELFARE - type: chapter num: '21' label: Chapter 21 name: CIVIL RIGHTS - type: subchapter num: I label: Subchapter I name: GENERALLY - type: section num: '1983' label: Section 1983 name: Civil action for deprivation of rights parent: corpusType: USC titleNumber: 42 chapter: '21' subchapter: I subchapterName: GENERALLY popularName: Public Health and Welfare actStatus: in_force goodLawStatus: good_law renumberedTo: '' transferredTo: '' sourceCredit: R.S. §1979; Pub. L. 96–170, §1, Dec. 29, 1979, 93 Stat. 1284; Pub. L. 104–317, title III, §309(c), Oct. 19, 1996, 110 Stat. 3853. amendmentYears: - 1996 - 1979 lastAmendedYear: 1996 amendmentsCount: 2 currentThrough: '2026-09-02' publicLaws: - Pub. L. 104-317 - Pub. L. 96-170 textUrl: https://statutes-us.vaquill.ai/usc/olrc/119-103/sections/USC_T42_C21_S1983.txt externalUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1983&num=0&edition=prelim sourceUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1983&num=0&edition=prelim processingTimeMs: 7.0 creditsConsumed: 2.0 '400': description: '`state` or `corpusType` is outside the accepted set. The credits for the call are refunded.' content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - US Statutes summary: Resolve many citations at once description: 'Resolve up to 50 Bluebook citations to their exact sections in one call. The batch form of `GET /us/statutes/resolve`, and the same verdict per citation. Use it when you are checking the citations in a document rather than looking one up: a brief, a memo, or a model''s output typically carries dozens, and the single-citation route makes that dozens of round trips. **Cost**: 2 credits per citation, the same as resolving them one at a time. Batching buys a round trip and latency, not a discount. Unresolved citations are charged (a confident "this does not resolve" is the answer you are paying for when verifying a model''s output); only citations we failed to process because of a backend error are refunded, and `creditsConsumed` reports what was actually billed. **Duplicates are collapsed** before pricing and before the response is built, so sending the same citation twice costs once and returns one entry. **Every input gets an entry.** An unresolved citation appears with `resolved: false`, never as an omission: a caller checking thirty citations needs to know WHICH failed, and a shorter array cannot say that. ## Example ```python requests.post(url, headers=h, json={ "citations": [ "42 U.S.C. 1983", "16 C.F.R. 444.1", "Cal. Civ. Code 1950.5", ], }) ``` Scope the whole batch with `state` or `corpusType` when every citation belongs to one jurisdiction or corpus (`22 CCR 76227` is California and `8 CCR 1206-2` is Colorado; the acronym alone cannot say which). Omit both for a batch that spans jurisdictions and let each citation name its own. A citation to a STATE session law (an act as enacted, for example `CHAPTER 2025-12` or `S.F.No. 1552`) names no code section, so `resolved` stays `false` and `section` stays `null`. The law is described in `sessionLaw`, beside `matchedCorpus: "session_law"`, with an `href` to read it under `/us/session-laws`, and enough to answer what it is and when it took effect without a second call: `title`, `billNumber`, `approvedDate`, `effectiveFirst` and `effectiveLast` (null when the publisher prints no effective date), `enactmentOutcome` and `sourceUrl`, the government publisher''s own text. A citation naming several laws comes back `ambiguous` with every candidate and none chosen for you. A `state` scope applies to session laws; a `corpusType` scope excludes them. No extra charge, and a citation that resolves to a section is never checked against session laws. A citation that names no state is matched against every state''s laws, so at most 6 of them are checked per call: the others carry no `sessionLaw` block, which says nothing about whether the law exists. Name the state, or send the rest in another call.' operationId: resolve_statute_citations_batch requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StatuteResolveBatchRequest' responses: '200': description: One verdict per submitted citation, in order. content: application/json: schema: $ref: '#/components/schemas/StatuteResolveBatchResponse' '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Empty `citations`, more than 50, or a bad `state`/`corpusType`. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/section/{act_id}/related: get: tags: - US Statutes summary: Get the sections around this one description: 'The sections immediately before and after a given section, in statutory order. **Cost**: 2 credits. Not-found and failed lookups are not charged. Search cannot answer "what comes next", because relevance ranking is not statutory order: the definitions a section relies on usually sit a few sections back and its exceptions a few forward. Neighbours never cross the containing chapter (or, where a section has no chapter, the containing title or state code), so you get the sections a reader would actually turn to, not the numerically adjacent row from an unrelated part of the corpus. Ordering is natural, not lexicographic: `9` before `10`, `240.9` before `240.10`, `1983` before `1983a`.' operationId: get_section_neighbors_api_v1_us_statutes_section__act_id__related_get parameters: - name: act_id in: path required: true schema: type: string minLength: 3 maxLength: 200 description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' examples: - USC_T42_C21_S1983 title: Act Id description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' - name: limit in: query required: false schema: type: integer maximum: 10 minimum: 1 description: How many sections to return on EACH side. examples: - 3 default: 3 title: Limit description: How many sections to return on EACH side. responses: '200': description: The section plus its neighbours. content: application/json: schema: $ref: '#/components/schemas/StatuteNeighborsResponse' example: section: actId: USC_T42_C21_S1983 citation: 42 U.S.C. § 1983 (2026) citationShort: 42 U.S.C. § 1983 title: Civil action for deprivation of rights corpusType: USC state: federal year: 2026 relevanceScore: 0.0 excerpt: 'officer''s judicial capacity, injunctive relief shall not be granted unless a declaratory decree was violated or declaratory relief was unavailable". 1979—Pub. L. 96–170 inserted "or the District of Columbia" after "Territory", and provisions relating to Acts of Congress applicable solely to the District of Columbia. Statutory Notes and Related Subsidiaries Effective Date of 1979 Amendment Amendment by Pub. L. 96–170 applicable with respect to any deprivation of rights, privileges, or...' titleNumber: '42' titleName: THE PUBLIC HEALTH AND WELFARE chapter: '21' chapterName: CIVIL RIGHTS sectionNumber: '1983' sectionTitle: Civil action for deprivation of rights displayPath: 'Title 42: THE PUBLIC HEALTH AND WELFARE / Chapter 21: CIVIL RIGHTS / Subchapter I: GENERALLY / Section 1983: Civil action for deprivation of rights' breadcrumb: - type: title num: '42' label: Title 42 name: THE PUBLIC HEALTH AND WELFARE - type: chapter num: '21' label: Chapter 21 name: CIVIL RIGHTS - type: subchapter num: I label: Subchapter I name: GENERALLY - type: section num: '1983' label: Section 1983 name: Civil action for deprivation of rights parent: corpusType: USC titleNumber: 42 chapter: '21' subchapter: I subchapterName: GENERALLY popularName: Public Health and Welfare actStatus: in_force goodLawStatus: good_law renumberedTo: '' transferredTo: '' sourceCredit: R.S. §1979; Pub. L. 96–170, §1, Dec. 29, 1979, 93 Stat. 1284; Pub. L. 104–317, title III, §309(c), Oct. 19, 1996, 110 Stat. 3853. amendmentYears: - 1996 - 1979 lastAmendedYear: 1996 amendmentsCount: 2 currentThrough: '2026-09-02' publicLaws: - Pub. L. 104-317 - Pub. L. 96-170 textUrl: https://statutes-us.vaquill.ai/usc/olrc/119-103/sections/USC_T42_C21_S1983.txt externalUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1983&num=0&edition=prelim sourceUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1983&num=0&edition=prelim previous: - actId: USC_T42_C21_S1981 citation: 42 U.S.C. § 1981 (2026) citationShort: 42 U.S.C. § 1981 title: Equal rights under the law corpusType: USC state: federal year: 2026 relevanceScore: 0.0 excerpt: 'Statement of equal rights All persons within the jurisdiction of the United States shall have the same right in every State and Territory to make and enforce contracts, to sue, be parties, give evidence, and to the full and equal benefit of all laws and proceedings for the security of persons and property as is enjoyed by white citizens, and shall be subject to like punishment, pains, penalties, taxes, licenses, and exactions of every kind, and to no other. (b) "Make and enforce contracts"...' titleNumber: '42' titleName: THE PUBLIC HEALTH AND WELFARE chapter: '21' chapterName: CIVIL RIGHTS sectionNumber: '1981' sectionTitle: Equal rights under the law displayPath: 'Title 42: THE PUBLIC HEALTH AND WELFARE / Chapter 21: CIVIL RIGHTS / Subchapter I: GENERALLY / Section 1981: Equal rights under the law' breadcrumb: - type: title num: '42' label: Title 42 name: THE PUBLIC HEALTH AND WELFARE - type: chapter num: '21' label: Chapter 21 name: CIVIL RIGHTS - type: subchapter num: I label: Subchapter I name: GENERALLY - type: section num: '1981' label: Section 1981 name: Equal rights under the law parent: corpusType: USC titleNumber: 42 chapter: '21' subchapter: I subchapterName: GENERALLY popularName: Public Health and Welfare actStatus: in_force goodLawStatus: good_law renumberedTo: '' transferredTo: '' sourceCredit: R.S. §1977; Pub. L. 102–166, title I, §101, Nov. 21, 1991, 105 Stat. 1071. amendmentYears: - 1991 lastAmendedYear: 1991 amendmentsCount: 1 publicLaws: - Pub. L. 102-166 - Pub. L. 94-559 textUrl: https://statutes-us.vaquill.ai/usc/olrc/119-103/sections/USC_T42_C21_S1983.txt externalUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1981&num=0&edition=prelim sourceUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1981&num=0&edition=prelim next: - actId: USC_T42_C21_S1984 citation: 42 U.S.C. § 1984 (2026) citationShort: 42 U.S.C. § 1984 title: Omitted corpusType: USC state: federal year: 2026 relevanceScore: 0.0 excerpt: 'Editorial Notes Codification Section, act Mar. 1, 1875, ch. 114, §5, 18 Stat. 337, which was formerly classified to section 46 of Title 8, Aliens and Nationality, related to Supreme Court review of cases arising under act Mar. 1, 1875. Sections 1 and 2 of act Mar. 1, 1875 were declared unconstitutional in U.S. v. Singleton, 109 U.S. 3, and sections 3 and 4 of such act were repealed by act June 25, 1948, ch. 645, §21, 62 Stat. 862.' titleNumber: '42' titleName: THE PUBLIC HEALTH AND WELFARE chapter: '21' chapterName: CIVIL RIGHTS sectionNumber: '1984' sectionTitle: Omitted displayPath: 'Title 42: THE PUBLIC HEALTH AND WELFARE / Chapter 21: CIVIL RIGHTS / Subchapter I: GENERALLY / Section 1984: Omitted' breadcrumb: - type: title num: '42' label: Title 42 name: THE PUBLIC HEALTH AND WELFARE - type: chapter num: '21' label: Chapter 21 name: CIVIL RIGHTS - type: subchapter num: I label: Subchapter I name: GENERALLY - type: section num: '1984' label: Section 1984 name: Omitted parent: corpusType: USC titleNumber: 42 chapter: '21' subchapter: I subchapterName: GENERALLY popularName: Public Health and Welfare actStatus: omitted goodLawStatus: not_good_law renumberedTo: '' transferredTo: '' sourceCredit: '' amendmentsCount: 0 textUrl: https://statutes-us.vaquill.ai/usc/olrc/119-103/sections/USC_T42_C21_S1983.txt externalUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1984&num=0&edition=prelim sourceUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1984&num=0&edition=prelim container: CIVIL RIGHTS processingTimeMs: 9.5 creditsConsumed: 6 '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '404': description: Section not found. `reason` says why. content: application/json: schema: $ref: '#/components/schemas/StatuteSectionNotFoundError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/sections: post: tags: - US Statutes summary: Get metadata for many statute sections description: 'Metadata for up to 50 sections in one call. **Cost**: 2 credits **per section returned**. Identifiers with no match are refunded, so a batch of 50 ids that resolves 47 costs 94 credits, not 100. Batching is a round-trip and latency win, not a discount. The response preserves the order of `actIds` and reports misses separately in `notFound`, so results can be zipped back onto the ids that produced them. **Take ids from a `/us/statutes/search` response, do not build them from a citation.** An act_id looks derivable and is not: `Tex. Property Code § 93.005` is `STATE_TX_Cpr_C93_S93.005`, and the `Cpr` code segment exists only in the data. Assembling ids works for a few jurisdictions whose hierarchy happens to sit in the citation, which makes the failures look like missing coverage rather than like wrong ids. So every miss also comes back in `notFoundDetail` saying which it was: `assembled_id` with the real ids in `didYouMean`, or `not_in_corpus` when nothing matching exists (check `/us/statutes/coverage` for the jurisdiction before concluding a section is absent). The diagnosis is free and never charged. To go from a citation rather than a guess, use `/us/statutes/resolve`. Use `/us/statutes/section/{actId}/body` for full text; this endpoint returns metadata and source links only.' operationId: get_sections_batch_api_v1_us_statutes_sections_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StatuteSectionsRequest' required: true responses: '200': description: Sections found, plus any ids that did not resolve. content: application/json: schema: $ref: '#/components/schemas/StatuteSectionsResponse' example: sections: - actId: USC_T42_C21_S1983 citation: 42 U.S.C. § 1983 (2026) citationShort: 42 U.S.C. § 1983 title: Civil action for deprivation of rights corpusType: USC state: federal year: 2026 relevanceScore: 0.0 excerpt: 'officer''s judicial capacity, injunctive relief shall not be granted unless a declaratory decree was violated or declaratory relief was unavailable". 1979—Pub. L. 96–170 inserted "or the District of Columbia" after "Territory", and provisions relating to Acts of Congress applicable solely to the District of Columbia. Statutory Notes and Related Subsidiaries Effective Date of 1979 Amendment Amendment by Pub. L. 96–170 applicable with respect to any deprivation of rights, privileges, or...' titleNumber: '42' titleName: THE PUBLIC HEALTH AND WELFARE chapter: '21' chapterName: CIVIL RIGHTS sectionNumber: '1983' sectionTitle: Civil action for deprivation of rights displayPath: 'Title 42: THE PUBLIC HEALTH AND WELFARE / Chapter 21: CIVIL RIGHTS / Subchapter I: GENERALLY / Section 1983: Civil action for deprivation of rights' breadcrumb: - type: title num: '42' label: Title 42 name: THE PUBLIC HEALTH AND WELFARE - type: chapter num: '21' label: Chapter 21 name: CIVIL RIGHTS - type: subchapter num: I label: Subchapter I name: GENERALLY - type: section num: '1983' label: Section 1983 name: Civil action for deprivation of rights parent: corpusType: USC titleNumber: 42 chapter: '21' subchapter: I subchapterName: GENERALLY popularName: Public Health and Welfare actStatus: in_force goodLawStatus: good_law renumberedTo: '' transferredTo: '' sourceCredit: R.S. §1979; Pub. L. 96–170, §1, Dec. 29, 1979, 93 Stat. 1284; Pub. L. 104–317, title III, §309(c), Oct. 19, 1996, 110 Stat. 3853. amendmentYears: - 1996 - 1979 lastAmendedYear: 1996 amendmentsCount: 2 publicLaws: - Pub. L. 104-317 - Pub. L. 96-170 textUrl: https://statutes-us.vaquill.ai/usc/olrc/119-103/sections/USC_T42_C21_S1983.txt externalUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1983&num=0&edition=prelim sourceUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1983&num=0&edition=prelim - actId: USC_T42_C21_S1981a citation: 42 U.S.C. § 1981a (2026) citationShort: 42 U.S.C. § 1981a title: Damages in cases of intentional discrimination in employment corpusType: USC state: federal year: 2026 relevanceScore: 0.0 excerpt: 'practice or discriminatory practices with malice or with reckless indifference to the federally protected rights of an aggrieved individual. (2) Exclusions from compensatory damages Compensatory damages awarded under this section shall not include backpay, interest on backpay, or any other type of relief authorized under section 706(g) of the Civil Rights Act of 1964 [42 U.S.C. 2000e–5(g)]. (3) Limitations The sum of the amount of compensatory damages awarded under this section for future...' titleNumber: '42' titleName: THE PUBLIC HEALTH AND WELFARE chapter: '21' chapterName: CIVIL RIGHTS sectionNumber: 1981a sectionTitle: Damages in cases of intentional discrimination in employment displayPath: 'Title 42: THE PUBLIC HEALTH AND WELFARE / Chapter 21: CIVIL RIGHTS / Subchapter I: GENERALLY / Section 1981a: Damages in cases of intentional discrimination in employment' breadcrumb: - type: title num: '42' label: Title 42 name: THE PUBLIC HEALTH AND WELFARE - type: chapter num: '21' label: Chapter 21 name: CIVIL RIGHTS - type: subchapter num: I label: Subchapter I name: GENERALLY - type: section num: 1981a label: Section 1981a name: Damages in cases of intentional discrimination in employment parent: corpusType: USC titleNumber: 42 chapter: '21' subchapter: I subchapterName: GENERALLY popularName: Public Health and Welfare actStatus: in_force goodLawStatus: good_law renumberedTo: '' transferredTo: '' sourceCredit: R.S. §1977A, as added Pub. L. 102–166, title I, §102, Nov. 21, 1991, 105 Stat. 1072. amendmentsCount: 0 publicLaws: - Pub. L. 101-336 - Pub. L. 102-166 - Pub. L. 88-352 textUrl: https://statutes-us.vaquill.ai/usc/olrc/119-103/sections/USC_T42_C21_S1983.txt externalUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1981a&num=0&edition=prelim sourceUrl: https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title42-section1981a&num=0&edition=prelim notFound: - STATE_CO_S38-12-103 notFoundDetail: - actId: STATE_CO_S38-12-103 reason: assembled_id didYouMean: - STATE_CO_T38_A12_P1_S38-12-103 count: 2 processingTimeMs: 11.0 creditsConsumed: 12 '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Empty or oversized `actIds`. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/section/{act_id}/body: get: tags: - US Statutes summary: Get statute full text description: Get the full text of a statute section in HTML and plain text. operationId: get_section_body_api_v1_us_statutes_section__act_id__body_get parameters: - name: act_id in: path required: true schema: type: string minLength: 3 maxLength: 200 description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' examples: - CFR_T17_P240_S240_10b5_1 title: Act Id description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' - name: format in: query required: false schema: enum: - all - both - html - markdown - plain - content - operative type: string description: 'Which representations to return. `both` (the default) returns `html` and `plain`. A long section carries the same text twice that way, so `plain` or `html` alone roughly halves the payload. Cost is unchanged: the fetch is the same either way. `all` adds `markdown` where the section has a structured rendering. It is opt-in because it is a third full copy of the text (about 600,000 extra characters on `49 CFR 172.101`), which a model-facing client would pay for in tokens without asking. `markdown` returns only `markdown`. On a section with no structured rendering it falls back to `plain` with a `note` saying so, never to an empty body. `tables` and `figures` are returned on every format, because they are small and describe the text you received. `content` omits `html` and `plain` and returns the split fields (`content`, `sourceCredit`, `notes`). `operative` omits `notes` as well, leaving `content` + `sourceCredit`: the law and what enacted it, and nothing else. This is the smallest representation of a section, and on a note-heavy section it is the difference between a payload that fits in a prompt and one that does not. Measured on `17 U.S.C. § 107`: 95,217 bytes at `both`, 30,545 at `content`, 1,564 at `operative`, all for the same 6 credits. Only United States Code sections can be split, so on any other corpus both values fall back to returning `plain` with a `note` saying why -- `content` will be null there, so read `note` rather than assuming the section was empty.' examples: - operative default: both title: Format description: 'Which representations to return. `both` (the default) returns `html` and `plain`. A long section carries the same text twice that way, so `plain` or `html` alone roughly halves the payload. Cost is unchanged: the fetch is the same either way. `all` adds `markdown` where the section has a structured rendering. It is opt-in because it is a third full copy of the text (about 600,000 extra characters on `49 CFR 172.101`), which a model-facing client would pay for in tokens without asking. `markdown` returns only `markdown`. On a section with no structured rendering it falls back to `plain` with a `note` saying so, never to an empty body. `tables` and `figures` are returned on every format, because they are small and describe the text you received. `content` omits `html` and `plain` and returns the split fields (`content`, `sourceCredit`, `notes`). `operative` omits `notes` as well, leaving `content` + `sourceCredit`: the law and what enacted it, and nothing else. This is the smallest representation of a section, and on a note-heavy section it is the difference between a payload that fits in a prompt and one that does not. Measured on `17 U.S.C. § 107`: 95,217 bytes at `both`, 30,545 at `content`, 1,564 at `operative`, all for the same 6 credits. Only United States Code sections can be split, so on any other corpus both values fall back to returning `plain` with a `note` saying why -- `content` will be null there, so read `note` rather than assuming the section was empty.' - name: structured in: query required: false schema: type: boolean description: 'When true, also return a `subsections` tree parsed from the text for pincite addressing, and `markdown` as that tree rendered as nested Markdown lists. Same cost. `structured=true` OWNS `markdown`: on every `format`, and on every `source`, `markdown` is the nested-list rendering, never the table-preserving rendering a `r2_render` section otherwise returns for `format=all`/`markdown` (a `note` says so when that happens). Ask without `structured` for the tables. With `format=markdown` the nested lists are returned alone, without `html` or `plain`.' examples: - true default: false title: Structured description: 'When true, also return a `subsections` tree parsed from the text for pincite addressing, and `markdown` as that tree rendered as nested Markdown lists. Same cost. `structured=true` OWNS `markdown`: on every `format`, and on every `source`, `markdown` is the nested-list rendering, never the table-preserving rendering a `r2_render` section otherwise returns for `format=all`/`markdown` (a `note` says so when that happens). Ask without `structured` for the tables. With `format=markdown` the nested lists are returned alone, without `html` or `plain`.' - name: asOf in: query required: false schema: anyOf: - type: string pattern: ^\d{4}-\d{2}-\d{2}$ - type: 'null' description: 'Return the section''s text as it stood on this date (`YYYY-MM-DD`) instead of today''s. Same cost. **This is a reconstruction, not an archive.** The corpus holds one current text per citation; an earlier one is rebuilt from the before-side of the first change we OBSERVED after your date. The `asOf` block on the response says which version you got (`source`), what it rests on (`basisChangeId`), how far back the evidence reaches (`observedFrom`), and whether the answer is bounded by when capture began rather than by the law (`isBounded`). Read `isBounded` before citing the text. A section that did not exist yet returns `available: false` with `asOf.existed: false`, which is a real answer and is charged. A section we know changed but cannot rebuild returns `source: "unavailable"` and IS refunded, because you asked for a historical text and did not get one. A date that does not exist on a calendar (`2026-02-30`) is a 422 and is not charged.' examples: - '2026-01-15' format: date title: Asof description: 'Return the section''s text as it stood on this date (`YYYY-MM-DD`) instead of today''s. Same cost. **This is a reconstruction, not an archive.** The corpus holds one current text per citation; an earlier one is rebuilt from the before-side of the first change we OBSERVED after your date. The `asOf` block on the response says which version you got (`source`), what it rests on (`basisChangeId`), how far back the evidence reaches (`observedFrom`), and whether the answer is bounded by when capture began rather than by the law (`isBounded`). Read `isBounded` before citing the text. A section that did not exist yet returns `available: false` with `asOf.existed: false`, which is a real answer and is charged. A section we know changed but cannot rebuild returns `source: "unavailable"` and IS refunded, because you asked for a historical text and did not get one. A date that does not exist on a calendar (`2026-02-30`) is a 422 and is not charged.' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/StatuteBodyResponse' example: actId: USC_T42_C21_S1983 html: '

Every person who, under color of any statute, ordinance, regulation, custom, or usage, of any State or Territory or the District of Columbia, subjects, or causes to be subjected, any citizen of the United States ...

' plain: Every person who, under color of any statute, ordinance, regulation, custom, or usage, of any State or Territory or the District of Columbia, subjects, or causes to be subjected, any citizen of the United States or other person within the jurisdiction thereof to the deprivation of any rights, privileges, or immunities secured by the Constitution and laws, shall be liable to the party injured ... source: r2_s3 available: true processingTimeMs: 8.4 creditsConsumed: 6.0 '404': description: Section not found. `reason` says why and `didYouMean` what to send. content: application/json: schema: $ref: '#/components/schemas/StatuteSectionNotFoundError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/count: post: tags: - US Statutes summary: Count the sections in a scope description: 'How many sections sit in a jurisdiction, corpus, code, title, chapter, part, article or federal rule set. The scoping filters (`code`, `article`, `chapter`, `part`) take the same values and pairing rules as on `/us/statutes/search`. **Cost**: 1 credit. A scope that matches nothing is refunded, because an empty answer here is usually a wrong filter rather than a finding. Use it to size a job before you run it. Walking a container with `/us/statutes/divisions` and hydrating what you find is cheap per call and adds up across a whole corpus, so this is the call that tells you what you are about to spend before you spend it. **There is no `query` parameter, on purpose.** Search ranks over a bounded window, so "how many sections match this query" has no answer beyond the size of that window. This counts a SCOPE, which is exact. Pair the two: count the scope here, enumerate it with `/us/statutes/divisions`, then rank within it using `/us/statutes/search`. The figure counts SECTIONS. Long sections are stored as several passages and are counted once.' operationId: count_statute_sections_api_v1_us_statutes_count_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StatuteCountRequest' required: true responses: '200': description: The number of sections in scope, and the scope that produced it. content: application/json: schema: $ref: '#/components/schemas/StatuteCountResponse' '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Unknown filter value or unknown field. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/coverage: get: tags: - US Statutes summary: Coverage matrix by jurisdiction and corpusType description: 'Self-describing coverage matrix. Returns a legend of every `corpusType` token (what it contains and whether it is federal or state-scoped) plus, for each jurisdiction, the per-corpusType ingested DOCUMENT counts in `corpora` (one per section or document, not per retrieval passage; `totalPassages` in the same response IS the passage count). Use it to learn exactly what is queryable where before calling /us/statutes/search: read a jurisdiction''s `corpora` keys, then pass one as `corpusType` (paired with `state` for state-scoped corpora). Each legend entry''s `browsable` says whether `GET /us/statutes/divisions` can also walk that corpus as a tree. It reports what we hold, not how recently it was refreshed. For the age of any source, call `GET /boards`: it is free, needs no credits, and carries `lastRetrievedAt`, `cadence` and `retrievalStatus` (`current`, `stale`, `failing`, `unconfirmed`, `never_retrieved`) for every tracked source. Read it alongside the counts here so a section count carries an age. It records when we last CHECKED, not when the law last changed, and it is not a claim that the law is current as of that date. Where a publisher states its own currency, that rides on each section as `currentThrough`. **Free.** Requires an API key and is rate-limited, but costs no credits. State session laws (acts as enacted) are at /us/session-laws. Where we hold any for a jurisdiction, its `sessionLaws` block says which sessions are `complete` or `partial`, how many laws we serve, the expected total and open gaps, and the `series`, `instrumentTypes` and approval-date span that exist (the values `GET /us/session-laws/list` accepts). A jurisdiction we hold none for has no block, for example IN and TN at launch. This is the one place session-law coverage is served: check it before you list, then read the laws at `/us/session-laws`.' operationId: list_statutes_coverage_api_v1_us_statutes_coverage_get responses: '200': description: Coverage legend plus per-jurisdiction corpusType counts. content: application/json: schema: $ref: '#/components/schemas/UsStatutesCoverageEnvelope' example: data: corpusTypes: - token: USC description: United States Code (federal statutes) scope: federal browsable: true - token: REGULATION description: State administrative regulations scope: state browsable: true - token: AGENCY_GUIDANCE description: Sub-regulatory agency guidance across named sources scope: federal browsable: false sourceScopeNotes: cms_iom: 'Held: the 204 chapter, appendix and exhibit documents CMS publishes across its Medicare Internet-Only Manuals ... Not held, and these are the publisher''s own gaps rather than ours: Pub. 100-12 (State Medicaid Manual), Pub. 100-13 (Medicaid CHIP) and Pub. 100-23 (Payment Error Rate Measurement) publish no chapters at all ...' jurisdictions: - code: federal name: Federal (USC + CFR) kind: federal sectionCount: 812553 hasData: true corpora: CFR: 491612 USC: 212042 FEDERAL_REGISTER: 102861 EXECUTIVE_ACTION: 3599 AGENCY_GUIDANCE: 2510 FEDERAL_RULES: 526 CONSTITUTION: 74 - code: wa name: Washington kind: state sectionCount: 140326 hasData: true corpora: STATE: 89005 REGULATION: 51142 STATE_CONSTITUTION: 179 totalSections: 2937552 stateCountWithData: 49 meta: processingTimeMs: 5401.2 creditsConsumed: 0 '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' example: detail: Invalid or missing API key. '403': description: API key lacks `research:read` scope. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/divisions: get: tags: - US Statutes summary: Browse the statutory hierarchy description: 'Walk the statutory tree one level at a time, in statutory order. Each call returns the immediate children of wherever you are, so you can enumerate a code top to bottom without searching. **Cost**: 1 credit. A request whose filters do not fit the corpus is rejected before anything is charged. A filter naming a container that does not exist is refunded, and so is a browse that returns no rows, so exploring the hierarchy never costs you anything for a level that turns out to be empty. Pass the deepest level you already know; the response returns the level below it: - `corpusType=USC` -> the titles - `corpusType=USC&titleNumber=42` -> the chapters in Title 42 - `corpusType=USC&titleNumber=42&chapter=21` -> the sections in Chapter 21 (leaf) - `corpusType=CFR&titleNumber=17&part=240` -> the sections in Part 240 (leaf) - `corpusType=STATE&state=tx` -> the state''s codes - `corpusType=STATE&state=tx&code=tx_pe` -> the chapters in the Texas Penal Code - `corpusType=STATE&state=ny&code=ny_jud&article=2` -> the sections in a New York article (leaf) - `corpusType=CONSTITUTION` -> the articles and amendments of the US Constitution - `corpusType=CONSTITUTION&article=Article III` -> the sections of Article III (leaf) - `corpusType=STATE_CONSTITUTION&state=nm` -> the articles of the New Mexico Constitution - `corpusType=FEDERAL_RULES` -> the rule sets (FRCP, FRE, FRCrP, ...) - `corpusType=FEDERAL_RULES&code=frcp` -> the Federal Rules of Civil Procedure (leaf) Interior nodes carry a `sectionCount` and `isLeaf: false`; drill into one by passing its `identifier` back as the filter its `kind` names (`title` -> `titleNumber`, `chapter`, `part`, `code`, `article`). Leaf nodes are sections and carry an `actId` for `/us/statutes/section/{actId}`. Browse supports `USC`, `CFR`, `STATE`, `REGULATION`, `CONSTITUTION`, `STATE_CONSTITUTION` and `FEDERAL_RULES`, which is also what `browsable` says on each `GET /us/statutes/coverage` legend entry. The rest are dated series or share no tree, so use `/us/statutes/search` for those. Federal rules are published twice: by the Judicial Conference at uscourts.gov (`frcp`, `fre`, ...) and as an appendix to the U.S. Code (`uscapp_t28a_fre`, ...). Each is its own rule set here, so neither is listed twice under one heading.' operationId: list_statute_divisions_api_v1_us_statutes_divisions_get parameters: - name: corpusType in: query required: true schema: type: string description: Corpus to browse. Case-insensitive. The browsable subset of the `corpusType` tokens on `/us/statutes/coverage`. examples: - USC enum: - USC - CFR - STATE - REGULATION - CONSTITUTION - STATE_CONSTITUTION - FEDERAL_RULES title: Corpustype description: Corpus to browse. Case-insensitive. The browsable subset of the `corpusType` tokens on `/us/statutes/coverage`. - name: state in: query required: false schema: anyOf: - type: string enum: - al - ak - az - ar - ca - co - ct - de - dc - fl - ga - gu - hi - id - il - in - ia - ks - ky - la - me - md - ma - mi - mn - ms - mo - mt - ne - nv - nh - nj - nm - ny - nc - nd - mp - oh - ok - or - pa - pr - ri - sc - sd - tn - tx - ut - vt - va - wa - wv - wi - wy - type: 'null' description: 2-letter jurisdiction code, required for the state-scoped corpora (STATE, REGULATION, STATE_CONSTITUTION). Case-insensitive. examples: - tx title: State description: 2-letter jurisdiction code, required for the state-scoped corpora (STATE, REGULATION, STATE_CONSTITUTION). Case-insensitive. - name: titleNumber in: query required: false schema: anyOf: - type: integer minimum: 1 - type: 'null' description: USC/CFR title number to drill into. examples: - 42 title: Titlenumber description: USC/CFR title number to drill into. - name: code in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Code to drill into: a state code such as `tx_pe` (list them with `corpusType=STATE&state=`), or a federal rule set such as `frcp` (list them with `corpusType=FEDERAL_RULES`).' examples: - tx_pe title: Code description: 'Code to drill into: a state code such as `tx_pe` (list them with `corpusType=STATE&state=`), or a federal rule set such as `frcp` (list them with `corpusType=FEDERAL_RULES`).' - name: chapter in: query required: false schema: anyOf: - type: string - type: 'null' 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.' examples: - '21' title: Chapter 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.' - name: part in: query required: false schema: anyOf: - type: string - type: 'null' description: Part identifier to drill into (CFR). examples: - '240' title: Part description: Part identifier to drill into (CFR). - name: article in: query required: false schema: anyOf: - type: string - type: 'null' 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.' examples: - Article III title: Article 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.' - name: excludeRepealed in: query required: false schema: type: boolean description: 'Leave out sections whose status is affirmatively dead (repealed, superseded, renumbered and similar). A section carrying no recorded status is KEPT: a missing status is not evidence of repeal. Same vocabulary as the filter of this name on `POST /us/statutes/search`.' default: false title: Excluderepealed description: 'Leave out sections whose status is affirmatively dead (repealed, superseded, renumbered and similar). A section carrying no recorded status is KEPT: a missing status is not evidence of repeal. Same vocabulary as the filter of this name on `POST /us/statutes/search`.' - name: actStatus in: query required: false schema: anyOf: - type: string 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 - 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. title: Actstatus 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. - name: cursor in: query required: false schema: 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. title: Cursor 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. responses: '200': description: The child divisions at the requested level. content: application/json: schema: $ref: '#/components/schemas/UsStatutesDivisionsResponse' example: corpusType: USC level: sections parentLabel: Title 42, Chapter 21 divisions: - identifier: '1981' name: Equal rights under the law kind: section isLeaf: true actId: USC_T42_C21_S1981 - identifier: 1981a name: Damages in cases of intentional discrimination in employment kind: section isLeaf: true actId: USC_T42_C21_S1981a - identifier: '1982' name: Property rights of citizens kind: section isLeaf: true actId: USC_T42_C21_S1982 - identifier: '1983' name: Civil action for deprivation of rights kind: section isLeaf: true actId: USC_T42_C21_S1983 count: 38 processingTimeMs: 5.1 creditsConsumed: 1.0 '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Filters do not fit the corpus shape. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/section/{act_id}/changes: get: tags: - US Statutes summary: Get this section's change history description: 'Every change our refreshes have observed to one section: when it was added, each time its text was replaced, and whether it has since been removed. **Cost**: 1 credit. Not-found and failed lookups are not charged. An empty history for a section that exists IS the answer and is charged. A section lookup tells you what the law says today. This tells you whether that is the same thing it said when you last reviewed it. Unlike a board watch, which can only show changes that postdate the subscription, this reads the history already captured. **What this is, and is not.** These are OBSERVED changes: a refresh compared the source against the copy we held and found it different. `detectedAt` is when we saw it, an upper bound on when it took effect, never the effective date itself. For the publisher''s own effective and amendment dates, read `amendmentHistory` on `GET /us/statutes/section/{act_id}`. The two are complements: the publisher tells you what it says changed, this tells you what actually moved and when we could have told you. **Coverage is bounded by capture, not by the age of the law.** Change capture began long after the corpus itself did, it is per-source, and events are swept at 5 years. An empty `changes` list therefore means *no captured change*, not *never amended*. The `coverage` field on every response says so; surface it rather than rendering an empty list as "unchanged". **A removed section still answers.** When the newest change is a `removed`, the section is gone from the corpus and `section` comes back null. That is a successful, charged response, not a 404 -- learning that a provision was repealed is the point. **Paging.** `hasMore` is true when the page filled to `limit`. Walk backwards through history with `beforeId` (the smallest `id` you hold) and forward into new changes with `sinceId` (`cursor` from your last page). **Alerting on future changes** is a different surface: subscribe to the `corpusType` on this response via `POST /boards/watches`, optionally scoped to this exact `actId`, and take before/after diff text from the watch''s own diff endpoint.' operationId: get_section_changes_api_v1_us_statutes_section__act_id__changes_get parameters: - name: act_id in: path required: true schema: type: string minLength: 3 maxLength: 200 description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' examples: - CFR_T21_P314_S314_50 title: Act Id description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' - name: limit in: query required: false schema: type: integer maximum: 200 minimum: 1 description: Max changes to return on this page. examples: - 50 default: 50 title: Limit description: Max changes to return on this page. - name: sinceId in: query required: false schema: anyOf: - type: integer minimum: 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.' title: Sinceid 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.' - name: beforeId in: query required: false schema: anyOf: - type: integer minimum: 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.' title: Beforeid 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.' - name: changeKind in: query required: false schema: 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. title: Changekind description: Filter to these kinds. Repeat the parameter to pass several (`?changeKind=amended&changeKind=removed`). Omit for all three. - name: order in: query required: false schema: enum: - asc - desc type: string 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.' default: desc title: Order 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.' responses: '200': description: The section's captured change history, newest first. content: application/json: schema: $ref: '#/components/schemas/StatuteChangesResponse' example: actId: CFR_T21_P314_S314_50 section: actId: CFR_T21_P314_S314_50 citation: 21 C.F.R. § 314.50 title: Content and format of an NDA corpusType: CFR state: federal changes: - id: 91 changeKind: amended detectedAt: '2026-08-07T04:10:00Z' citation: 21 CFR 314.50 displayCitation: 21 C.F.R. § 314.50 title: Content and format of an NDA hasDiff: true corpusType: cfr total: 1 hasMore: false cursor: 91 coverage: 'Observed changes only: what a refresh of this source detected, from when change capture began for it through today, retained 5 years. This is not the section''s legislative history, and an empty list means no captured change rather than never amended.' processingTimeMs: 18.4 creditsConsumed: 1 '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '404': description: No such section, and no change ever captured for this act_id. `reason` says why. content: application/json: schema: $ref: '#/components/schemas/StatuteSectionNotFoundError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/section/{act_id}/enactments: get: tags: - US Statutes summary: Which acts a state publisher lists against this section description: 'The state session laws a publisher''s own tables list against one code section: which act added, amended or repealed it, when the act took effect, and what the publisher printed. Start from a section (an `actId` from `/us/statutes/search`, or a citation) and get to the act, then read the act at `href`, or its text at `href` plus `/body`. **Stage 1, and honest about it.** This reads the code-section TABLES that state publishers print against their session laws ("sections affected"), through a reverse lookup. It is never read out of the acts'' prose and it is **never a complete amendment history**: only acts we hold, in sessions we hold (`coverage.sessionsHeld`), whose table lists the section in the printed form we map. Every row says `basis: publisher_sections_affected` and `matchQuality: as_printed`. An empty `enactments` with `supported: true` means "no held table lists this section", not "this section was never amended". The published `coverage.note` says, per jurisdiction, what is not read: entries printed as lists or ranges (`338-15, 21`), with a subsection pincite, or by an act''s own section number are not matched. **Where it works.** CA, DC, HI, KY, MO, MS, NE, UT, WA: the jurisdictions where the publisher''s printed form was shown to map to our section numbers against real data on both sides, and each section''s stored number must be in the form that mapping was proven on. Any other jurisdiction (and any federal, regulation or constitution section) answers `supported: false`, an empty list, a `reason` and a `coverage.note`, and is **not charged**. A wrong match is worse than a miss, so equality is on the whole number after folding case, spacing, dashes and the section sign: `71-24,104` does not match `71-24,10`, and `3` does not match `3.1`. Where a publisher qualifies a section by code (California, Hawaii, DC) the printed code must match too. **Cost**: 1 credit. A section that does not exist is not charged. A supported section whose answer is empty IS charged: "no held table lists it" is the answer you paid for, as an empty history is on `/us/statutes/section/{actId}/changes`. An unsupported jurisdiction or section is refunded, and so is any failure on our side (503, 500). `creditsConsumed` reports what was billed. A citation in place of the id also pays the `/resolve` price, whether or not it resolves. **What a row says.** `sessionLawId` and `href` name the act; `action` is the normalised `added | amended | repealed | renumbered | other`, mapped only where the publisher''s legend is settled and `other` otherwise (Nebraska prints no action; Mississippi''s `BF` is "brought forward", not a change), and `actionAsPrinted` is always the publisher''s own code. `effectiveDates` are the ACT''s dates, as printed, not necessarily this section''s. `sectionAsPrinted`, `codeAsPrinted` and `actSectionAsPrinted` are verbatim. Rows are newest act first and one per printed entry: an act that lists the section twice appears twice. `truncated` is true past 200 rows. **Example** ```bash curl "https://api.vaquill.ai/api/v1/us/statutes/section/STATE_MS_T27_C71_S27-71-5/enactments" \ -H "Authorization: Bearer $VAQUILL_API_KEY" ``` **Related endpoints** - `GET /us/statutes/section/{actId}/changes` is what our refreshes observed to the section. - `GET /us/session-laws/{sessionLawId}` reads an act from `href`; `/body` reads its text. - `GET /us/statutes/coverage` says which sessions we hold and how complete each is, in each jurisdiction''s `sessionLaws` block.' operationId: get_section_enactments_api_v1_us_statutes_section__act_id__enactments_get parameters: - name: act_id in: path required: true schema: type: string minLength: 3 maxLength: 200 description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' examples: - STATE_MS_T27_C71_S27-71-5 title: Act Id description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' responses: '200': description: 'The entries the publisher''s tables list against the section, or `supported: false` (not charged). Not a complete history.' content: application/json: schema: $ref: '#/components/schemas/SectionEnactmentsResponse' examples: supported: summary: Miss. Code Ann. § 27-71-5, listed by a 2025 act (printed `027-0071-0005`) value: actId: STATE_MS_T27_C71_S27-71-5 jurisdiction: ms supported: true enactments: - sessionLawId: SSL_MS_2025R_G_C301 href: /api/v1/us/session-laws/SSL_MS_2025R_G_C301 citation: Regular Session, ch. 301 title: AN ACT TO AUTHORIZE A PERSON WHO IS THE HOLDER OF A WINE MANUFACTURER'S PERMIT IN THIS STATE, OR WHO IS LICENSED OR PERMITTED OUTSIDE OF THE STATE TO ENGAGE IN THE ACTIVITY OF MANUFACTURING WINE, TO SELL AND SHIP WINE DIRECTLY TO RESIDENTS ... sessionCode: 2025R effectiveDates: - date: '2025-07-01' dateAsPrinted: July 1, 2025 action: amended actionAsPrinted: A sectionAsPrinted: 027-0071-0005 basis: publisher_sections_affected matchQuality: as_printed identityConfidence: single_source textStatus: held enactmentOutcome: signed count: 1 truncated: false coverage: jurisdiction: ms sessionsHeld: - code: 2025R label: 2025 Regular Session status: complete note: 'Mississippi: the Legislature''s bill-status record lists Code sections in a zero-padded form. A section brought forward (`BF`) or reenacted (`R`) is listed as `other`: the act named it and did not necessarily change it. Entries the publisher prints as a list or range (`338-15, 21`), with a subsection pincite, or by an act''s own section number are not matched, so a section can be amended by an act this answer does not list. ' creditsConsumed: 1 processingTimeMs: 96.4 supportedEmpty: summary: 'A supported section no held table lists: charged, an answer and not a claim' value: actId: STATE_MS_T27_C71_S27-71-9 jurisdiction: ms supported: true enactments: [] count: 0 truncated: false coverage: jurisdiction: ms sessionsHeld: - code: 2025R label: 2025 Regular Session status: complete note: 'Mississippi: the Legislature''s bill-status record lists Code sections in a zero-padded form. A section brought forward (`BF`) or reenacted (`R`) is listed as `other`: the act named it and did not necessarily change it. Entries the publisher prints as a list or range (`338-15, 21`), with a subsection pincite, or by an act''s own section number are not matched, so a section can be amended by an act this answer does not list. ' creditsConsumed: 1 processingTimeMs: 71.2 unsupported: summary: 'A jurisdiction we do not read (Iowa): supported false, not charged' value: actId: STATE_IA_TXI_C459_S459.308 jurisdiction: ia supported: false reason: unsupported_jurisdiction enactments: [] count: 0 truncated: false coverage: jurisdiction: ia sessionsHeld: [] note: Code-section tables are read for CA, DC, HI, KY, MO, MS, NE, UT, WA. This jurisdiction's own table is held, but it prints an edition prefix and a subsection pincite (`2025 Code - 331.301 (27)`), so an exact lookup would find only the entries printed without one and silently under-report the rest. creditsConsumed: 0 processingTimeMs: 38.9 '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '404': description: No such section. `reason` says why, `didYouMean` lists real ids. Not charged for the route; a citation's `/resolve` price is kept on an unresolved citation. content: application/json: schema: $ref: '#/components/schemas/StatuteSectionNotFoundError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '503': description: The statutes corpus or the session-laws database is temporarily unavailable. The charge is refunded; retry. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/section/{act_id}/cited-by: get: tags: - US Statutes summary: Find the sections that cite this one description: 'The USC and CFR sections whose text cross-references a given section. **Cost**: 2 credits. Not-found, failed lookups, and sections in a corpus with no cross-reference index are not charged. A section lookup tells you what a section cites; this is the other direction, which provisions elsewhere in the code depend on this one. That is the question behind "if this section changes, what else is affected". Results are one row per citing section, in statutory order, never one row per matching chunk. **Scope**: USC and CFR. State codes and Federal Register rules carry no section-level cross-reference index, so a section from either returns an empty list with a `note` explaining why, and is refunded. When `note` is null, an empty `citers` is a real answer: plenty of sections are cited by nothing. **Completeness**: this reads references as the publisher wrote them, including the title-relative form a section uses for its own neighbours. A citation that the source never recorded in machine-readable form cannot appear here, so treat a result as evidence of a citation rather than proof there are no others.' operationId: get_section_cited_by_api_v1_us_statutes_section__act_id__cited_by_get parameters: - name: act_id in: path required: true schema: type: string minLength: 3 maxLength: 200 description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' examples: - USC_T42_C21_S1983 title: Act Id description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum citing sections to return. examples: - 25 default: 25 title: Limit description: Maximum citing sections to return. responses: '200': description: The section plus the sections citing it. content: application/json: schema: $ref: '#/components/schemas/StatuteCitedByResponse' '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '404': description: Section not found. `reason` says why. content: application/json: schema: $ref: '#/components/schemas/StatuteSectionNotFoundError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/section/{act_id}/definitions: get: tags: - US Statutes summary: Get the defined terms that govern this section description: 'The term definitions that apply to a section, parsed from its chapter''s definitions section. **Cost**: 4 credits. Not-found, failed lookups, chapters with no definitions section, and definitions sections whose text is not yet ingested are all refunded. A statute''s terms of art are defined in a separate section elsewhere in the chapter, not in the provision you are reading: "person" routinely includes corporations, "employee" routinely excludes independent contractors. This resolves that section and returns its terms. `definitionsSection` names where the terms came from, so a definition can be quoted and cited to the provision that actually carries it. **Scope**: strongest on the U.S. Code, where a chapter''s definitions section is conventionally structured and parses reliably. CFR and state codes are best-effort: publishers format definitions inconsistently, and a definitions section we can locate but not parse into terms returns empty with a `note` and is refunded. `definitionsSection` is still populated in that case, so you can fetch its text directly from `/section/{actId}/body` and read it yourself. You are never charged for a chapter whose terms we could not return.' operationId: get_section_definitions_api_v1_us_statutes_section__act_id__definitions_get parameters: - name: act_id in: path required: true schema: type: string minLength: 3 maxLength: 200 description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' examples: - USC_T42_C21_S1983 title: Act Id description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' responses: '200': description: The section plus the defined terms governing it. content: application/json: schema: $ref: '#/components/schemas/StatuteDefinitionsResponse' '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '404': description: Section not found. `reason` says why. content: application/json: schema: $ref: '#/components/schemas/StatuteSectionNotFoundError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' servers: - url: https://api.vaquill.ai description: Production /api/v1/us/statutes/section/{act_id}/cross-state: get: tags: - US Statutes summary: Compare this provision against other states description: 'Provisions in other states that address the same subject as a given state statute section. **Cost**: 6 credits. Not-found, failed lookups, and sections outside the state statute corpus are not charged. Every state words and numbers its provisions differently, so comparing a rule across jurisdictions normally means running one search per state and reconciling the results by hand. This starts from one section you already have and returns the comparable provision elsewhere. **At most one provision per state**, most similar first, so the response reads as a jurisdiction comparison rather than a relevance list. `statesCovered` tells you how many distinct states are represented. **Scope**: state statute sections. USC, CFR, regulations and court rules return empty with a `note`, refunded, since a federal section has no state analogue by definition. **What `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 this as the shortlist to read, not the answer.' operationId: get_section_cross_state_api_v1_us_statutes_section__act_id__cross_state_get parameters: - name: act_id in: path required: true schema: type: string minLength: 3 maxLength: 200 description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' examples: - USC_T42_C21_S1983 title: Act Id description: 'Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, which a lawyer writes as 42 U.S.C. § 1983). Take it from a `/us/statutes/search` or `/us/statutes/resolve` result. A citation also works here: `26 U.S.C. § 1`, `42 USC 1983` or `Cal. Civ. Code § 1950.5` is resolved with the same resolver `/resolve` uses, and the section is served. A citation costs this endpoint''s price PLUS the `/resolve` price (2 credits), charged as its own line whether or not it resolves, exactly as `/resolve` charges; that is the same total as calling `/resolve` and then this endpoint, in one round trip. An exact act_id costs only this endpoint''s price. When a citation resolves, or when the id only matched after surrounding whitespace, quotes or a trailing period were removed, the response carries `resolvedFrom` saying what your input was matched as. Check it the way you would check a `/resolve` answer. A citation containing `/` cannot travel in a URL path segment; resolve it with `GET /us/statutes/resolve` instead. Do not assemble an id from a citation: the title and section are derivable, but the CHAPTER is not, so `USC_T26_S1` misses. A miss returns 404 with `reason` and, where the section exists under another id, `didYouMean`. State session laws (acts as enacted, ids starting `SSL_`) are not code sections: read them at `/us/session-laws/{sessionLawId}`.' - name: limit in: query required: false schema: type: integer maximum: 25 minimum: 1 description: Maximum states to return, one provision each. examples: - 5 default: 5 title: Limit description: Maximum states to return, one provision each. responses: '200': description: The section plus comparable provisions in other states. content: application/json: schema: $ref: '#/components/schemas/StatuteCrossStateResponse' '401': description: Invalid or missing API key. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '402': description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '404': description: Section not found. `reason` says why. content: application/json: schema: $ref: '#/components/schemas/StatuteSectionNotFoundError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApiDetailError' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' servers: - url: https://api.vaquill.ai description: Production components: schemas: ApiFieldError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Loc description: 'Where the bad value is: `body`, `query` or `path`, then the parameter name exactly as you send it (camelCase), then list indexes. A bare `["body"]` means the body as a whole was not a JSON object.' examples: - - body - corpusType msg: type: string title: Msg description: What is wrong with the value, in plain English. examples: - Input should be 'USC', 'CFR' or 'STATE' type: type: string title: Type description: Machine-readable error kind, e.g. `missing`, `literal_error`, `json_invalid`. examples: - literal_error type: object required: - loc - msg - type title: ApiFieldError description: One rejected field in a 422 response. UsCorpusTypeInfo: properties: token: type: string title: Token description: The `corpusType` value to pass to `/us/statutes/search`. examples: - REGULATION description: type: string title: Description description: What this corpus contains. scope: type: string enum: - federal - state title: Scope description: '`federal` corpora appear under the `federal` jurisdiction; `state` corpora are scoped per state (pair with the `state` filter).' browsable: type: boolean title: Browsable description: Whether `GET /us/statutes/divisions` can walk this corpus level by level (titles, chapters, parts, codes, articles, rule sets). False for dated series such as the Federal Register and executive actions, and for corpora with no shared tree such as agency guidance. Every corpus is searchable either way; this only says whether you can NAVIGATE it instead of querying it. default: false examples: - true scopeNote: anyOf: - type: string - type: 'null' title: Scopenote description: 'Present ONLY when we hold part of a corpus rather than all of it, and then it names both what is held and what is not. Null means no class-level exclusion applies. It is a STRUCTURED completeness claim, deliberately separate from `description` (prose a caller cannot act on). It says nothing about how recently the corpus was refreshed, a different fact: a filtered corpus can be, and `FEDERAL_REGISTER_NOTICE` is, refreshed weekly. `GET /boards` answers that one.' examples: - 'Held: notices withdrawing a proposed rule ... About 2.4% of Federal Register notices. Not held: Paperwork Reduction Act information collections ...' sourceScopeNotes: additionalProperties: type: string type: object title: Sourcescopenotes description: Scope statements for INDIVIDUAL sources inside this token, keyed by the `source` value you can filter on. `scopeNote` is the right unit for a token that is one corpus; it is the wrong unit for `AGENCY_GUIDANCE`, which fans out to more than thirty unrelated sources, so a partial source declares its own coverage here rather than describing every sibling. Empty when every source under this token is held whole. examples: - cms_iom: 'Held: the 204 chapter, appendix and exhibit documents ... Not held ... Pub. 100-12 (State Medicaid Manual) ... publish no chapters at all ...' type: object required: - token - description - scope title: UsCorpusTypeInfo description: 'One entry in the coverage legend: what a `corpusType` token means.' StatuteResolveBatchResponse: properties: results: items: $ref: '#/components/schemas/StatuteResolveBatchItem' type: array title: Results description: 'One entry per de-duplicated input citation, in the order supplied. An unresolved citation is an entry with `resolved: false`, never an omission: a caller checking thirty citations needs to know which of them failed, and a shorter array cannot say.' resolvedCount: type: integer title: Resolvedcount description: How many of the submitted citations resolved to a code section. A citation answered only by a `sessionLaw` block is not counted. default: 0 examples: - 2 count: type: integer title: Count description: Total entries in `results`, after de-duplication. default: 0 examples: - 3 processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds. default: 0.0 examples: - 610.2 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged. Read it rather than multiplying the list price by your input length: a backend failure on some citations refunds those, so this can be lower than 2 x `count`.' default: 0.0 examples: - 6 type: object title: StatuteResolveBatchResponse description: Response for `POST /us/statutes/resolve`. FrRelatedDocument: properties: actId: type: string title: Actid citation: anyOf: - type: string - type: 'null' title: Citation title: anyOf: - type: string - type: 'null' title: Title description: The related document's own title/heading, when known. documentType: anyOf: - type: string - type: 'null' title: Documenttype description: '`proposed_rule`, `final_rule`, or the raw Federal Register category otherwise.' publicationDate: anyOf: - type: string - type: 'null' title: Publicationdate description: Federal Register publication date (ISO 8601 date), when known. type: object required: - actId title: FrRelatedDocument description: 'One other Federal Register document sharing a RIN with this one. A Regulation Identifier Number (RIN) tracks one regulatory action through its lifecycle -- a proposed rule, its final rule, and any later corrections all carry the same RIN. This is what answers "what happened to this proposed rule": look up its RIN''s other documents.' StatuteSearchRequest: properties: query: type: string maxLength: 500 minLength: 2 title: Query description: Search query in natural language. examples: - insider trading penalties corpusType: anyOf: - type: string enum: - USC - CFR - STATE - CONSTITUTION - FEDERAL_RULES - FEDERAL_LOCAL_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 - items: type: string enum: - USC - CFR - STATE - CONSTITUTION - FEDERAL_RULES - FEDERAL_LOCAL_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: array - type: 'null' title: Corpustype description: 'Restrict to one corpus, or to several by passing a list (`"corpusType": ["USC", "CFR"]`). One of: `USC` (United States Code), `CFR` (Code of Federal Regulations), `STATE` (state statutory codes; call `/us/statutes/coverage` for the list of ingested jurisdictions), `CONSTITUTION` (U.S. Constitution), `FEDERAL_RULES` (FRCP / FRCrP / FRE / FRAP / FRBP), `STATE_CONSTITUTION` (state constitutions; call `/us/statutes/coverage` for the current jurisdiction list), `STATE_RULES` (state court rules; see `/us/statutes/coverage`), `EXECUTIVE_ACTION` (Federal Register Presidential Documents), `REGULATION` (state administrative regulations; pair with `state`), `FEDERAL_REGISTER` (Federal Register agency rules, final and proposed), `AGENCY_GUIDANCE` (sub-regulatory federal agency guidance, 53 named sources spanning the tax, banking, securities, labor, immigration, health-privacy, export-control, intellectual-property, antitrust, energy and communications agencies; each is independently filterable with `source`, which lists them all), `STATE_AGENCY_GUIDANCE` (state-issued regulatory guidance, currently state Department of Insurance bulletins and circular letters; pair with `state`, and see `/us/statutes/coverage`), `SENTENCING_GUIDELINES` (US Sentencing Guidelines Manual), `US_TAX_TREATY` (US income tax treaties and protocols), `SESSION_LAW` (US Statutes at Large: federal public and private laws AS ENACTED, 1789 to date. This is the source the US Code is compiled from, so a section''s `publicLawCites` resolve here to the enacting text; call `/us/statutes/coverage` for the live section count). Omit to search across all corpora. The `enum` on this field is the complete token list, and `/us/statutes/coverage` serves a one-line description of each in its legend.' examples: - CFR state: anyOf: - type: string enum: - federal - al - ak - az - ar - ca - co - ct - de - dc - fl - ga - gu - hi - id - il - in - ia - ks - ky - la - me - md - ma - mi - mn - ms - mo - mt - ne - nv - nh - nj - nm - ny - nc - nd - mp - oh - ok - or - pa - pr - ri - sc - sd - tn - tx - ut - vt - va - wa - wv - wi - wy - items: type: string enum: - federal - al - ak - az - ar - ca - co - ct - de - dc - fl - ga - gu - hi - id - il - in - ia - ks - ky - la - me - md - ma - mi - mn - ms - mo - mt - ne - nv - nh - nj - nm - ny - nc - nd - mp - oh - ok - or - pa - pr - ri - sc - sd - tn - tx - ut - vt - va - wa - wv - wi - wy type: array - type: 'null' title: State description: 'Jurisdiction filter. A 2-letter code for one of the 52 supported US jurisdictions (50 states + DC + PR), or `federal` to scope to USC / CFR / Constitution / federal rules. Pass a LIST to search several at once (`"state": ["ca", "ny", "tx"]`), which is one call instead of one per jurisdiction. Case-insensitive: `ca` and `CA` both work. An unrecognized value is rejected with 422 rather than silently matching nothing. Omit to search every jurisdiction.' examples: - ca code: anyOf: - type: string - items: type: string type: array - type: 'null' title: Code description: 'Restrict to specific state statutory codes, e.g. `tx_pe` for the Texas Penal Code. Values are the `identifier`s returned by `GET /us/statutes/divisions?corpusType=STATE&state=XX`, so the browse output can be fed straight back in. Pass a list to search several codes, across states if you like (`["tx_pe", "ca_pen"]`). This is the only way to scope below a whole jurisdiction: `state=tx` alone searches every Texas code at once. With `corpusType=FEDERAL_RULES`, a value can instead be a federal rule set as `GET /us/statutes/divisions?corpusType=FEDERAL_RULES` lists it: `frcp`, `fre`, `frcpsuppadm`, or an appendix copy such as `uscapp_t28a_fre`. Without that corpusType a bare `frcp` is refused, because it cannot be told apart from a state code missing its state.' examples: - tx_pe article: anyOf: - type: string - items: type: string type: array - type: 'null' title: Article 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. Pass 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.' examples: - Amendment XIV yearFrom: anyOf: - type: integer maximum: 2100.0 minimum: 1700.0 - type: 'null' title: Yearfrom description: 'Only return sections dated in or after this year. Combine with `yearTo` for a window. A section matches on the first of three years it carries: the most recent amendment the publisher credits in its own history note; else its effective year, for a section adopted once and never amended; else, for corpora dated by publication rather than amendment (Federal Register proposed rules, agency guidance, adjudications, the treaty record), the document''s own publication or issue year. Every one of those tracks the LAW or the document, never when we last rebuilt the corpus. A section carrying none of the three is excluded once either bound is set, so an unbounded search returns strictly more.' examples: - 2020 yearTo: anyOf: - type: integer maximum: 2100.0 minimum: 1700.0 - type: 'null' title: Yearto description: 'Only return sections dated in or before this year, on the same three years `yearFrom` describes. Note it filters the LAST such date, so a section amended in 2025 is excluded by `yearTo=2024` even though it existed in 2024. This is a currency filter, not point-in-time retrieval: the corpus holds one current text per citation.' examples: - 2026 excludeRepealed: type: boolean title: Excluderepealed description: 'Drop sections whose own status says they are no longer operative: repealed, renumbered, transferred, recodified, rescinded, revoked, expired, superseded, omitted, reserved, and the rest of the dead and not-operative vocabulary (the full set is the one behind each result''s `goodLawStatus`). **This removes what we KNOW is dead. It does not promise the remainder is good law.** A section survives this filter when its status is `in_force` OR when we hold no trustworthy repeal signal for its jurisdiction, and those two are not the same thing. Read `goodLawStatus` on each surviving result to tell them apart: `good_law` is checked, `unknown` is unchecked. Filtering on the status we store and reporting the verdict we derive are deliberately separate, because only the first is indexable. **The United States Code is served from a stored annual edition** (`year` 2024, `currentThrough` 2025-01-06), so a section repealed after that edition closed still carries `actStatus: in_force` and survives this filter. Every USC result therefore reports `goodLawStatus: unknown`, which is the honest answer and the one this field''s second paragraph tells you to read. Use `/section/{actId}/changes` for the timeline on a section you depend on.' default: false examples: - true actStatus: anyOf: - type: string 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 - items: type: string 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 type: array - type: 'null' title: Actstatus description: 'Positively scope to one or more raw publisher statuses, e.g. `"repealed"` to find only dead law, or `["in_force"]` for only sections affirmatively marked current. This is the inverse of `excludeRepealed` and is what you want for a compliance diff that asks what was LOST rather than what remains. Values are the `actStatus` returned on each result. Combining a dead status here with `excludeRepealed: true` contradicts itself and is rejected with 422 rather than silently returning nothing.' examples: - repealed changedSince: anyOf: - type: string pattern: ^\d{4}-\d{2}-\d{2}$ - type: 'null' format: date title: Changedsince description: 'Only return sections we have OBSERVED change on or after this date (`YYYY-MM-DD`). This is the sync filter: it turns a lookup API into something a nightly job can poll, without creating a board watch per jurisdiction. **These are observed changes, not effective dates.** A refresh compared the publisher against the copy we held and found it different; the date is when we SAW it, an upper bound on when it took effect. It is the same event stream `GET /us/statutes/section/{actId}/changes` serves per section, so a hit here has a history there. **Coverage is bounded by capture, not by the age of the law.** Change capture began long after the corpus did, it is per-source, and events are swept at 24 months. An empty result means no captured change in the window, never that nothing was amended. Narrow with `corpusType` and `state` for a tighter window: the change set is resolved to concrete sections before the search runs, and a window matching too many sections is rejected with a 422 that says so rather than silently truncating your answer.' examples: - '2026-08-01' agency: anyOf: - type: string - items: type: string type: array - type: 'null' title: Agency description: Federal Register agency slug, e.g. `environmental-protection-agency`. The agency's full name (`Environmental Protection Agency`) or its Federal Register acronym (`EPA`, `e.p.a.`) resolves to the same slug; an acronym the Federal Register gives to more than one agency (`FS`) or a value naming no agency the corpus holds is a 422, never a charge. 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. examples: - environmental-protection-agency documentType: anyOf: - type: string enum: - final - proposed - presidential - type: 'null' title: Documenttype 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_`).' examples: - final publishedFrom: anyOf: - type: string pattern: ^\d{4}-\d{2}-\d{2}$ - type: 'null' format: date title: Publishedfrom 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.' examples: - '2024-01-01' publishedTo: anyOf: - type: string pattern: ^\d{4}-\d{2}-\d{2}$ - type: 'null' format: date title: Publishedto description: Only return Federal Register documents published on or before this date. examples: - '2024-12-31' titleNumber: anyOf: - type: integer minimum: 1.0 - type: 'null' title: Titlenumber 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). examples: - 17 chapter: anyOf: - type: string - items: type: string type: array - type: 'null' title: Chapter description: 'Scope a search to one or more chapters within a title or code, e.g. `21` for USC Title 42 Chapter 21. This is the search-side of the `parent` object on each result: pass a hit''s `parent.chapter` straight back to search that hit''s neighbors. Chapter numbers repeat across titles, so pair it with `titleNumber` (USC) or `code` (state); an unpaired chapter is rejected. String or list.' examples: - '21' part: anyOf: - type: string - items: type: string type: array - type: 'null' title: Part description: 'Scope a search to 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` straight back to search within that part. Pair it with `titleNumber`; an unpaired part is rejected. String or list.' examples: - '240' source: anyOf: - type: string 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 - items: type: string 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 type: array - type: 'null' title: Source description: 'Scope to one or more of the following. The named source within `corpusType`, for corpora that fold several independently filterable bodies of law into one token. `FEDERAL_RULES` sources: `frcp` (Federal Rules of Civil Procedure), `frcrp` (Federal Rules of Criminal Procedure), `fre` (Federal Rules of Evidence), `frap` (Federal Rules of Appellate Procedure), `frbp` (Federal Rules of Bankruptcy Procedure), `sct` (Rules of the Supreme Court of the United States). `CFR` sources: `far` (Federal Acquisition Regulation (48 C.F.R. ch. 1)), `dfars` (Defense Federal Acquisition Regulation Supplement (48 C.F.R. ch. 2)) (both are already part of `CFR`; this only splits the existing Title 48 data by chapter, it does not add new sections). `AGENCY_GUIDANCE` sources: `administrative_guidance` (Synthesized administrative guidance (e.g. SALT cap, CTC, 401(k) limits)), `ssa_ruling` (Social Security Administration Rulings), `irs_rev_proc` (IRS Revenue Procedures), `irs_notice` (IRS Notices), `irs_rev_rul` (IRS Revenue Rulings), `irs_announcement` (IRS Announcements), `irs_irm` (Internal Revenue Manual (IRS internal procedure)), `merger_guidelines` (DOJ & FTC Merger Guidelines (2023)), `doj_leniency` (DOJ Antitrust Division Leniency Policy), `doj_business_review` (DOJ Antitrust Division Business Review Letters (1991-2021)), `cms_iom` (CMS Medicare Internet-Only Manuals (instruction to Medicare contractors, not a regulation)), `copyright_circular` (US Copyright Office Circulars), `copyright_compendium` (Compendium of U.S. Copyright Office Practices, Third Edition (2014, 2017 and 2021 editions)), `doj_justice_manual` (DOJ Justice Manual), `uscis_policy_manual` (USCIS Policy Manual), `mpep` (USPTO Manual of Patent Examining Procedure (MPEP)), `tmep` (USPTO Trademark Manual of Examining Procedure (TMEP)), `cftc_staff_letter` (CFTC Staff Letters (no-action, exemptive, interpretative; 2008-present)), `fincen_ruling` (FinCEN Administrative Rulings), `fincen_guidance` (FinCEN Guidance (alerts, advisories, notices, bulletins, fact sheets)), `fincen_boi_faq` (FinCEN Beneficial Ownership Information FAQs), `fincen_boi_rule_qa` (FinCEN BOI Rulemaking Q&As (final rule and interim final rule)), `fincen_boi_compliance_guide` (FinCEN Small Entity Compliance Guide (Beneficial Ownership Information Reporting)), `fincen_amla_material` (FinCEN Anti-Money Laundering Act of 2020 Implementation Material), `frb_sr_letter` (Federal Reserve Supervision and Regulation (SR) / Consumer Affairs (CA) Letters), `occ_bulletin` (OCC Bulletins), `occ_interpretive_letter` (OCC Interpretive Letters), `fdic_fil` (FDIC Financial Institution Letters (FILs)), `cfpb_supervisory_guidance` (CFPB Supervisory Guidance), `cfpb_circular` (CFPB Consumer Financial Protection Circulars), `dfars_pgi` (DFARS PGI (Procedures, Guidance, and Information)), `ftc_advisory_opinion` (FTC Advisory Opinions), `ftc_policy_statement` (FTC Policy Statements (1967-present)), `ftc_hsr_interpretation` (FTC HSR Premerger Notification Interpretations: the Commission''s formal interpretations under 16 C.F.R. 803.30 (1978-2000, a closed series) and the Premerger Notification Office''s informal interpretations (1983-present; the publisher serves none from 1997)), `ftc_advocacy_filing` (FTC Advocacy Filings: comments and letters to state legislatures, state courts, governors and other federal agencies on the competition effects of a proposed measure (1985-present). Advisory only: they bind nobody and decide no case), `nlrb_gc_memo` (NLRB General Counsel Memoranda), `nlrb_advice_memo` (NLRB Division of Advice Memoranda (rolling 10-year window, not the full archive)), `cpsc_advisory_opinion` (CPSC Office of General Counsel Advisory Opinions (historical, 1970s-2012)), `cpsc_secg` (CPSC Small Entity Compliance Guides), `whd_opinion_letter` (DOL Wage and Hour Division Opinion, Ruling and Administrator Interpretation Letters (FLSA, FMLA, DBRA, SCA, CCPA, MSPA; 1993-present)), `whd_foh` (DOL Wage and Hour Field Operations Handbook (WHD internal enforcement procedure, not law; 22 chapters)), `bis_advisory_opinion` (BIS (Bureau of Industry and Security) Advisory Opinions), `ddtc_commodity_jurisdiction` (DDTC (Directorate of Defense Trade Controls) Commodity Jurisdiction Determinations), `ddtc_guidance` (DDTC (Directorate of Defense Trade Controls) Policy Guidance Documents), `ofac_faq` (OFAC (Office of Foreign Assets Control) Frequently Asked Questions), `hhs_ocr_hipaa_faq` (HHS Office for Civil Rights HIPAA FAQs), `hhs_ocr_hipaa_guidance` (HHS Office for Civil Rights HIPAA Guidance Materials), `hhs_ocr_resolution_agreement` (HHS Office for Civil Rights HIPAA Resolution Agreements and Civil Money Penalties), `fcc_declaratory_ruling` (FCC (Federal Communications Commission) Declaratory Rulings), `ferc_policy_statement` (FERC (Federal Energy Regulatory Commission) Policy Statements), `doe_appliance_guidance` (DOE Appliance Standards Guidance and FAQs), `eeoc_guidance` (EEOC (Equal Employment Opportunity Commission) Enforcement and Policy Guidance, including Compliance Manual sections), `irs_written_determination` (IRS Written Determinations under 26 U.S.C. § 6110: Private Letter Rulings (PLR), Technical Advice Memoranda (TAM) and Chief Counsel Advice (CCA). Each is directed only to the taxpayer who requested it and, by § 6110(k)(3), may not be used or cited as precedent). `US_TAX_TREATY` sources: `us_tax_treaty` (U.S. Bilateral Income and Estate Tax Treaties), `us_tax_treaty_technical_explanation` (Treasury Technical Explanations (article-by-article commentary on a tax treaty)), `senate_treaty` (Senate Treaty Records (transmittal, parties and proceedings)), `senate_treaty_resolution` (Senate Resolutions of Advice and Consent, including the reservations, understandings and declarations that narrow a treaty''s effect in US law), `senate_treaty_document` (Treaty Documents (CDOC TDOC series): the President''s message transmitting a treaty to the Senate, with the instrument''s text). `STATE_AGENCY_GUIDANCE` sources: `state_insurance_bulletin` (State Department of Insurance Bulletins), `state_financial_bulletin` (State Financial-Institutions Regulator Bulletins (banking, credit unions, trust companies, escrow agents, consumer lenders, money transmitters; AZ and OR only, where that regulator shares an index with the insurance regulator)). `AGENCY_ADJUDICATION` sources: `mspb_precedential` (MSPB Precedential Decisions), `mspb_nonprecedential` (MSPB Nonprecedential Orders), `olc_opinion` (DOJ Office of Legal Counsel Opinions (official bound volumes, 1933-2020)), `cfpb_enforcement_action` (CFPB Enforcement Actions), `sec_commission_opinion` (SEC Commission Opinions and Adjudicatory Orders), `bia_precedent` (BIA Precedent Decisions (I&N Dec.)), `ag_precedent` (Attorney General Immigration Decisions (I&N Dec.)), `immigration_admin_precedent` (INS and USCIS Administrative Precedent Decisions (I&N Dec.)), `nlrb_board_decision` (NLRB Board Decisions (bounded window; see coverage.mdx for the exact years covered)), `ftc_administrative_decision` (FTC Part 3 Administrative Decisions). Every result carries its own `source`, so you can pass a hit''s value straight back. An unrecognized value is rejected with 422.' examples: - sct fields: anyOf: - items: type: string enum: - abstract - actId - actStatus - action - adoptedAfterCurrentThrough - 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 - lastAmendedDateRaw - lastAmendedYear - lawImplemented - licenseNote - originalEnactmentDate - originalEnactmentDateRaw - packageId - parent - part - partName - pdfUrl - pendingAdoptions - popularName - president - priorEffectiveDates - program - publicLawCites - publicLaws - publicationDate - publicationDateRaw - publisherKey - referencedShortTitles - relatedCitations - relatedDocuments - releaseDate - releaseDateRaw - relevanceScore - renumberedTo - renumberedToLabel - requesters - rescindedOn - rescindedOnRaw - reviewDate - reviewDateRaw - ruleSet - ruleSetCode - sectionNumber - sectionTitle - settlementAmount - signingDate - signingDateRaw - source - sourceCharEnd - sourceCharStart - sourceCredit - sourceNote - sourcePageEnd - sourcePageStart - sourceUrl - 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 type: array uniqueItems: true - items: type: string enum: - abstract - actId - actStatus - action - adoptedAfterCurrentThrough - 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 - lastAmendedDateRaw - lastAmendedYear - lawImplemented - licenseNote - originalEnactmentDate - originalEnactmentDateRaw - packageId - parent - part - partName - pdfUrl - pendingAdoptions - popularName - president - priorEffectiveDates - program - publicLawCites - publicLaws - publicationDate - publicationDateRaw - publisherKey - referencedShortTitles - relatedCitations - relatedDocuments - releaseDate - releaseDateRaw - relevanceScore - renumberedTo - renumberedToLabel - requesters - rescindedOn - rescindedOnRaw - reviewDate - reviewDateRaw - ruleSet - ruleSetCode - sectionNumber - sectionTitle - settlementAmount - signingDate - signingDateRaw - source - sourceCharEnd - sourceCharStart - sourceCredit - sourceNote - sourcePageEnd - sourcePageStart - sourceUrl - 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 type: array - type: 'null' title: Fields description: Return only these result fields, e.g. `["title", "excerpt"]`. A result carries 40+ fields and most are null on any given row, so a full page of 50 ships a lot of nulls. `actId` and `citation` are always included, because a row without them cannot be used or attributed. Unknown names are rejected with 422 so a typo does not silently drop a field you needed. Omit for the full object. examples: - - title - excerpt - state limit: type: integer maximum: 50.0 minimum: 1.0 title: Limit description: Number of results to return per page. default: 10 offset: type: integer maximum: 70.0 minimum: 0.0 title: Offset description: How many results to skip, for paging. Every page of a given query is cut from one ranking, so results never repeat or go missing between pages, and a later page costs no more than the first. The deepest reachable result is `offset` + `limit`; check `hasMore` to know when there is nothing further. default: 0 includeBody: type: boolean title: Includebody description: 'Return the full text of every hit inline, on each result''s `body`, instead of making you fetch it per section afterwards. **Why it exists.** Search returns a ranking preview, so the alternative is a search call plus one `/section/{actId}/body` call per hit. This collapses a whole page to a single round trip. **Cost**: the 4-credit search PLUS the ordinary 6-credit body price for each row that actually returns text. Ten rows with text is 4 + 60 = 64 credits. A row whose text cannot be resolved comes back with `body: null` and is NOT charged, so read `creditsConsumed` rather than computing it from `limit` -- it is the same price as fetching them yourself, so this buys latency, not a discount. ⚠️ It multiplies with `limit`. `limit: 50` with this set is 304 credits in a single call. Page deliberately. Prefer this over raising `excerptChars`: the excerpt is windowed around the match and can begin mid-section, dropping a leading subsection marker, so it is not safe to quote. `body` is the publisher''s text.' default: false examples: - true excerptChars: type: integer maximum: 4000.0 minimum: 100.0 title: Excerptchars 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. default: 500 matchType: type: string enum: - any - all - phrase title: Matchtype description: 'Controls exact vs. semantic matching, so there is no need for a separate keyword-only search mode. `any` (default) is hybrid semantic + keyword ranking and suits natural-language questions. Use `all` for strict keyword matching (every query word must appear in the text) or `phrase` for an exact-phrase match (the query''s words, contiguous and in order), e.g. a defined term or a statutory phrase, when you want lexical precision. Both match WHOLE words, case-insensitively, ignoring punctuation: `act` does not match `fact`, `10b-5` matches `10b 5`, and `§ 1983` matches `section 1983`. To pull up one specific section, pass its citation as the query (e.g. `42 U.S.C. § 1983`, `Cal. Civ. Code § 1950.5`) and it resolves to that section at rank 1.' default: any examples: - phrase additionalProperties: false type: object required: - query title: StatuteSearchRequest example: corpusType: STATE limit: 5 matchType: any query: data breach notification deadline state: ca StatuteResolveBatchItem: properties: resolved: type: boolean title: Resolved description: True when this citation resolved to an exact section. inputCitation: type: string title: Inputcitation description: The citation string you asked to resolve, echoed back. section: anyOf: - $ref: '#/components/schemas/StatuteResult' - type: 'null' description: The resolved section, or null when this citation did not resolve. subsection: anyOf: - type: string - type: 'null' title: Subsection description: Parsed pinpoint subsection when the citation carried one. See the single-citation route for the full semantics, including the case where the publisher issues a larger unit than the citation names. citationOutsideFilters: anyOf: - $ref: '#/components/schemas/CitationOutsideFilters' - type: 'null' description: 'Set only when `resolved` is false because the batch''s `state` or `corpusType` scope excludes a section this citation DOES name, e.g. a federal citation under `state: ca`. The scope is a constraint, so the verdict stays `resolved: false`; this says why. Retry without the scope named in `excludedBy` to resolve it. No extra charge.' matchedCorpus: anyOf: - type: string const: session_law - type: 'null' title: Matchedcorpus description: Present only when the citation names a STATE session law (an act as enacted, for example `CHAPTER 2025-12` or `S.F.No. 1552`) rather than a code section. `resolved` stays false and `section` stays null, because both describe a code section; the law is in `sessionLaw`. sessionLaw: anyOf: - $ref: '#/components/schemas/SessionLawCitationMatch' - type: 'null' description: The state session law this citation names, when it names no code section. `status` is `matched` (one law, read it at `href`) or `ambiguous` (several, all in `candidates`, none chosen for you). Absent when the citation resolved to a section, and whenever session laws cannot be checked. No extra charge. type: object required: - resolved - inputCitation title: StatuteResolveBatchItem description: 'One citation''s verdict inside a batch response. Deliberately the same field names as `StatuteResolveResponse` minus the per-request bookkeeping, so a caller migrating from the single route reads each item with the code it already has.' StatuteSectionsRequest: properties: actIds: items: type: string type: array maxItems: 50 minItems: 1 title: Actids description: 'Section identifiers from a prior `/us/statutes/search` response. Up to 50 per call. Duplicates are collapsed, and order is preserved in the response. Each id encodes the citation''s hierarchy: `USC_T42_C21_S1983` is Title 42, Chapter 21, Section 1983. DO NOT BUILD THESE FROM A CITATION: the chapter/article/part segments exist only in the data, so `Tex. Property Code § 93.005` is `STATE_TX_Cpr_C93_S93.005`, not `STATE_TX_C93_S93.005`. Assembled ids miss, and `notFoundDetail` will say so and suggest the real ones. A citation (`26 U.S.C. § 1`) is also accepted in place of an id: it is resolved and served, and listed in `resolved`.' examples: - - USC_T42_C21_S1983 - CFR_T17_P240_S240_10b5_1 includeBody: type: boolean title: Includebody description: 'Return each section''s full text inline on `body`, instead of metadata only. Adds the ordinary body price per row that returns text, so 20 ids resolving 20 bodies is 40 + 120 = 160 credits. Rows whose text cannot be resolved come back with `body: null` and are not charged for it, so read `creditsConsumed` rather than computing the total. Without this, use `/us/statutes/section/{actId}/body` one id at a time.' default: false examples: - true type: object required: - actIds title: StatuteSectionsRequest description: Batch metadata lookup. See `POST /us/statutes/sections`. example: actIds: - USC_T42_C21_S1983 - USC_T42_C21_S1981a AsOfProvenance: properties: requested: type: string title: Requested description: The date you asked for, echoed back (`YYYY-MM-DD`). examples: - '2026-01-15' engine: type: string enum: - stored_edition - observed_change title: Engine description: 'WHICH BACKEND ANSWERED. `asOf` is one parameter over two engines and they make different promises. `stored_edition`: the answer is a publisher''s own printed edition of the text, held verbatim. Used wherever we hold published editions, which today is `corpusType=CFR_ANNUAL` (annual editions per title), the US Code, the Copyright Compendium and OFAC FAQs. The date is resolved to a held edition and that edition''s text is returned as printed. Coverage under this engine is per corpus and is NOT continuous. The CFR annual editions tile the calendar per title; the others are ENUMERATED editions with gaps between them. A date that falls in a gap returns `source: "unavailable"` with `outOfCoverageReason` and NO text, rather than the neighbouring edition, because the text may have changed in the gap. For the US Code in particular, most dates are currently out of coverage: see `outOfCoverageReason` for which editions we hold. `observed_change`: the answer is RECONSTRUCTED from changes we observed, and reaches back only as far as capture began for that source. Every other corpus. Read this before `isBounded`, which does not make the same claim on both engines.' default: observed_change examples: - observed_change source: type: string enum: - live - reconstructed - unavailable - published title: Source description: 'The detail WITHIN the engine above. On `observed_change` -- `live`: we captured no change to this section after your date, so today''s text is what stood then as far as we ever saw. `reconstructed`: rebuilt from the before-side of the first change we captured after your date. `unavailable`: we know it changed but cannot rebuild the earlier text, so no text is returned. That is different from the section being empty, and different again from it not existing. On `stored_edition` -- `published`: an edition we hold answered, verbatim. `unavailable`: the date is out of coverage for this section and no text is returned, and `outOfCoverageReason` says why in a sentence. Out of coverage means the date falls outside every edition we hold, or inside a gap between two of them; it is never answered from a neighbouring edition.' examples: - reconstructed existed: type: boolean title: Existed description: False when the earliest thing we ever captured for this section is its ADDITION and that addition postdates your date, so it demonstrably did not exist yet. A real answer, not a miss. basisChangeId: anyOf: - type: integer - type: 'null' title: Basischangeid description: The change event whose before-side supplied this text. Null when `source` is `live`. Pass it to `/us/statutes/section/{actId}/changes` to see the event this answer rests on. examples: - 91 observedFrom: anyOf: - type: string - type: 'null' title: Observedfrom description: The earliest change we ever captured for this section. Null when we captured none. This is how far back the reconstruction can see, and it is a property of when capture began for this source, not of the age of the law. examples: - '2026-08-09T04:10:00Z' resolvedEditionYear: anyOf: - type: integer - type: 'null' title: Resolvededitionyear description: '`stored_edition` only. The revision year actually served, read from the edition''s own printed revision statement. 🔴 This is NOT always the year the schedule computes: a publisher reprints an unchanged volume into the next year without re-dating it, so the 2024 printing of 4 CFR is the January 1 2019 revision. Render THIS year, never `scheduledEditionYear`.' examples: - 2019 scheduledEditionYear: anyOf: - type: integer - type: 'null' title: Schedulededitionyear description: '`stored_edition` only. The edition the revision schedule says SHOULD cover your date. Differs from `resolvedEditionYear` whenever the publisher reprinted an unchanged volume. Exposed so the disagreement is auditable, not so it can be displayed.' examples: - 2024 editionsObserved: anyOf: - items: type: integer type: array - type: 'null' title: Editionsobserved description: '`stored_edition` only. Every edition year in which this exact text was observed, enumerated. An ENUMERATION, not a range: a year between the first and last that is absent here is an edition nobody read, and a date resolving to it is reported out of coverage rather than answered from a neighbour.' examples: - - 2014 - 2015 - 2016 outOfCoverageReason: anyOf: - type: string - type: 'null' title: Outofcoveragereason description: Why no text was returned, in a sentence safe to show a reader. Null when text was returned. isBounded: type: boolean title: Isbounded description: '⚠️ This flag does NOT make the same claim on both engines. Read `engine` first. On `stored_edition`, TRUE means your date falls inside the editions we actually parsed for this title, so the text is a verified published printing rather than an inference. FALSE means out of coverage, and no text is returned. On `observed_change`, TRUE means: we observed no change affecting your date, and that is NOT the same as there having been none. Set when your date predates `observedFrom`, or when we captured no change for this section at all. Change capture began long after the corpus did and is per-source, so a bounded answer is our best reconstruction rather than a verified historical text. Surface it. Rendering a bounded answer as authoritative point-in-time law makes a claim we did not make.' coverage: type: string title: Coverage description: Prose statement of the same limit, safe to show a reader verbatim. type: object required: - requested - source - existed - isBounded - coverage title: AsOfProvenance description: 'Where an `asOf` body came from, and how far the evidence reaches. Every field but `text` on the parent exists so this answer cannot be over-read. The corpus holds ONE current text per citation; an earlier one is RECONSTRUCTED from observed changes, and observation started when it started.' StatuteNeighborsResponse: properties: section: $ref: '#/components/schemas/StatuteResult' description: The section you asked about. previous: items: $ref: '#/components/schemas/StatuteResult' type: array title: Previous description: Sections immediately BEFORE this one in the same container, nearest last. next: items: $ref: '#/components/schemas/StatuteResult' type: array title: Next description: Sections immediately AFTER this one, nearest first. container: anyOf: - type: string - type: 'null' title: Container description: Human label for the grouping the neighbours were drawn from, e.g. the chapter name. Neighbours never cross this boundary. resolvedFrom: anyOf: - $ref: '#/components/schemas/SectionIdentifierResolution' - type: 'null' description: 'Null when the section is exactly the act_id you sent. Otherwise how your input was matched: a citation, or an act_id with transport damage (whitespace, quotes, a trailing period) removed.' processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 240.5 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0, and batch endpoints charge per item returned, so a partial result costs less than a full one.' default: 0.0 examples: - 4 type: object required: - section title: StatuteNeighborsResponse description: Response for `GET /us/statutes/section/{act_id}/related`. EnactmentCoverage: properties: jurisdiction: anyOf: - type: string - type: 'null' title: Jurisdiction description: Lowercase two-letter code of the section's jurisdiction. Null for a section that is not a state statute (a federal section). examples: - ms sessionsHeld: items: $ref: '#/components/schemas/EnactmentSession' type: array title: Sessionsheld description: 'The sessions of this jurisdiction whose code-section tables are held. A session not listed contributes nothing to `enactments`: an empty list says we read nothing, not that the section was untouched. Empty for an unsupported jurisdiction.' note: type: string title: Note description: 'In words: where the list comes from for this jurisdiction, and what it does not read. Show it beside the list: `enactments` is what the publisher''s table prints, never a complete amendment history.' examples: - 'Mississippi: the Legislature''s bill-status record lists Code sections in a zero-padded form. Entries the publisher prints as a list or range are not matched.' type: object required: - note title: EnactmentCoverage description: What this answer is read from, and what it is not. StatuteSearchResponse: properties: results: items: $ref: '#/components/schemas/StatuteResult' type: array title: Results description: Matching sections, most relevant first. Ordering is by relevance, not statutory order; use `/us/statutes/section/{actId}/related` for what sits either side of a section in its code. count: type: integer title: Count description: 'How many results came back in THIS response, i.e. the length of `results`. It is not a total match count: the API ranks a bounded set of candidates rather than scoring the whole corpus, so no such total exists. Use `hasMore` to decide whether to ask for another page.' default: 0 total: type: integer title: Total description: DEPRECATED alias for `count`, kept for backward compatibility. The name reads as a corpus-wide match total, which it never was. Use `count` instead. default: 0 deprecated: true offset: type: integer title: Offset description: The offset applied to this page. default: 0 hasMore: type: boolean title: Hasmore description: Whether more results exist beyond this page. default: false changedSectionCount: anyOf: - type: integer - type: 'null' title: Changedsectioncount description: 'Only present when `changedSince` is set: how many sections changed in that window, before ranking. Compare it against `count`. `changedSince` is a filter on a RANKED search, so a window holding more sections than one query can return is normal and the page you get is the most relevant slice of it, not all of it. When this number is larger than you can page to, the filter is a trigger rather than an inventory: subscribe to the board and poll `GET /watches/{id}/changes`, which is complete and costs no credits.' examples: - 19055 rankingDegraded: type: boolean title: Rankingdegraded description: 'True when the relevance model (a cross-encoder) was unavailable and the results are in hybrid-retrieval order instead. The sections are still real matches for the query, but the ordering is coarser and `relevanceScore` is a retrieval score rather than a 0-1 relevance, so do not threshold on it. Such a ranking is never cached: retrying shortly returns the fully ranked result once the model recovers.' default: false examples: - false noGoodMatch: anyOf: - type: boolean - type: 'null' title: Nogoodmatch description: True when nothing in the corpus looks on point for this query. It says nothing about whether the top result is the right section; check its citation and jurisdiction. False when the top result clears the relevance bar, or when the query is a citation or a section number that matched exactly. Null when `rankingDegraded` is true, because the bar is on the relevance model's scale. The same on every page of a query. examples: - false matchQuality: anyOf: - type: string enum: - exact - strong - moderate - weak - none - type: 'null' title: Matchquality description: 'How strongly the evidence says result #1 answers the query. exact: a citation or section-number match. strong: the top result was correct about 94% of the time in our measurements (about 91% on questions whose answer is a statute or regulation). moderate: about 67%. weak: about 35%. none: nothing on point (same as noGoodMatch). Measured on our labelled evaluation set; tiers may be re-cut as the index changes, so treat unknown values as moderate. Null when `rankingDegraded` is true. The same on every page of a query.' examples: - strong citationOutsideFilters: anyOf: - $ref: '#/components/schemas/CitationOutsideFilters' - type: 'null' description: 'Your query is a citation to a real section that your filters exclude. To read it, retry without the filters named in `excludedBy`, or call `GET /us/statutes/resolve` without them. Null when the query is not a citation, when the citation is inside your filters (it then ranks first), or when it names no section we hold. `results` are unchanged: a filter is a promise, so the section is reported here and not forced into the results. The same on every page of a query.' query: type: string title: Query description: The search query used. default: '' processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 240.5 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0, and batch endpoints charge per item returned, so a partial result costs less than a full one.' default: 0.0 examples: - 4 type: object title: StatuteSearchResponse UsStatutesCoverageEnvelope: properties: data: $ref: '#/components/schemas/UsStatutesCoverageResponse' meta: $ref: '#/components/schemas/UsFreeCallMeta' type: object required: - data - meta title: UsStatutesCoverageEnvelope description: 'What `GET /us/statutes/coverage` returns: the matrix under `data`. Declared because the route used to return a hand-built dict with no `response_model`, so its published schema was `{}`. Every field was discoverable only if the example happened to show it, and the MCP tool and generated clients built from the document got no types at all for the one endpoint that exists to be read before anything else.' SessionLawSessionCoverage: properties: code: type: string title: Code description: Session code, for example `2025R`. examples: - 2025R label: anyOf: - type: string - type: 'null' title: Label description: The session's canonical label. examples: - 2025 Regular Session type: anyOf: - type: string - type: 'null' title: Type description: '`regular`, `special`, `extraordinary`, `fiscal`, `veto` or `unknown`.' examples: - regular year: anyOf: - type: integer - type: 'null' title: Year description: The year the session convened, the year `code` starts with. examples: - 2025 status: type: string enum: - complete - partial title: Status description: '`complete` when every law the publisher lists for the session is accounted for. Anything less is `partial`: a law missing from a partial session is not evidence that it does not exist, and asking for one by id or citation answers `session_not_fully_collected`, free of charge, rather than a plain not found.' examples: - complete servedCount: type: integer minimum: 0.0 title: Servedcount description: 'Laws from this session we serve: every one we answer for by id, citation or list, whether or not we hold its text (`notHeldCount` of them have none). Laws whose text is withheld are not counted here, they are `withheldCount`. `servedCount + withheldCount` is `registryCount`, less any law still being verified.' examples: - 39 withheldCount: type: integer minimum: 0.0 title: Withheldcount description: 'Laws from this session we hold and list but whose text is withheld for a measured defect (`textStatus: withheld`). They are real laws: their records are served, their text is not.' default: 0 examples: - 0 notHeldCount: type: integer minimum: 0.0 title: Notheldcount description: 'Of the laws counted in `servedCount`, how many have no text held (`textStatus: not_held` or `pending`). A subset of `servedCount`, not an addition to it: do not add it to `servedCount` or `withheldCount`.' default: 0 examples: - 0 registryCount: type: integer minimum: 0.0 title: Registrycount description: 'Every law of this session in our registry, whether or not its text is held: `servedCount + withheldCount`. Any difference is a law still being verified, which is neither.' default: 0 examples: - 39 collectedCount: type: integer minimum: 0.0 title: Collectedcount description: Laws from this session whose text we have collected, served or withheld. Compare it with `denominator.value` to see how much of the session we hold. default: 0 examples: - 39 denominator: anyOf: - $ref: '#/components/schemas/SessionLawDenominator' - type: 'null' description: How many laws the session is expected to hold, and where that figure comes from. Null when it could not be read. examples: - derivation: The publisher's complete listing of this session names 296 measures. We hold 43 of them; the rest are not yet collected. kind: complete_listing value: 296 openGaps: type: integer minimum: 0.0 title: Opengaps description: Laws the publisher lists for this session that we could not collect and have not yet. 0 on a `complete` session. default: 0 examples: - 0 measuredAt: anyOf: - type: string - type: 'null' title: Measuredat description: When this session's coverage was last measured, ISO 8601 UTC. examples: - '2026-10-05T09:07:12+00:00' type: object required: - code - status - servedCount title: SessionLawSessionCoverage description: One legislative session's session-law coverage. StatuteChangesResponse: properties: actId: type: string title: Actid description: The act_id of the section served. Equal to your request unless `resolvedFrom` is set, in which case it is the id your citation or cleaned-up input resolved to. examples: - CFR_T21_P314_S314_50 section: anyOf: - $ref: '#/components/schemas/StatuteResult' - type: 'null' description: 'The section as it stands today. NULL is meaningful and not an error: it means the section is no longer in the corpus, which is exactly the case when the newest change is a `removed`. The history below is still the answer.' changes: items: $ref: '#/components/schemas/StatuteChangeEvent' type: array title: Changes description: Observed changes, newest first by default. Empty is a real answer, and it means NO CAPTURED CHANGE, not that the section has never been amended. See `coverage`. total: type: integer title: Total description: 'Size of `changes` on this page, not a corpus-wide count: it is capped by `limit`.' default: 0 examples: - 3 hasMore: type: boolean title: Hasmore description: True when the page filled to `limit`, so more may sit behind it. Page with `beforeId` (walking back) or `sinceId` (walking forward) rather than by raising `limit`. default: false cursor: anyOf: - type: integer - type: 'null' title: Cursor description: Highest `id` on this page, or null when the page is empty. Carry it into `sinceId` to poll for what is new; keep the one you hold when a page comes back empty. examples: - 91 observedFrom: anyOf: - type: string - type: 'null' title: Observedfrom description: 'The earliest change we ever captured for this section: the OBSERVATION HORIZON this history sits on. Read it before treating an empty or short list as the section''s full history. **Null means we have never captured a change for this section**, so an empty `changes` list is not evidence that it is stable. A non-null value with an empty list means your filters or cursor excluded everything we hold, which is a different answer. `coverage` states the same caveat in prose. This is the fact behind it, and it is the same field, meaning the same thing, as `asOf.observedFrom` on `GET /section/{actId}/body`.' examples: - '2026-08-14T04:10:00Z' coverage: type: string title: Coverage description: What this history can and cannot tell you, in one sentence. Change capture began well after the corpus itself did and is swept on a retention window, so this endpoint reports the changes we OBSERVED in that window, never the section's full legislative history. Read it before treating an empty list as 'unchanged'. examples: - Observed changes only, from when capture began for this source through today, retained 24 months. Not a full legislative history. resolvedFrom: anyOf: - $ref: '#/components/schemas/SectionIdentifierResolution' - type: 'null' description: 'Null when the section is exactly the act_id you sent. Otherwise how your input was matched: a citation, or an act_id with transport damage (whitespace, quotes, a trailing period) removed.' processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 18.4 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0.' default: 0.0 examples: - 1 type: object required: - actId - coverage title: StatuteChangesResponse description: Response for `GET /us/statutes/section/{act_id}/changes`. SessionLawCitationMatch: properties: status: type: string enum: - matched - ambiguous title: Status description: '`matched`: the citation names exactly one session law, described by the fields beside this one. `ambiguous`: it names several, every one is in `candidates`, and none was chosen for you (Minnesota''s 2025 regular and first special sessions each have a Chapter 1).' examples: - matched sessionLawId: anyOf: - type: string - type: 'null' title: Sessionlawid description: The law the citation names. Null when `status` is `ambiguous`. examples: - SSL_MN_2025R_G_Y2025_C1 citation: anyOf: - type: string - type: 'null' title: Citation description: Canonical citation for the act. Null when ambiguous. examples: - CHAPTER 1--S.F.No. 1552 jurisdiction: anyOf: - type: string - type: 'null' title: Jurisdiction description: Two-letter state code. Null when ambiguous. examples: - mn session: anyOf: - $ref: '#/components/schemas/SessionLawSession' - type: 'null' description: The session the law was enacted in. Null when ambiguous. textStatus: anyOf: - type: string enum: - held - withheld - not_held - pending - type: 'null' title: Textstatus description: '`held` or `withheld`, as on the law itself. Null when ambiguous.' examples: - held title: anyOf: - type: string - type: 'null' title: Title description: The act's title, as the publisher prints it (usually `An act relating to ...`). Null when none is printed. Null when ambiguous. examples: - An act relating to agriculture; modifying financial reporting requirements for grain buyers; amending Minnesota Statutes 2024, section 223.17, subdivision 6. billNumber: anyOf: - type: string - type: 'null' title: Billnumber description: The bill the act originated as, as the publisher prints it. Null when none is printed. Null when ambiguous. examples: - S.F.No. 1552 approvedDate: anyOf: - type: string format: date - type: 'null' title: Approveddate description: Date the governor (or the equivalent authority) approved the act, ISO 8601. Never an effective date. Null when none is printed. Null when ambiguous. examples: - '2025-03-17' effectiveFirst: anyOf: - type: string format: date - type: 'null' title: Effectivefirst description: 'Earliest of the act''s effective dates we hold, ISO 8601. Null when we hold none: a date the publisher does not print, or prints as a relative rule, is not guessed. Read every date from `effectiveDates` on `GET /us/session-laws/{sessionLawId}`. Null when ambiguous.' examples: - '2025-09-01' effectiveLast: anyOf: - type: string format: date - type: 'null' title: Effectivelast description: 'Latest of the act''s effective dates we hold, ISO 8601: equal to `effectiveFirst` when the act takes effect on one date. Null when we hold none. Null when ambiguous.' examples: - '2025-09-01' enactmentOutcome: anyOf: - type: string - type: 'null' title: Enactmentoutcome description: 'How the measure became, or failed to become, law: `signed`, `became_law_without_signature`, `veto_overridden`, `line_item_veto` (signed with some items vetoed), `vetoed` and `pocket_veto` (not law), `not_presented`, `approved_by_voters`, or `unknown` when the publisher does not say. Null when ambiguous.' examples: - signed sourceUrl: anyOf: - type: string - type: 'null' title: Sourceurl description: The government publisher's own URL for the act's text, so a citation answer links to the primary source. Null when we hold no text source from a government host. Null when ambiguous. examples: - https://www.revisor.mn.gov/laws/2025/0/Session+Law/Chapter/1/ href: anyOf: - type: string - type: 'null' title: Href description: Where to read the law, relative to the API host. Null when ambiguous. examples: - /api/v1/us/session-laws/SSL_MN_2025R_G_Y2025_C1 candidates: items: $ref: '#/components/schemas/SessionLawCitationCandidate' type: array title: Candidates description: Every law an ambiguous citation names. Empty when `status` is `matched`. defaultSessionLawId: anyOf: - type: string - type: 'null' title: Defaultsessionlawid description: On an ambiguous citation, the publisher's conventional reading when there is one. Never served for you. examples: - null type: object required: - status title: SessionLawCitationMatch description: A citation that names a STATE session law rather than a code section. UsDivisionNode: properties: identifier: type: string title: Identifier description: The division's identifier within its parent, e.g. `42` (title), `21` (chapter), `240` (part), `tx_pe` (state code), `frcp` (federal rule set), `Article III` (article), or `1983` (section). Pass it back verbatim. name: anyOf: - type: string - type: 'null' title: Name description: Human-readable name of the division, when the source provides one. kind: type: string title: Kind description: 'Division kind, which is also the filter to drill into it with: `title` (as `titleNumber`), `chapter`, `part`, `code`, `article`, or `section` (a leaf; fetch it by `actId`).' isLeaf: type: boolean title: Isleaf description: True for sections (terminal nodes); false for interior divisions. actId: anyOf: - type: string - type: 'null' title: Actid description: Section identifier, present only on leaf sections. Pass it to `/us/statutes/section/{actId}`. sectionCount: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Sectioncount description: Sections under an interior division. Null on leaf sections. type: object required: - identifier - kind - isLeaf title: UsDivisionNode description: 'One child division in a `GET /us/statutes/divisions` listing. Interior nodes (titles, chapters, parts, codes, articles) carry a `sectionCount` and `isLeaf: false`; drill into one by passing its `identifier` back as the filter its `kind` names. Leaf nodes are sections and carry an `actId` you can pass to `/us/statutes/section/{actId}`.' StatuteCountResponse: properties: count: type: integer title: Count description: 'Sections in scope. This is a SECTION count, not a passage count: long sections are stored as several passages and are counted once.' default: 0 examples: - 43638 isExact: type: boolean title: Isexact description: True when the figure is an exact count rather than an estimate. Present so a future estimated mode cannot be mistaken for this one. default: true examples: - true scope: additionalProperties: true type: object title: Scope description: The filters that produced this figure, echoed back. A count with no scope attached is not reproducible, and an ignored filter would otherwise be invisible. examples: - corpusType: REGULATION state: tx processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds. default: 0.0 examples: - 85.2 creditsConsumed: type: number title: Creditsconsumed description: Credits actually charged for this call. default: 0.0 examples: - 1 type: object title: StatuteCountResponse description: Response for `POST /us/statutes/count`. UsFreeCallMeta: properties: processingTimeMs: type: number title: Processingtimems description: Server-side time to build the response, in milliseconds. examples: - 142.7 creditsConsumed: type: number title: Creditsconsumed description: 'Always 0: this endpoint is free.' default: 0 examples: - 0 type: object required: - processingTimeMs title: UsFreeCallMeta description: '`meta` on a free discovery endpoint.' StatuteResult: properties: actId: type: string title: Actid description: Unique section identifier (e.g., 'USC_T42_C21_S1983', 'CFR_T17_P240_S240_10b5_1'). citation: anyOf: - type: string - type: 'null' title: Citation description: Full citation (e.g., '42 U.S.C. § 1983 (2024)', '17 C.F.R. § 240.10b5-1 (2026)'). citationShort: anyOf: - type: string - type: 'null' title: Citationshort description: Short citation (e.g., '42 U.S.C. § 1983', '17 C.F.R. § 240.10b5-1'). title: anyOf: - type: string - type: 'null' title: Title description: Section title. corpusType: anyOf: - type: string - type: 'null' title: Corpustype description: One of `USC`, `CFR`, `STATE`, `CONSTITUTION`, `FEDERAL_RULES`, `STATE_CONSTITUTION`, `STATE_RULES`, or `EXECUTIVE_ACTION`. state: anyOf: - type: string - type: 'null' title: State description: 2-letter lowercase state code (e.g. `ca`, `tx`) when the row belongs to a state corpus. `federal` for federal rows. source: anyOf: - type: string - type: 'null' title: Source description: 'The named source within `corpusType`, for corpora that fold several independently filterable bodies of law into one token. `FEDERAL_RULES` sources: `frcp` (Federal Rules of Civil Procedure), `frcrp` (Federal Rules of Criminal Procedure), `fre` (Federal Rules of Evidence), `frap` (Federal Rules of Appellate Procedure), `frbp` (Federal Rules of Bankruptcy Procedure), `sct` (Rules of the Supreme Court of the United States). `CFR` sources: `far` (Federal Acquisition Regulation (48 C.F.R. ch. 1)), `dfars` (Defense Federal Acquisition Regulation Supplement (48 C.F.R. ch. 2)) (both are already part of `CFR`; this only splits the existing Title 48 data by chapter, it does not add new sections). `AGENCY_GUIDANCE` sources: `administrative_guidance` (Synthesized administrative guidance (e.g. SALT cap, CTC, 401(k) limits)), `ssa_ruling` (Social Security Administration Rulings), `irs_rev_proc` (IRS Revenue Procedures), `irs_notice` (IRS Notices), `irs_rev_rul` (IRS Revenue Rulings), `irs_announcement` (IRS Announcements), `irs_irm` (Internal Revenue Manual (IRS internal procedure)), `merger_guidelines` (DOJ & FTC Merger Guidelines (2023)), `doj_leniency` (DOJ Antitrust Division Leniency Policy), `doj_business_review` (DOJ Antitrust Division Business Review Letters (1991-2021)), `cms_iom` (CMS Medicare Internet-Only Manuals (instruction to Medicare contractors, not a regulation)), `copyright_circular` (US Copyright Office Circulars), `copyright_compendium` (Compendium of U.S. Copyright Office Practices, Third Edition (2014, 2017 and 2021 editions)), `doj_justice_manual` (DOJ Justice Manual), `uscis_policy_manual` (USCIS Policy Manual), `mpep` (USPTO Manual of Patent Examining Procedure (MPEP)), `tmep` (USPTO Trademark Manual of Examining Procedure (TMEP)), `cftc_staff_letter` (CFTC Staff Letters (no-action, exemptive, interpretative; 2008-present)), `fincen_ruling` (FinCEN Administrative Rulings), `fincen_guidance` (FinCEN Guidance (alerts, advisories, notices, bulletins, fact sheets)), `fincen_boi_faq` (FinCEN Beneficial Ownership Information FAQs), `fincen_boi_rule_qa` (FinCEN BOI Rulemaking Q&As (final rule and interim final rule)), `fincen_boi_compliance_guide` (FinCEN Small Entity Compliance Guide (Beneficial Ownership Information Reporting)), `fincen_amla_material` (FinCEN Anti-Money Laundering Act of 2020 Implementation Material), `frb_sr_letter` (Federal Reserve Supervision and Regulation (SR) / Consumer Affairs (CA) Letters), `occ_bulletin` (OCC Bulletins), `occ_interpretive_letter` (OCC Interpretive Letters), `fdic_fil` (FDIC Financial Institution Letters (FILs)), `cfpb_supervisory_guidance` (CFPB Supervisory Guidance), `cfpb_circular` (CFPB Consumer Financial Protection Circulars), `dfars_pgi` (DFARS PGI (Procedures, Guidance, and Information)), `ftc_advisory_opinion` (FTC Advisory Opinions), `ftc_policy_statement` (FTC Policy Statements (1967-present)), `ftc_hsr_interpretation` (FTC HSR Premerger Notification Interpretations: the Commission''s formal interpretations under 16 C.F.R. 803.30 (1978-2000, a closed series) and the Premerger Notification Office''s informal interpretations (1983-present; the publisher serves none from 1997)), `ftc_advocacy_filing` (FTC Advocacy Filings: comments and letters to state legislatures, state courts, governors and other federal agencies on the competition effects of a proposed measure (1985-present). Advisory only: they bind nobody and decide no case), `nlrb_gc_memo` (NLRB General Counsel Memoranda), `nlrb_advice_memo` (NLRB Division of Advice Memoranda (rolling 10-year window, not the full archive)), `cpsc_advisory_opinion` (CPSC Office of General Counsel Advisory Opinions (historical, 1970s-2012)), `cpsc_secg` (CPSC Small Entity Compliance Guides), `whd_opinion_letter` (DOL Wage and Hour Division Opinion, Ruling and Administrator Interpretation Letters (FLSA, FMLA, DBRA, SCA, CCPA, MSPA; 1993-present)), `whd_foh` (DOL Wage and Hour Field Operations Handbook (WHD internal enforcement procedure, not law; 22 chapters)), `bis_advisory_opinion` (BIS (Bureau of Industry and Security) Advisory Opinions), `ddtc_commodity_jurisdiction` (DDTC (Directorate of Defense Trade Controls) Commodity Jurisdiction Determinations), `ddtc_guidance` (DDTC (Directorate of Defense Trade Controls) Policy Guidance Documents), `ofac_faq` (OFAC (Office of Foreign Assets Control) Frequently Asked Questions), `hhs_ocr_hipaa_faq` (HHS Office for Civil Rights HIPAA FAQs), `hhs_ocr_hipaa_guidance` (HHS Office for Civil Rights HIPAA Guidance Materials), `hhs_ocr_resolution_agreement` (HHS Office for Civil Rights HIPAA Resolution Agreements and Civil Money Penalties), `fcc_declaratory_ruling` (FCC (Federal Communications Commission) Declaratory Rulings), `ferc_policy_statement` (FERC (Federal Energy Regulatory Commission) Policy Statements), `doe_appliance_guidance` (DOE Appliance Standards Guidance and FAQs), `eeoc_guidance` (EEOC (Equal Employment Opportunity Commission) Enforcement and Policy Guidance, including Compliance Manual sections), `irs_written_determination` (IRS Written Determinations under 26 U.S.C. § 6110: Private Letter Rulings (PLR), Technical Advice Memoranda (TAM) and Chief Counsel Advice (CCA). Each is directed only to the taxpayer who requested it and, by § 6110(k)(3), may not be used or cited as precedent). `US_TAX_TREATY` sources: `us_tax_treaty` (U.S. Bilateral Income and Estate Tax Treaties), `us_tax_treaty_technical_explanation` (Treasury Technical Explanations (article-by-article commentary on a tax treaty)), `senate_treaty` (Senate Treaty Records (transmittal, parties and proceedings)), `senate_treaty_resolution` (Senate Resolutions of Advice and Consent, including the reservations, understandings and declarations that narrow a treaty''s effect in US law), `senate_treaty_document` (Treaty Documents (CDOC TDOC series): the President''s message transmitting a treaty to the Senate, with the instrument''s text). `STATE_AGENCY_GUIDANCE` sources: `state_insurance_bulletin` (State Department of Insurance Bulletins), `state_financial_bulletin` (State Financial-Institutions Regulator Bulletins (banking, credit unions, trust companies, escrow agents, consumer lenders, money transmitters; AZ and OR only, where that regulator shares an index with the insurance regulator)). `AGENCY_ADJUDICATION` sources: `mspb_precedential` (MSPB Precedential Decisions), `mspb_nonprecedential` (MSPB Nonprecedential Orders), `olc_opinion` (DOJ Office of Legal Counsel Opinions (official bound volumes, 1933-2020)), `cfpb_enforcement_action` (CFPB Enforcement Actions), `sec_commission_opinion` (SEC Commission Opinions and Adjudicatory Orders), `bia_precedent` (BIA Precedent Decisions (I&N Dec.)), `ag_precedent` (Attorney General Immigration Decisions (I&N Dec.)), `immigration_admin_precedent` (INS and USCIS Administrative Precedent Decisions (I&N Dec.)), `nlrb_board_decision` (NLRB Board Decisions (bounded window; see coverage.mdx for the exact years covered)), `ftc_administrative_decision` (FTC Part 3 Administrative Decisions). Pass it back as the `source` search filter to scope to just this one source. Null for corpora with only one source, which includes every state''s statutes and regulations. Not a link, and not where the text came from: it is a filter token. The official link to the publisher''s text is `sourceUrl`.' examples: - sct year: anyOf: - type: integer - type: 'null' title: Year description: The year this row was ingested, not the year of the law. Most ingesters stamp the capture year (`time.gmtime().tm_year`) and a few pin a literal, so the bulk of the corpus reads the year it was captured. **Do not filter or reason about currency with it.** `lastAmendedYear` carries the amendment year, `currentThrough` and `currencyNote` carry the publisher's own currency statement, and `goodLawStatus` carries the status. relevanceScore: anyOf: - type: number - type: 'null' title: Relevancescore description: 'Relevance score, normalized to roughly 0-1. Higher means a better match for ranking within one response. It is a relative ranking signal, not a calibrated confidence or probability, so do not compare scores across different queries or treat a fixed value as a quality threshold. Exception: a query that resolves to an exact citation (e.g. ''42 U.S.C. § 1983'', ''Cal. Civ. Code § 1950.5'', ''Fed. R. Civ. P. 12'') always scores that section 1.0, since it is a certain match rather than a ranked one -- a natural-language or keyword query never returns 1.0 by comparison. **null on any endpoint that did not rank**: fetching a section by id, a batch fetch, or a section embedded in an intelligence response. When the response carries `rankingDegraded: true`, the relevance model was unavailable and this is a retrieval score on a different, much smaller scale: still a valid ORDER, not a 0-1 relevance.' excerpt: type: string title: Excerpt description: Text excerpt (up to 500 characters). default: '' body: anyOf: - type: string - type: 'null' title: Body description: 'Full plain text of the section. Present ONLY when the request set `includeBody: true`, and null on any row whose text could not be resolved (those rows are not charged for a body). This is the actual statutory text, not the `excerpt`. The two are different things and the difference matters for quoting: `excerpt` is a ranking preview windowed around the match, so it can begin mid-section and drop a leading subsection marker -- measured 2026-09-02, four of five California rows lost their opening `(a) `. `body` is the document as the publisher printed it.' examples: - (a) If within a reasonable time after written or oral notice... titleNumber: anyOf: - type: string - type: 'null' title: Titlenumber description: USC/CFR/state title number (e.g. '26', '13A'). titleName: anyOf: - type: string - type: 'null' title: Titlename description: Title name (e.g., 'The Public Health and Welfare'). chapter: anyOf: - type: string - type: 'null' title: Chapter description: Chapter number or identifier. chapterName: anyOf: - type: string - type: 'null' title: Chaptername description: Chapter name. sectionNumber: anyOf: - type: string - type: 'null' title: Sectionnumber description: Section number (e.g., '1983', '240.10b5-1'). sectionTitle: anyOf: - type: string - type: 'null' title: Sectiontitle description: The section's own heading (e.g., 'Rule G. Forfeiture Actions In Rem'). Distinct from `title`, which is the hierarchical display path. displayPath: anyOf: - type: string - type: 'null' title: Displaypath description: Full hierarchical path (Title > Chapter > Section). breadcrumb: anyOf: - items: additionalProperties: type: string type: object type: array - type: 'null' title: Breadcrumb description: Structured breadcrumb trail for navigation. parent: anyOf: - additionalProperties: true type: object - type: 'null' title: Parent description: 'Query for `GET /us/statutes/divisions` that lists this section''s siblings (its containing chapter, part, code, article or federal rule set). Pass it straight back to walk up the hierarchy, or spread it into a `POST /us/statutes/search` body to search within that container: every key it carries is also a search filter. Null when the container cannot be determined.' subchapter: anyOf: - type: string - type: 'null' title: Subchapter description: Subchapter number or identifier. subchapterName: anyOf: - type: string - type: 'null' title: Subchaptername description: Subchapter name. part: anyOf: - type: string - type: 'null' title: Part description: Part number or identifier (CFR/state). partName: anyOf: - type: string - type: 'null' title: Partname description: Part name. subpart: anyOf: - type: string - type: 'null' title: Subpart description: Subpart number or identifier (CFR). subpartName: anyOf: - type: string - type: 'null' title: Subpartname description: Subpart name. popularName: anyOf: - type: string - type: 'null' title: Popularname description: Popular/common name of the act (e.g. 'Truth in Lending Act'), when known. actStatus: anyOf: - type: string - type: 'null' title: Actstatus description: 'Raw section status: `in_force`, `repealed`, `renumbered`, `transferred`, `omitted`, `reserved`, `vacant`, or `unconstitutional`.' goodLawStatus: anyOf: - type: string - type: 'null' title: Goodlawstatus description: 'Derived currency verdict: `good_law`, `not_good_law`, `not_operative`, or `unknown`. Conservative: states without a reliable repeal signal report `unknown` rather than over-claiming. `null` when currency checking is disabled.' currencyNote: anyOf: - type: string - type: 'null' title: Currencynote description: Source's 'current through ...' note, when published. renumberedTo: anyOf: - type: string - type: 'null' title: Renumberedto description: 'Where the publisher says this section went, when `actStatus` is `renumbered`. RAW SOURCE FORM, not an `actId` and not a citation: `self:4651` means section 4651 of this same title, `34:10105` means section 10105 of Title 34. Do not pass it to a section endpoint. Read `renumberedToLabel` instead, or resolve the citation it names through `/us/statutes/resolve`.' examples: - self:4651 renumberedToLabel: anyOf: - type: string - type: 'null' title: Renumberedtolabel description: '`renumberedTo` written out, e.g. `section 10105 of Title 34`. Present whenever `renumberedTo` is.' examples: - section 10105 of Title 34 transferredTo: anyOf: - type: string - type: 'null' title: Transferredto description: 'Where the publisher says this section went, when `actStatus` is `transferred`. Same raw source form as `renumberedTo`, and the same warning: it is not an `actId`.' examples: - 34:10105 transferredToLabel: anyOf: - type: string - type: 'null' title: Transferredtolabel description: '`transferredTo` written out. Present whenever `transferredTo` is.' examples: - section 10105 of Title 34 issueDate: anyOf: - type: string - type: 'null' title: Issuedate description: Issue/publication date of this version, as `YYYY-MM-DD`, when known. See `issueDateRaw` for the publisher's wording on the rare source that does not print ISO. examples: - '1999-05-25' issueDateRaw: anyOf: - type: string - type: 'null' title: Issuedateraw description: The issue date as the publisher writes it, present only when it differs from `issueDate`. Null across the corpus today; it exists so a source that starts printing prose cannot silently put prose in a field documented as a date. crossReferencesCfr: anyOf: - items: type: string type: array - type: 'null' title: Crossreferencescfr description: CFR cross-references parsed from the text, e.g. `['1.6011-4']`. crossReferencesUsc: anyOf: - items: type: string type: array - type: 'null' title: Crossreferencesusc description: USC cross-references parsed from the text, e.g. `['42:1983']`. `'self:
'` denotes a reference to another section of the same title. statutoryAuthority: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Statutoryauthority description: 'For a CFR/eCFR section: the USC (or other) citations in its ''Authority'' note that authorize the rule, e.g. `[{''type'': ''usc'', ''title'': 15, ''section'': ''78o'', ''display'': ''15 U.S.C. 78o''}]`. Null for non-regulation corpora.' implementingRegulations: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Implementingregulations description: 'For a USC section: the CFR parts that implement it, derived from the reverse of every CFR section''s own `statutoryAuthority`, e.g. `[{''cfrTitle'': 17, ''part'': ''240'', ''partName'': ''...'', ''display'': ''17 CFR Part 240''}]`. Null for non-USC corpora.' frRegulationIdNumbers: anyOf: - items: type: string type: array - type: 'null' title: Frregulationidnumbers description: Regulation Identifier Number(s) (RIN) assigned to this rule. frDocketIds: anyOf: - items: type: string type: array - type: 'null' title: Frdocketids description: Rulemaking docket ID(s) this document was filed under. frEffectiveOn: anyOf: - type: string - type: 'null' title: Freffectiveon description: The rule's effective date (ISO 8601 date), when set. frCommentsCloseOn: anyOf: - type: string - type: 'null' title: Frcommentscloseon description: Public-comment deadline (ISO 8601 date). Proposed rules only. frSignificant: anyOf: - type: boolean - type: 'null' title: Frsignificant description: Whether the Federal Register marked this rule 'economically significant' (EO 12866). frCorrectionOf: anyOf: - type: string - type: 'null' title: Frcorrectionof description: Federal Register document number this document corrects, when this is a correction. frCorrections: anyOf: - items: type: string type: array - type: 'null' title: Frcorrections description: Federal Register document number(s) that later corrected this document. frRegulationsDotGovUrl: anyOf: - type: string - type: 'null' title: Frregulationsdotgovurl description: Link to this document's public comment docket on regulations.gov. frRelatedDocuments: anyOf: - items: $ref: '#/components/schemas/FrRelatedDocument' type: array - type: 'null' title: Frrelateddocuments description: Other Federal Register documents sharing this document's RIN(s) (its proposed rule, its final rule, and any corrections), most recent first. Only populated on `GET /us/statutes/section/{actId}` for a row that carries `frRegulationIdNumbers`; always null on `/us/statutes/search` results, since computing it needs a follow-up lookup that is too expensive to run per search result. subject: anyOf: - type: string - type: 'null' title: Subject description: The publisher's own subject or document-type label, where it prints one (for example a state insurance bulletin's `RE:` line, or its listing category such as `Rescission`). rescindedOn: anyOf: - type: string - type: 'null' title: Rescindedon description: The date the document was rescinded or withdrawn, as `YYYY-MM-DD`, when the source states one. See `rescindedOnRaw`. examples: - '2016-07-01' rescindedOnRaw: anyOf: - type: string - type: 'null' title: Rescindedonraw description: The rescission date as the publisher writes it, present only when it differs from `rescindedOn`. sourceCredit: anyOf: - type: string - type: 'null' title: Sourcecredit description: 'The Office of the Law Revision Counsel''s credit line for a **USC** section: the acts that enacted and amended it, in order, e.g. `June 25, 1948, ch. 646, 62 Stat. 869; Pub. L. 85-508, Sec. 12, July 7, 1958, 72 Stat. 348`. Parentheses stripped, whitespace normalized. USC only, and null on a USC section that prints no credit (a transferred, repealed or reclassified stub). CFR sections carry the same fact as a list in `federalRegisterCitations` instead, which is why the shape differs; no other corpus publishes one.' amendmentYears: anyOf: - items: type: integer type: array - type: 'null' title: Amendmentyears description: 'Distinct years the section was amended, parsed from the publisher''s history note. **Always newest first, and de-duplicated.** Ingesters store the array in both orders (eCFR writes newest first, state regulations and state statutes write oldest first), so the order is imposed at serve time and the served order is the only one to rely on. Years outside 1789..(current year) are dropped rather than served: amendment dates are parsed out of prose and a note can yield a sunset or substitution date that is not an amendment at all.' lastAmendedYear: anyOf: - type: integer - type: 'null' title: Lastamendedyear description: Most recent amendment year, when known. Re-derived at serve time as `max(amendmentYears)`, so it never exceeds the list served beside it. Falls back to the publisher's own scalar only when `amendmentYears` is empty, and only when that scalar is itself within 1789..(current year). amendmentsCount: anyOf: - type: integer - type: 'null' title: Amendmentscount description: 'How many amendments the publisher recorded for this section. **Not the length of `amendmentYears`, and it is not safe to derive one from the other.** For regulations and court rules this counts amending EVENTS: one per register citation, filing or history entry, so a section amended twice in the same year counts 2 against a single entry in `amendmentYears`. The two disagree on a large share of the regulation and court-rule corpora, so read each for what it is. For the other corpora, and for any source that publishes no per-event record, it falls back to the number of distinct years, which understates a section amended twice in one year.' currentThrough: anyOf: - type: string - type: 'null' title: Currentthrough description: The date the publisher states this text is current through, e.g. `2025-01-06`. Set on every USC section. `currencyNote` carries the same fact as prose where a publisher writes it that way. pendingAdoptions: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Pendingadoptions description: 'New York only. Register ADOPTION NOTICES that post-date the print volume this section''s text was taken from. They are NOTICES from the NY State Register, NOT an updated consolidated text: `text` and `body` are unchanged and still reflect `currentThrough` / `currencyNote`. Read each entry as "the State Register announced an adoption naming this section, or the Part that contains it, after the text we serve was current", and look the notice up in the State Register by its `idNo`. Each entry: `idNo` (the Register I.D. No., e.g. `DFS-23-26-00013-A`), `scope` (`section` when the notice names this section, `part` when it names the Part containing it and says nothing about this section alone), `effectiveDate` (ISO date the adoption takes effect, null if the notice states none), `agency`, `issueDate` (ISO date of the Register issue). We do not return a link to the notice: the Register is hosted on a commercial platform and, as with `sourceUrl` on these regulations, the link is withheld under licence. Only adoptions (`-A`, and `-AA` amended notices of adoption) are listed, never proposals, emergency rules or withdrawals. Null on every section with no such notice, which is NOT a statement that the section is current: we cover Register adoptions for NYCRR Titles 3, 19 and 23 only.' examples: - - agency: Department of Financial Services effectiveDate: '2026-09-23' idNo: DFS-23-26-00013-A issueDate: '2026-09-23' scope: part adoptedAfterCurrentThrough: anyOf: - type: boolean - type: 'null' title: Adoptedaftercurrentthrough description: New York only. True when `pendingAdoptions` is non-empty, i.e. the State Register records at least one adoption naming this section or its Part that post-dates the volume `currentThrough` refers to, so the text served may be out of date. Null (never false) when no such adoption is recorded; null is not a claim that the text is current. examples: - true amendmentHistory: anyOf: - items: type: string type: array - type: 'null' title: Amendmenthistory description: Structured amendment entries where the publisher records them separately from the credit line in `history`. sourceNote: anyOf: - type: string - type: 'null' title: Sourcenote description: The publisher's source note for the section, verbatim. effectiveDate: anyOf: - type: string - type: 'null' title: Effectivedate description: When THIS version took effect, as `YYYY-MM-DD`, or null when the publisher's own string does not name one unambiguous day we can read without guessing. On a section with `actStatus=superseded` this is the start of that version's window. The publisher's wording is preserved in `effectiveDateRaw` whenever it differs. examples: - '2002-11-25' effectiveDateRaw: anyOf: - type: string - type: 'null' title: Effectivedateraw description: The date exactly as the publisher writes it, present only when it differs from `effectiveDate`. A section whose publisher already prints ISO leaves this null. Expect prose (`September 8, 1916`), abbreviated months (`Feb. 25, 1868`), US numerics (`9/28/15`), Spanish for Puerto Rico (`26 de junio de 1963`), and values that are not a single date at all (`April 1, 2023 to June 30, 2026`), which is why they cannot be published under `effectiveDate`. examples: - September 8, 1916 historyEffectiveDate: anyOf: - type: string - type: 'null' title: Historyeffectivedate description: 'When this version took effect, as `YYYY-MM-DD`, read out of the publisher''s own amendment credit line in `history`. **This is a weaker fact than `effectiveDate` and is deliberately not published as one.** `effectiveDate` is a date the publisher put in a date field; this is our reading of the publisher''s prose. It is populated ONLY where `effectiveDate` is null, so the two can never be confused, and `history` is returned beside it as the evidence. It exists because most states publish the commencement date nowhere else: measured over the live corpus on 2026-09-20, `effectiveDate` is set on 4.8% of state statutes and this answers a further 21.3%. It is the newest commencement the credit line names, and null whenever that cannot be stated without guessing: a credit line that dates only some of its entries, a date that belongs to a repeal, a sunset, an applicability rule or another section, a commencement still in the future, a date older than the section''s own `lastAmendedYear`, or a state whose `history` format we have not measured. Statutes only; never set on a regulation, a court rule or a federal corpus.' examples: - '2009-06-19' priorEffectiveDates: anyOf: - items: type: string type: array - type: 'null' title: Prioreffectivedates description: Earlier effective dates recorded for the section. history: anyOf: - type: string - type: 'null' title: History description: The publisher's own amendment/history credit line, verbatim, e.g. `Effective 5/4/2005; Superseded 8/1/2016`. `amendmentYears` is parsed from this; keep both when you need the exact wording. supersededBy: anyOf: - type: string - type: 'null' title: Supersededby description: '`actId` of the section that replaced this one. Present on a superseded version so you can fetch the current text in one hop via `GET /statutes/section/{actId}`.' supersedes: anyOf: - type: string - type: 'null' title: Supersedes description: '`actId` of the earlier version this section replaced, when known.' ruleSet: anyOf: - type: string - type: 'null' title: Ruleset description: For court rules, the rule family this belongs to, e.g. `North Dakota Rules of Civil Procedure`. Rule numbers repeat across families (a Civil Rule 12 and a Criminal Rule 12 both exist), so this is what disambiguates them. publicLaws: anyOf: - items: type: string type: array - type: 'null' title: Publiclaws description: Public Laws referenced by the section, e.g. `['Pub. L. 96-170']`. federalRegisterCitations: anyOf: - items: type: string type: array - type: 'null' title: Federalregistercitations description: 'Federal Register citations associated with the section, e.g. `[''48 FR 3956'', ''49 FR 15073'']`. This is the CFR''s form of the credit line `sourceCredit` carries for the USC: the rulemakings that established and amended the section. Populated on 37.4% of CFR sections, empty where eCFR prints no source note.' granuleId: anyOf: - type: string - type: 'null' title: Granuleid description: govinfo granule identifier (USC/CFR provenance). packageId: anyOf: - type: string - type: 'null' title: Packageid description: govinfo package identifier (USC/CFR provenance). htmlUrl: anyOf: - type: string - type: 'null' title: Htmlurl description: HTML version of the statute section. pdfUrl: anyOf: - type: string - type: 'null' title: Pdfurl description: PDF version of the statute section. xmlUrl: anyOf: - type: string - type: 'null' title: Xmlurl description: XML version of the statute section. textUrl: anyOf: - type: string - type: 'null' title: Texturl description: Plain-text version. Populated for state corpora (MS, NJ, NY, NV, etc.). docxUrl: anyOf: - type: string - type: 'null' title: Docxurl description: Microsoft Word (DOCX) version, when available. stateHtmlUrl: anyOf: - type: string - type: 'null' title: Statehtmlurl description: 'HTML rendering of the document. For most state corpora this is the publisher''s own page; for corpora we mirror (state agency guidance, regulations, court rules) it is our archived copy of the artifact the publisher served, on statutes-us.vaquill.ai. Use `externalUrl` for the publisher''s canonical address. Never a PDF: a mirrored PDF is served as `pdfUrl` instead. Populated for state corpora only.' govInfoHtmlUrl: anyOf: - type: string - type: 'null' title: Govinfohtmlurl description: Official govinfo.gov HTML version. govInfoPdfUrl: anyOf: - type: string - type: 'null' title: Govinfopdfurl description: Official govinfo.gov PDF version. abstract: anyOf: - type: string - type: 'null' title: Abstract description: The issuing agency's own summary of the document, as published in the Federal Register. Populated on 99.9% of rules and proposed rules, so a document can be triaged without fetching the full text. examples: - This regulation extends time-limited tolerances for pesticides. agencies: anyOf: - items: type: string type: array - type: 'null' title: Agencies description: Issuing agencies, by name. Populated on 99.9% of Federal Register documents. Pair with `agencySlugs` when you need the token the `agency` search filter takes. examples: - - Environmental Protection Agency agencySlugs: anyOf: - items: type: string type: array - type: 'null' title: Agencyslugs description: The issuing agencies as slugs. These are exactly the values the `agency` filter on `/us/statutes/search` accepts, so an agency facet can be round-tripped straight back into a query. examples: - - environmental-protection-agency topics: anyOf: - items: type: string type: array - type: 'null' title: Topics description: 'The Federal Register''s own CFR-index subject terms. Populated on ~71% of rules and ~68% of proposed rules, with one hard boundary: documents published before 2000 carry none, because the Federal Register did not index them this way.' examples: - - Environmental protection - Pesticides and pests documentTypeLabel: anyOf: - type: string - type: 'null' title: Documenttypelabel description: 'The instrument type as the publisher names it: `Rule`, `Proposed Rule`, `Presidential Document`, `Declaratory Ruling`, `Resolution Agreement`. Deliberately NOT `corpusType`, which says which body of law a document belongs to: two documents in one corpus can be very different instruments.' examples: - Rule documentSubtype: anyOf: - type: string - type: 'null' title: Documentsubtype description: Finer instrument class where the publisher gives one. On presidential documents this separates an executive order from a proclamation, a memorandum or a notice (~90% populated there). examples: - Proclamation action: anyOf: - type: string - type: 'null' title: Action description: 'The Federal Register''s own ACTION line, ~100% populated. Carries distinctions no other field makes: interim final rule, direct final rule, withdrawal, reopening of the comment period.' examples: - Final rule. president: anyOf: - type: string - type: 'null' title: President description: The president in office for this document, on Federal Register and presidential-document corpora spanning 1994 to present. examples: - George W. Bush signingDate: anyOf: - type: string - type: 'null' title: Signingdate description: When a presidential document was signed, as `YYYY-MM-DD`, which is routinely earlier than `publicationDate` and is the legally operative date. See `signingDateRaw`. examples: - '2026-04-02' signingDateRaw: anyOf: - type: string - type: 'null' title: Signingdateraw description: The signing date as the publisher writes it, present only when it differs from `signingDate`. datesText: anyOf: - type: string - type: 'null' title: Datestext description: 'The verbatim DATES block from the Federal Register, ~98% populated. Worth reading alongside `frEffectiveOn`: a rule with staged or conditional effective dates has them here, and the single date flattens that away.' examples: - This regulation is effective December 14, 2001. frVolume: anyOf: - type: integer - type: 'null' title: Frvolume description: Federal Register volume, the `66` in `66 FR 64768`. examples: - 66 frStartPage: anyOf: - type: integer - type: 'null' title: Frstartpage description: First Federal Register page, the `64768` in `66 FR 64768`. examples: - 64768 frEndPage: anyOf: - type: integer - type: 'null' title: Frendpage description: Last Federal Register page. With `frStartPage` this gives the page RANGE, which `citation` cannot express because it carries only the first page. examples: - 64775 wordCount: anyOf: - type: integer - type: 'null' title: Wordcount description: Words in the full document, so a caller can size a fetch before paying for the body. examples: - 6271 issuingAgency: anyOf: - type: string - type: 'null' title: Issuingagency description: 'The body that promulgated or issued this document: the state agency behind a regulation, the division behind an agency letter. Populated at 83.6-100% across the state-regulation corpora that carry it.' examples: - Pollution Control Board adoptingCitations: anyOf: - items: type: string type: array - type: 'null' title: Adoptingcitations description: 'Citations to the instrument that ADOPTED this rule: the state register notice, the Washington filing number, the adopting order. The rulemaking audit trail. Unified across four different payload spellings, so this is comparable across states in a way the underlying data is not. These are also the independent way to confirm a section when the publisher''s own page cannot be read without a browser (see `externalUrl`): a Texas rule''s `[''50 TexReg 8285'']` names the Texas Register issue and page that printed its adoption.' examples: - - 37 Ill. Reg. 16539 lawImplemented: anyOf: - type: string - type: 'null' title: Lawimplemented description: The statute this rule IMPLEMENTS, as distinct from `statutoryAuthority`, which is the statute granting the rulemaking power. Florida populates both and they differ. examples: - Section 4656.1, Public Resources Code lastAmendedDate: anyOf: - type: string - type: 'null' title: Lastamendeddate description: 'Full date of the most recent amendment, as `YYYY-MM-DD`, where the publisher gives one. See `lastAmendedDateRaw` for the wording. Illinois and Colorado regulations carry their amendment provenance only here and in `amendmentNote`: neither state has a `history`, and Colorado has no `effectiveDate` either, so for Colorado this is the only date that exists.' examples: - '2013-10-04' lastAmendedDateRaw: anyOf: - type: string - type: 'null' title: Lastamendeddateraw description: The last-amended date as the publisher writes it, present only when it differs from `lastAmendedDate`, or null when it is not a date at all. amendmentNote: anyOf: - type: string - type: 'null' title: Amendmentnote description: The publisher's amendment credit line where it is stored separately from `history`. Illinois and Colorado regulations, ~72% populated. examples: - Amended at 37 Ill. Reg. 16539, effective October 4, 2013 currencyYear: anyOf: - type: integer - type: 'null' title: Currencyyear description: Machine-readable counterpart to `currencyNote`, which is prose. 100% populated on the nine state-regulation corpora that carry a currency statement. examples: - 2025 reviewDate: anyOf: - type: string - type: 'null' title: Reviewdate description: 'The date a rule must be re-adopted or it expires, where the state runs a sunset review. Ohio regulations, ~80% populated. Not an amendment date: it is in the future.' examples: - 11/1/2028 reviewDateRaw: anyOf: - type: string - type: 'null' title: Reviewdateraw description: The review date as the publisher writes it, present only when it differs from `reviewDate`, or null when it is not a date at all. originalEnactmentDate: anyOf: - type: string - type: 'null' title: Originalenactmentdate description: 'When the section was FIRST enacted, as `YYYY-MM-DD`, ~72% populated on the US Code. Deliberately separate from `effectiveDate`: merging them would report an amended section as effective from its original year. On 35.7% of US Code points this is the only enactment date we hold. See `originalEnactmentDateRaw` for the publisher''s wording.' examples: - '1934-06-27' originalEnactmentDateRaw: anyOf: - type: string - type: 'null' title: Originalenactmentdateraw description: The enactment date as the publisher writes it, present only when it differs from `originalEnactmentDate`. The US Code prints `Aug. 14, 1935` where GovInfo statute compilations print `1935-08-14` for the same fact. examples: - June 27, 1934 releaseDate: anyOf: - type: string - type: 'null' title: Releasedate description: When the document was released publicly, where that differs from when it was issued. NLRB advice memoranda are written years before release; measured, the two dates are never equal. examples: - '2018-06-14' releaseDateRaw: anyOf: - type: string - type: 'null' title: Releasedateraw description: The release date as the publisher writes it, present only when it differs from `releaseDate`, or null when it is not a date at all. documentNumber: anyOf: - type: string - type: 'null' title: Documentnumber description: 'The issuer''s own document or case number, for exact lookup: an FCC DA number, an NLRB case-handling docket, a ruling number. On NLRB advice memoranda and FCC/HHS OCR documents this is NOT recoverable from `sectionNumber`.' examples: - 21-CA-211066 caseName: anyOf: - type: string - type: 'null' title: Casename description: The charged party or covered entity a document concerns. Only 27% equal to `sectionTitle` on HHS OCR, so it is not recoverable from the served text. examples: - Dunn-Edwards Corp. forum: anyOf: - type: string - type: 'null' title: Forum description: For `corpusType=AGENCY_ADJUDICATION`, the KIND of proceeding that produced the document, in the publisher's own words. On CFPB enforcement actions this is `Administrative Proceeding` (the Bureau's own Office of Administrative Adjudication, under 12 C.F.R. Part 1081) or `Civil Action` (a suit the Bureau filed in a federal district court). One action can carry both, in which case they are joined with `; `. Null on every other corpus. examples: - Administrative Proceeding court: anyOf: - type: string - type: 'null' title: Court description: 'The body that heard the matter, where the publisher names one. Distinct from `forum`, which is the KIND of proceeding: `forum` has two values and is what you filter on, `court` has as many values as there are districts and is for display. Populated on every CFPB civil action and on the administrative proceedings the Bureau labels with its own adjudication office.' examples: - U.S. District Court for the District of Massachusetts relatedDocuments: anyOf: - items: type: string type: array - type: 'null' title: Relateddocuments description: 'The publisher''s own labels for the filings whose text this record carries, in the order the publisher lists them. A CFPB enforcement action is ONE legal event published as two to seventeen PDFs and the unit we serve is the ACTION, not the filing: a consent order and the stipulation consenting to it are one record, because splitting them makes every search return two half-answers. This is what tells you which filings are inside the record you are holding. Only the operative instrument is mirrored under `pdfUrl`.' examples: - - Consent Order - Stipulation settlementAmount: anyOf: - type: string - type: 'null' title: Settlementamount description: The monetary penalty or settlement, as the agency prints it. 95.2% populated on HHS OCR resolution agreements, where it is the single most-asked fact of the corpus. examples: - $16,500 requesters: anyOf: - items: type: string type: array - type: 'null' title: Requesters description: Who asked for the determination or relief. On export-control commodity-jurisdiction determinations this is the applicant (100% populated); on no-action letters it determines who may rely on the relief. examples: - - Preece, Inc. program: anyOf: - type: string - type: 'null' title: Program description: The benefit or regulatory program a document governs, e.g. Old-Age and Survivors Insurance. 100% populated on Social Security rulings, where it is the primary axis a practitioner filters on. examples: - Old-Age and Survivors Insurance languageCode: anyOf: - type: string - type: 'null' title: Languagecode description: ISO code of the language the document is written in, present where a corpus is not wholly English. 86% of Puerto Rico insurance bulletins are Spanish (`es`). examples: - es volume: anyOf: - type: integer - type: 'null' title: Volume description: Volume number for corpora organised in volumes, e.g. the USCIS Policy Manual, whose Volume is the top hierarchy level and had no served representation at all. examples: - 1 articleNumber: anyOf: - type: string - type: 'null' title: Articlenumber description: Article number. Article is the PRIMARY hierarchy level in state constitutions, where `chapter` and `part` are 0-6% populated, so without this those corpora served almost no structure. examples: - '1' articleName: anyOf: - type: string - type: 'null' title: Articlename description: Article title, the companion to `articleNumber`. examples: - Declaration of Rights ruleSetCode: anyOf: - type: string - type: 'null' title: Rulesetcode description: Stable machine key for the rule family, where `ruleSet` gives only the prose name. 100% populated on the court-rules states that have a rule set. examples: - NDSUPCTADMINR edition: anyOf: - type: string - type: 'null' title: Edition description: The publisher's edition or year for this text. examples: - '2025' relatedCitations: anyOf: - items: type: string type: array - type: 'null' title: Relatedcitations description: 'Citations OUT of this document that are neither USC nor CFR: the state statutes a regulation implements, the Internal Revenue Code sections a ruling construes, other guidance it points at. `crossReferencesUsc` and `crossReferencesCfr` are 0% on several of these corpora, so this is the only outbound citation set they have.' examples: - - RCW 28A.150.290 supersessionActions: anyOf: - additionalProperties: true type: object - type: 'null' title: Supersessionactions description: 'What this document does to EARLIER documents, keyed by the issuer''s own verb: `modifies`, `obsoletes`, `amplifies`, `clarifies`, `rescinds`, each mapping to the documents affected. `supersedes` and `supersededBy` cover only the strongest verb. Without these a caller cannot tell a modified revenue procedure from an untouched one, nor see which memorandum rescinded which.' examples: - modifies: - Rev. Proc. 2011-47 licenseNote: anyOf: - type: string - type: 'null' title: Licensenote description: Licence and upstream dataset for text derived from a third-party snapshot rather than fetched from the publisher. Present on the state-regulation corpora built from an external dataset; absent means we hold the text under no third-party licence. examples: - MIT (reglab/statecodes) subtitle: anyOf: - type: string - type: 'null' title: Subtitle description: 'Subtitle, where a jurisdiction puts a level between title and chapter. Maryland''s regulations are organised Title > Subtitle > Chapter and are 100% populated; no other served field expressed that level. Deliberately NOT the same as `subchapter`, which sits BELOW chapter.' examples: - '11' subtitleName: anyOf: - type: string - type: 'null' title: Subtitlename description: Subtitle title, the companion to `subtitle`. examples: - AIR QUALITY publisherKey: anyOf: - type: string - type: 'null' title: Publisherkey description: 'The publisher''s own stable identifier for this document, where it issues one. On the US Code this is the OLRC''s `usckey` (100% populated), which joins directly to the uscode.house.gov bulk XML; on Colorado regulations it is the state''s rule id. Use it to reconcile our records against the publisher''s without matching on citation strings.' examples: - '430000000310400000000000000000000' versionId: anyOf: - type: string - type: 'null' title: Versionid description: The publisher's identifier for THIS VERSION of the document, where it versions them separately from the document itself. 100% populated on Colorado regulations, where it is the only version pointer that exists. examples: - '11948' referencedShortTitles: anyOf: - items: type: string type: array - type: 'null' title: Referencedshorttitles description: Popular names of acts this section REFERENCES, ~10% of the US Code. Distinct from `popularName`, which is the section's own. examples: - - Driftnet Modernization and Bycatch Reduction Act subjectNumber: anyOf: - type: string - type: 'null' title: Subjectnumber description: The publisher's numbered subject index entry, the companion to the term in `topics`. 100% populated on Social Security rulings. examples: - '47' audience: anyOf: - type: string - type: 'null' title: Audience description: Who the document is addressed to or binds, where the issuer states it. 100% populated on the Montana insurance bulletins. examples: - All Persons Engaged in Marketing sourceCharStart: anyOf: - type: integer - type: 'null' title: Sourcecharstart description: Character offset where this text begins in the source document, for callers reconciling our extraction against the original PDF. Pairs with `sourcePageStart`. examples: - 263194 sourceCharEnd: anyOf: - type: integer - type: 'null' title: Sourcecharend description: Character offset where this text ends in the source document. examples: - 264198 alternateCitations: anyOf: - items: type: string type: array - type: 'null' title: Alternatecitations description: 'Other official citation forms for THIS document, where a publisher prints more than one. Puerto Rico gives an L.P.R.A. cite, Arizona a long form, the IRS an Internal Revenue Bulletin cite, the Federal Reserve a paired Consumer Affairs number. Distinct from `relatedCitations`, which is what this document points AT. Use these when you need to match a citation a user typed in the form their jurisdiction actually publishes.' examples: - - 4 L.P.R.A. § 2077 expirationDate: anyOf: - type: string - type: 'null' title: Expirationdate description: 'When this rule lapses unless re-adopted, as `YYYY-MM-DD`. Distinct from `reviewDate` (the review deadline) and from any amendment date: it is in the future and it ENDS the rule. See `expirationDateRaw` for the publisher''s wording.' examples: - '2029-03-01' expirationDateRaw: anyOf: - type: string - type: 'null' title: Expirationdateraw description: The expiry date as the publisher writes it, present only when it differs from `expirationDate`. State regulators print this as `1/1/2028` and `03-01-2029` as well as ISO. examples: - 03-01-2029 committeeNote: anyOf: - type: string - type: 'null' title: Committeenote description: 'Advisory-committee note on a procedural rule: the standard interpretive gloss courts read alongside the rule text. Deliberately separate from `amendmentNote`, which records when the rule changed rather than what it means.' sourcePageStart: anyOf: - type: integer - type: 'null' title: Sourcepagestart description: First page in the official PDF this text was extracted from, for a pinpoint print citation. 100% populated on the Federal Rules. examples: - 114 sourcePageEnd: anyOf: - type: integer - type: 'null' title: Sourcepageend description: Last page in the official PDF; companion to `sourcePageStart`. examples: - 114 displayLabel: anyOf: - type: string - type: 'null' title: Displaylabel description: 'The publisher''s own short label for this section, e.g. `Cal. BPC § 655.2` or `MPEP § 2165.03`. Populated on essentially every document we hold. Usually equal to `citationShort`, but NOT always: on the Federal Communications Commission, NLRB, HHS OCR and BIS corpora the two differ on every document, and there `displayLabel` is the form the publisher itself prints.' examples: - MPEP § 2165.03 publicationDate: anyOf: - type: string - type: 'null' title: Publicationdate description: 'The date this document was published by its source. For Federal Register documents this is the FR publication date, the primary citation and sort key, populated on 100% of rules and proposed rules. Distinct from `effectiveDate` (when it takes legal effect) and from `issueDate` (when the issuing body dated it). A rule is routinely published before it is effective.' examples: - '2001-12-14' publicationDateRaw: anyOf: - type: string - type: 'null' title: Publicationdateraw description: The publication date as the publisher writes it, present only when it differs from `publicationDate`, or null when it is not a date at all. publicLawCites: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Publiclawcites description: 'Structured Statutes at Large citations parsed out of the source credit, populated on ~72% of the US Code. Each entry carries `statVolume`, `statPage`, `type` and a `display` string. `publicLaws` gives the bare `Pub. L.` list and `sourceCredit` the raw prose; this is the same information already parsed, so a caller can link to the Statutes at Large without re-parsing the credit line.' topLevelTitle: anyOf: - type: string - type: 'null' title: Topleveltitle description: 'The outermost division this document sits under, where the corpus has one that `titleNumber`/`chapter`/`part` do not already express. Examples: `Title 9: Criminal` for the DOJ Justice Manual, `Volume 1 - General Policies and Procedures` for the USCIS Policy Manual. Null for flat corpora, where one document is the whole unit.' examples: - 'Title 9: Criminal' externalUrl: anyOf: - type: string - type: 'null' title: Externalurl description: 'The publisher''s own page for this section, exactly as recorded at ingest: uscode.house.gov, ecfr.gov, a state legislature or a state register. Null when the publisher issues no per-section link, or when the link is withheld under licence (`licenseNote` says so). Prefer `sourceUrl`, which is this link when present and otherwise the best official alternative. Some official publishers serve their code only through a JavaScript application, so the link renders in a browser but returns an empty page shell to a plain HTTP client. Texas is the main case: the Secretary of State publishes the Texas Administrative Code only on its Appian portal (texas-sos.appianportalsgov.com). The link is still the correct citation. To check a section without a browser, use `adoptingCitations` (for Texas, the `NN TexReg PPPP` register citations that adopted and amended it) and read the text we captured at `textUrl`.' examples: - https://www.mass.gov/regulations/240-CMR-200-licensure-of-cosmetologists sourceUrl: anyOf: - type: string - type: 'null' title: Sourceurl description: 'Where the government published this text: the link to cite and to verify against. The same value `/us/statutes/section/{actId}/body` returns as `sourceUrl`, on every search result, section record and batch item. It is `externalUrl` when the publisher issued a per-section link, and otherwise falls back to the govinfo.gov page, then the state''s own page, then our archived copy of the publisher''s page. Null when we hold no publishable link: a third-party compiler is never served here, and where a link exists but is withheld under licence, `licenseNote` says so.' examples: - https://www.mass.gov/regulations/240-CMR-200-licensure-of-cosmetologists type: object required: - actId title: StatuteResult description: A single statute section from search results. SectionEnactment: properties: sessionLawId: type: string title: Sessionlawid description: The act, in the session-law registry. Read it at `href`. examples: - SSL_MS_2025R_G_C301 href: type: string title: Href description: 'Path of the act on this API: `GET` it for the record, or its `/body` for the text.' examples: - /api/v1/us/session-laws/SSL_MS_2025R_G_C301 citation: anyOf: - type: string - type: 'null' title: Citation description: The act's citation as its publisher prints it. Null when none is held. examples: - Regular Session, ch. 301 title: anyOf: - type: string - type: 'null' title: Title description: The act's title as printed. Null when none is held. examples: - AN ACT TO AUTHORIZE A PERSON WHO IS THE HOLDER OF A WINE MANUFACTURER'S PERMIT sessionCode: anyOf: - type: string - type: 'null' title: Sessioncode description: The session the act was enacted in, as in `coverage.sessionsHeld`. examples: - 2025R approvedDate: anyOf: - type: string format: date - type: 'null' title: Approveddate description: 'Date the governor approved the act, ISO 8601: never an effective date. Null when none is held.' examples: - '2025-03-17' effectiveDates: items: $ref: '#/components/schemas/SessionLawDate' type: array title: Effectivedates description: 'Every effective date the publisher prints for the ACT, in printed order: the act''s, not necessarily this section''s (an act can take effect in parts, and a date may carry a `scopeAsPrinted`). Empty when none is held, which does not mean the act is not in force.' action: type: string enum: - added - amended - repealed - renumbered - other title: Action description: 'What the act did to the section, normalised: `added`, `amended`, `repealed`, `renumbered`, or `other`. It is mapped from `actionAsPrinted` only where the publisher''s legend is settled; `other` means the table prints no action (Nebraska, `actionAsPrinted` is null), prints one that is not a change to this section (Mississippi''s `BF`, brought forward), or one we do not map. Never read `other` as ''unchanged''. The publisher''s own code is always in `actionAsPrinted`.' examples: - amended actionAsPrinted: anyOf: - type: string - type: 'null' title: Actionasprinted description: The publisher's own action code or word for this entry, verbatim. Null when the table prints none. examples: - A sectionAsPrinted: type: string title: Sectionasprinted description: The section exactly as the publisher's table prints it. examples: - 027-0071-0005 codeAsPrinted: anyOf: - type: string - type: 'null' title: Codeasprinted description: The code the publisher qualifies the section with, as printed (`HRS`, `D.C. Code`, `Education Code`). Null where the publisher prints none. examples: - RCW actSectionAsPrinted: anyOf: - type: string - type: 'null' title: Actsectionasprinted description: Which section of the ACT does it, as printed (Washington's `1223`, Kentucky's `5`). Null where the table prints none. examples: - '6' basis: type: string const: publisher_sections_affected title: Basis description: 'Where the entry comes from: always `publisher_sections_affected`, the publisher''s own table of the code sections an act affects. Never read out of the act''s prose.' default: publisher_sections_affected examples: - publisher_sections_affected matchQuality: type: string const: as_printed title: Matchquality description: 'How the entry was matched to the section: always `as_printed`, the publisher''s printed section equals this section''s number after folding case, spacing, dashes and the section sign, and nothing is matched by prefix. The match is on the number, in the jurisdiction''s own printed form; it is not a legal analysis of what the act did.' default: as_printed examples: - as_printed identityConfidence: type: string enum: - confirmed - single_source - inferred - disputed title: Identityconfidence description: 'How firmly the registry knows the act is the law it says it is: `confirmed`, `single_source`, `inferred` or `disputed`.' examples: - single_source textStatus: type: string enum: - held - withheld - not_held - pending title: Textstatus description: 'Whether we serve the act''s text: `held`, `withheld`, `not_held` or `pending`, as on `GET /us/session-laws/{sessionLawId}`.' examples: - held enactmentOutcome: anyOf: - type: string enum: - signed - became_law_without_signature - veto_overridden - line_item_veto - vetoed - pocket_veto - not_presented - approved_by_voters - unknown - type: 'null' title: Enactmentoutcome description: 'How the act became (or did not become) law, as on the act''s record: `signed`, `vetoed` and so on. Null when it is not recorded.' examples: - signed type: object required: - sessionLawId - href - action - sectionAsPrinted - identityConfidence - textStatus title: SectionEnactment description: 'One printed entry of a publisher''s table: this act, against this section.' UsJurisdictionCoverage: properties: code: type: string title: Code description: 2-letter state ISO code (lowercase) or `federal` for USC/CFR. examples: - tx name: type: string title: Name description: Display name. examples: - Texas kind: type: string enum: - federal - state - territory title: Kind description: '`federal` for USC/CFR, `state` for the 50 states, `territory` for non-state jurisdictions (DC, Puerto Rico).' sectionCount: type: integer minimum: 0.0 title: Sectioncount description: 'Distinct sections held for this jurisdiction, summed across its `corpora`. 0 means not yet covered. One per provision or document, NOT per retrieval passage (see `totalPassages` for those). Repealed, transferred and reserved sections ARE counted: a legal research corpus serves them and a customer researching a historical question needs them. A SUPERSEDED prior version is not counted a second time when the section it supersedes is also served, because that is the same section twice -- but one with no current counterpart IS counted, since it is the only text we hold for that provision. Read `statusBreakdown` to see the split.' hasData: type: boolean title: Hasdata description: True when section_count > 0. statusBreakdown: additionalProperties: additionalProperties: type: integer type: object type: object title: Statusbreakdown description: 'Per-corpusType `act_status` split over the same sections `corpora` counts, e.g. `{"REGULATION": {"inForce": 12151, "repealed": 10640, "transferred": 5426}}`. Published so a large section count can be read as maintained law plus retained history rather than as an undifferentiated total: Montana holds 28,217 regulation sections of which 12,151 are in force, and without this split that reads either as 28,217 current rules or as a coverage problem, and it is neither. ⚠️ `inForce` is what the ingester recorded, and it is NOT a complete census of current law: a zero means the status was never determined, never that the corpus is entirely inoperative. Absent when a jurisdiction has not been measured exactly.' corpora: additionalProperties: type: integer type: object title: Corpora description: 'Per-corpusType ingested-DOCUMENT counts for this jurisdiction, keyed by the `corpusType` token (e.g. `{"STATE": 176778, "REGULATION": 51142}`). Only corpora with data are included. Pass a key as `corpusType` to `/us/statutes/search` to scope a query.' sessionLaws: anyOf: - $ref: '#/components/schemas/SessionLawJurisdictionCoverage' - type: 'null' description: 'State session laws (acts as enacted) held for this jurisdiction, by legislative session, with each session''s coverage status (`complete` or `partial`), how many laws we serve, withhold or know without text, the expected total (`denominator`), `openGaps` and when it was `measuredAt`. Beside the sessions it carries the `series` and `instrumentTypes` that exist (the values `GET /us/session-laws/list` accepts) and the span of approval dates held (`earliestApprovedDate`, `latestApprovedDate`); each of those four is omitted when it cannot be read. A separate corpus: read and list the laws with `/us/session-laws`, not `/us/statutes/search`, and resolve their citations with `/us/statutes/resolve`. The whole block is absent when we hold no session laws for the jurisdiction (for example IN and TN at launch, whose publishers we cannot yet collect from), and whenever session-law coverage cannot be read; absence is a gap in our collection, not a statement that the jurisdiction enacts none.' type: object required: - code - name - kind - sectionCount - hasData title: UsJurisdictionCoverage description: One row of the /us/statutes/states response. StatuteSectionResponse: properties: section: $ref: '#/components/schemas/StatuteResult' description: 'The section''s metadata and source links. Full text is a separate call: `/us/statutes/section/{actId}/body`.' resolvedFrom: anyOf: - $ref: '#/components/schemas/SectionIdentifierResolution' - type: 'null' description: 'Null when the section is exactly the act_id you sent. Otherwise how your input was matched: a citation, or an act_id with transport damage (whitespace, quotes, a trailing period) removed.' processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 240.5 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0, and batch endpoints charge per item returned, so a partial result costs less than a full one.' default: 0.0 examples: - 4 type: object required: - section title: StatuteSectionResponse description: Detailed section metadata (no full text, use /body for that). ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError StatuteCrossStateResponse: properties: section: $ref: '#/components/schemas/StatuteResult' description: The section you asked about. neighbors: items: $ref: '#/components/schemas/StatuteCrossStateNeighbor' type: array title: Neighbors description: Comparable provisions in other states, most similar first. At most one entry per state, so this reads as a jurisdiction comparison rather than a relevance list. statesCovered: type: integer title: Statescovered description: How many distinct states are represented. Fewer than you asked for means no provision in the remaining states cleared the similarity floor, not that those states are missing from the corpus. default: 0 examples: - 5 note: anyOf: - type: string - type: 'null' title: Note description: Set only when the answer is not a real zero. Cross-state comparison is defined for state statute sections; for USC, CFR and other corpora this explains that the section has no state analogues and the call is refunded. rankingDegraded: type: boolean title: Rankingdegraded description: True when the relevance model was unavailable, so the neighbors are in retrieval order and `similarity` is a retrieval score on a much smaller scale rather than the usual 0-1. The provisions are still the retrieved analogues; retry shortly for the fully ranked answer. default: false examples: - false resolvedFrom: anyOf: - $ref: '#/components/schemas/SectionIdentifierResolution' - type: 'null' description: 'Null when the section is exactly the act_id you sent. Otherwise how your input was matched: a citation, or an act_id with transport damage (whitespace, quotes, a trailing period) removed.' processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 420.1 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0.' default: 0.0 examples: - 6 type: object required: - section title: StatuteCrossStateResponse description: Response for `GET /us/statutes/section/{act_id}/cross-state`. SubsectionNode: properties: label: type: string title: Label description: The marker as printed, e.g. `(b)` or `(2)`. pincite: type: string title: Pincite description: 'Full path to this subsection from the top of the section, e.g. `(b)(2)`. Append it to the section''s citation to point at this exact passage: 42 U.S.C. § 1983(b)(2). Lawyers call that a pincite, a citation to the precise place rather than the whole section.' examples: - (b)(2) type: type: string title: Type description: 'The drafting level of this node: `subsection`, `paragraph`, `subparagraph`, `clause`, or `subclause`. Use it to render the marker style (letters, numbers, roman).' default: subsection citation: anyOf: - type: string - type: 'null' title: Citation description: Full pinpoint citation when the section citation is known, e.g. `42 U.S.C. § 1983(b)(2)`. text: type: string title: Text description: This node's own text, excluding nested children. default: '' children: items: $ref: '#/components/schemas/SubsectionNode' type: array title: Children description: Nested subsections one level deeper. type: object required: - label - pincite title: SubsectionNode description: One node in a section's subsection tree (see `/body?structured=true`). SectionEnactmentsResponse: properties: actId: type: string title: Actid description: The section's act_id as served, after any citation or copy damage was resolved. examples: - STATE_MS_T27_C71_S27-71-5 resolvedFrom: anyOf: - $ref: '#/components/schemas/SectionIdentifierResolution' - type: 'null' description: 'Present only when your input was a citation or an id carrying copy damage: what it was matched as. Null when you sent an exact act_id.' jurisdiction: anyOf: - type: string - type: 'null' title: Jurisdiction description: Lowercase two-letter code of the section's jurisdiction. Null for a federal section. examples: - ms supported: type: boolean title: Supported description: 'True when this section''s jurisdiction is one whose publisher table is mapped to the statutes section numbers and this section is in the form that mapping was proven on: then `enactments` is an answer, even when it is empty, and the call is charged. False when it is not (see `reason`): `enactments` is empty, says nothing about the section, and the call is NOT charged.' examples: - true reason: anyOf: - type: string enum: - unsupported_jurisdiction - not_a_state_code_section - section_not_in_proven_form - type: 'null' title: Reason description: 'Why `supported` is false. `unsupported_jurisdiction`: we do not read this jurisdiction''s table (none is printed, or its form is not verified against our section numbers), see `coverage.note`. `not_a_state_code_section`: the section is not a state statute (a federal, regulation or constitution section). `section_not_in_proven_form`: the jurisdiction is read, but this section''s stored number is not in a form the mapping was proven on, so it is not guessed at. Null when `supported` is true.' examples: - null enactments: items: $ref: '#/components/schemas/SectionEnactment' type: array title: Enactments description: 'The entries of the publisher''s tables whose printed section is this section, newest act first (by approval date, undated last), one per printed entry: an act that lists the section twice appears twice. NEVER a complete history: only acts we hold, in sessions we hold, whose table lists the section in the printed form this jurisdiction''s mapping reads. Empty with `supported: true` is a real answer: no held table lists it.' count: type: integer title: Count description: Entries returned in `enactments`. default: 0 examples: - 1 truncated: type: boolean title: Truncated description: True when more entries matched than are returned (the newest are kept). A section amended by that many acts is not a case we have met. default: false examples: - false coverage: $ref: '#/components/schemas/EnactmentCoverage' description: What this answer is read from, and what it is not. Show it with the list. creditsConsumed: type: integer title: Creditsconsumed description: Credits actually charged for this call, never the list price. 0 when `supported` is false (refunded) and on a failure. A citation sent in place of the act_id adds the `/us/statutes/resolve` price, charged whether or not it resolves. default: 0 examples: - 1 processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Not billed on. default: 0.0 examples: - 96.4 type: object required: - actId - supported - coverage title: SectionEnactmentsResponse description: Response for `GET /us/statutes/section/{act_id}/enactments`. UsStatutesCoverageResponse: properties: corpusTypes: items: $ref: '#/components/schemas/UsCorpusTypeInfo' type: array title: Corpustypes description: Legend of every corpusType token, its meaning, and its scope. jurisdictions: items: $ref: '#/components/schemas/UsJurisdictionCoverage' type: array title: Jurisdictions description: One row per jurisdiction (federal first, then states and territories), each carrying its per-corpusType counts in `corpora`. totalSections: type: integer title: Totalsections description: Count of distinct sections (one per provision or document) across the corpus. This is the deduplicated legal-document total, not the raw index size; see `totalPassages`. totalPassages: type: integer title: Totalpassages description: Total indexed retrieval passages across the corpus. Longer sections and documents are split into several passages for retrieval, so this runs well above `totalSections`. The Federal Register (long agency rules) accounts for over half. default: 0 stateCountWithData: type: integer title: Statecountwithdata measuredAt: anyOf: - type: string - type: 'null' title: Measuredat description: 'When these counts were last measured against the index, as the OLDEST per-jurisdiction measurement in this response. This is OUR measurement''s age, not the publisher''s currency: for what a section is current THROUGH, read `currentThrough` on the section, and for when a source was last checked, read `GET /boards`.\n\nIt exists because a jurisdiction whose measurement keeps failing is served from the last value we knew to be correct, which is the right trade (a stale count is accurate, a degraded one reports a real corpus as absent) and used to be indistinguishable from a fresh one. Null means nothing in this response has been successfully measured yet.' type: object required: - corpusTypes - jurisdictions - totalSections - stateCountWithData title: UsStatutesCoverageResponse description: 'Response for `GET /us/statutes/coverage`. A self-describing matrix: a legend of every `corpusType` token plus, for each jurisdiction, the per-corpusType ingested-document counts. Use it to learn exactly what is queryable where before calling `/us/statutes/search`.' EnactmentSession: properties: code: type: string title: Code description: Session code, `{year}{type}{ordinal}`, as on `GET /us/session-laws/list`. examples: - 2025R label: anyOf: - type: string - type: 'null' title: Label description: The session's canonical label, as the publisher names it. examples: - 2025 Regular Session status: anyOf: - type: string enum: - complete - partial - type: 'null' title: Status description: 'Whether we hold every act of the session (`complete`) or only part of it (`partial`): an act missing from a partial session is not evidence that it did not touch the section. Null when coverage could not be read just now.' examples: - complete type: object required: - code title: EnactmentSession description: One legislative session of the jurisdiction whose code-section tables are read. StatuteCitedByResponse: properties: section: $ref: '#/components/schemas/StatuteResult' description: The section you asked about. citers: items: $ref: '#/components/schemas/StatuteResult' type: array title: Citers description: 'Sections whose text cross-references this one, in statutory order. Empty is a real answer: plenty of sections are cited by nothing.' total: type: integer title: Total description: 'How many citing sections were returned. This is the size of `citers`, not a corpus-wide count: it is capped by `limit`.' default: 0 examples: - 17 truncated: type: boolean title: Truncated description: True when more citing sections exist than `limit` allowed. Raise `limit` to see the rest. default: false note: anyOf: - type: string - type: 'null' title: Note description: Set only when the answer is not a real zero. Reverse citation is built on the cross-reference index, which exists for USC and CFR; for any other corpus this explains that the section is out of scope and the call is refunded. When it is null, an empty `citers` means nothing cites this section. resolvedFrom: anyOf: - $ref: '#/components/schemas/SectionIdentifierResolution' - type: 'null' description: 'Null when the section is exactly the act_id you sent. Otherwise how your input was matched: a citation, or an act_id with transport damage (whitespace, quotes, a trailing period) removed.' processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 74.2 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0.' default: 0.0 examples: - 2 type: object required: - section title: StatuteCitedByResponse description: Response for `GET /us/statutes/section/{act_id}/cited-by`. HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError StatuteCrossStateNeighbor: properties: section: $ref: '#/components/schemas/StatuteResult' description: The out-of-state section. state: type: string title: State description: Two-letter code of the state this provision belongs to. examples: - ny similarity: type: number title: Similarity description: 'How closely this provision tracks the source section, 0 to 1. This is a retrieval score, not a legal opinion: a high score means the provisions read alike, never that they are legally equivalent.' examples: - 0.82 type: object required: - section - state - similarity title: StatuteCrossStateNeighbor description: One out-of-state provision that addresses the same subject. SessionLawDenominator: properties: kind: type: string enum: - stated_count - complete_listing - max_number - feed_total - our_recount - registry_union - none title: Kind description: 'Where the total comes from. `stated_count`: the publisher states how many measures the session enacted. `complete_listing`: the publisher''s own complete list of the session''s acts, which we counted. `max_number`: the highest chapter number the publisher printed. `feed_total`: the total a publisher feed reports. `our_recount`: we counted the publisher''s pages ourselves. `registry_union`: the measures we know of from several sources. `none`: no total is available, so completeness cannot be judged.' examples: - complete_listing value: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Value description: The number of laws the session is expected to hold. Null when `kind` is `none`. Compare it with `registryCount` and `servedCount`. examples: - 296 derivation: type: string title: Derivation description: 'One plain sentence saying what `value` counts and where it comes from. Written for customers: it never contains our internal audit or collection notes.' examples: - The publisher's complete listing of this session names 296 acts. type: object required: - kind - derivation title: SessionLawDenominator description: How many laws a session is supposed to hold, and where that number comes from. StatuteDefinitionsResponse: properties: section: $ref: '#/components/schemas/StatuteResult' description: The section you asked about. definitionsSection: anyOf: - $ref: '#/components/schemas/StatuteResult' - type: 'null' description: The sibling section the terms were parsed from. Null when the chapter has no definitions section, in which case `terms` is empty and the call is refunded. terms: items: $ref: '#/components/schemas/StatuteDefinitionTerm' type: array title: Terms description: Defined terms governing this section, in the order the source lists them. total: type: integer title: Total description: How many terms were parsed. default: 0 examples: - 12 note: anyOf: - type: string - type: 'null' title: Note description: 'Set only when no terms could be returned, explaining which step came up empty: the chapter has no definitions section, or its text is not ingested yet. The call is refunded in both cases.' resolvedFrom: anyOf: - $ref: '#/components/schemas/SectionIdentifierResolution' - type: 'null' description: 'Null when the section is exactly the act_id you sent. Otherwise how your input was matched: a citation, or an act_id with transport damage (whitespace, quotes, a trailing period) removed.' processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 310.8 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0.' default: 0.0 examples: - 4 type: object required: - section title: StatuteDefinitionsResponse description: Response for `GET /us/statutes/section/{act_id}/definitions`. SessionLawJurisdictionCoverage: properties: sessions: items: $ref: '#/components/schemas/SessionLawSessionCoverage' type: array title: Sessions description: Oldest session first. examples: - - code: 2025R collectedCount: 43 denominator: derivation: The publisher's complete listing of this session names 296 measures. We hold 43 of them; the rest are not yet collected. kind: complete_listing value: 296 label: 153rd General Assembly notHeldCount: 0 openGaps: 253 registryCount: 43 servedCount: 43 status: partial type: regular withheldCount: 0 year: 2025 sessionCount: type: integer minimum: 0.0 title: Sessioncount description: Sessions of this jurisdiction we hold session laws for. examples: - 2 completeSessionCount: type: integer minimum: 0.0 title: Completesessioncount description: How many of those sessions are `complete`. examples: - 2 servedCount: type: integer minimum: 0.0 title: Servedcount description: Laws served across every session listed. examples: - 54 series: anyOf: - items: type: string type: array - type: 'null' title: Series description: 'The numbering series that exist among this jurisdiction''s session laws: the values `series` accepts on `GET /us/session-laws/list`. `general` is the ordinary chapter sequence. Omitted when it cannot be read, which is not the same as no series existing.' examples: - - general instrumentTypes: anyOf: - items: type: string type: array - type: 'null' title: Instrumenttypes description: 'The kinds of measure we hold for this jurisdiction: the values `instrumentType` accepts on `GET /us/session-laws/list`. Omitted when it cannot be read.' examples: - - act - joint_resolution earliestApprovedDate: anyOf: - type: string format: date - type: 'null' title: Earliestapproveddate description: 'The earliest approval date among this jurisdiction''s session laws, ISO 8601: the start of what the approval-date filters on `GET /us/session-laws/list` can match. Omitted when no law prints an approval date or the span cannot be read.' examples: - '2025-02-10' latestApprovedDate: anyOf: - type: string format: date - type: 'null' title: Latestapproveddate description: 'The latest approval date among this jurisdiction''s session laws, ISO 8601: the end of what the approval-date filters on `GET /us/session-laws/list` can match. Omitted when no law prints an approval date or the span cannot be read.' examples: - '2025-06-14' type: object required: - sessionCount - completeSessionCount - servedCount title: SessionLawJurisdictionCoverage description: A jurisdiction's state session laws (acts as enacted), by session. StatuteResolveBatchRequest: properties: citations: items: type: string type: array maxItems: 500 minItems: 1 title: Citations description: 'Bluebook citation strings to resolve. Duplicates are collapsed FIRST and order is preserved, so the response''s `results` array lines up with the de-duplicated input. The cap is **50 UNIQUE citations, applied after that collapse**, so a brief quoting one section sixty times is one citation and is accepted. 500 is the raw list ceiling, which exists so an unbounded list of duplicates cannot make us walk it. Priced PER CITATION at the single-resolve rate, exactly like `POST /us/statutes/sections`: batching is a round-trip and latency win, not a discount. Thirty citations cost the same 60 credits either way and take one request instead of thirty.' examples: - - 42 U.S.C. 1983 - 16 C.F.R. 444.1 - Cal. Civ. Code 1950.5 state: anyOf: - type: string enum: - federal - al - ak - az - ar - ca - co - ct - de - dc - fl - ga - gu - hi - id - il - in - ia - ks - ky - la - me - md - ma - mi - mn - ms - mo - mt - ne - nv - nh - nj - nm - ny - nc - nd - mp - oh - ok - or - pa - pr - ri - sc - sd - tn - tx - ut - vt - va - wa - wv - wi - wy maxLength: 7 minLength: 2 - type: 'null' title: State description: 'Optional jurisdiction to resolve every citation WITHIN: a two-letter state code, or `federal` for the U.S. Code, the C.F.R., federal rules and the U.S. Constitution. 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.' examples: - ca corpusType: anyOf: - type: string enum: - CONSTITUTION - REGULATION - STATE - STATE_CONSTITUTION - STATE_RULES - type: 'null' title: Corpustype description: 'Optional corpus to resolve every citation WITHIN: `STATE` (statutory text, federal or state), `REGULATION` (administrative codes), `STATE_RULES` (court rules), `CONSTITUTION` (constitutional text), `STATE_CONSTITUTION` (constitutional text; a synonym of `CONSTITUTION` here, since `state` is what separates the two). Same semantics as the single-citation route.' examples: - REGULATION additionalProperties: false type: object required: - citations title: StatuteResolveBatchRequest description: 'Batch citation resolution. See `POST /us/statutes/resolve`. `/resolve` took 1,159 calls in the 16 days to 2026-08-31, second only to search, and every one of them carried a single citation. The caller shape it is actually serving is an agent handed a brief, a memo or a model''s output with thirty citations in it, doing thirty round trips to check them.' BodyFigure: properties: figureId: type: string title: Figureid description: Stable id for this figure, also carried on the `
` element in `html`. Deterministic, so it does not change between renders of the same source. examples: - fig_3f2a9c0d1e4b5a67 kind: type: string enum: - figure - equation - image - form title: Kind description: What the image is. `equation` renders inline in the text. default: figure caption: anyOf: - type: string - type: 'null' title: Caption description: The publisher's caption, when it prints one. alt: anyOf: - type: string - type: 'null' title: Alt description: Alternative text for the image. url: anyOf: - type: string - type: 'null' title: Url description: Where the image is hosted, always on `statutes-us.vaquill.ai`. A format a browser cannot display (TIFF, EPS, PDF) is served as a PNG. Null when `status` is `unavailable`. examples: - https://statutes-us.vaquill.ai/figures/9b2e...c41.gif sourceUrl: anyOf: - type: string - type: 'null' title: Sourceurl description: The image as the government publisher serves it. Use it for a "view at source" link, especially when `status` is `unavailable`. Null when we hold no publishable link. examples: - https://www.ecfr.gov/graphics/er13my11.020.gif width: anyOf: - type: integer - type: 'null' title: Width description: Pixel width of the hosted image. height: anyOf: - type: integer - type: 'null' title: Height description: Pixel height of the hosted image. mimeType: anyOf: - type: string - type: 'null' title: Mimetype examples: - image/gif order: type: integer title: Order description: 1-based position among the section's figures. default: 0 offsetMarkdown: anyOf: - type: integer - type: 'null' title: Offsetmarkdown description: Character offset of this figure's placeholder in `markdown`, so a client can splice the image into its own layout. offsetPlain: anyOf: - type: integer - type: 'null' title: Offsetplain description: 'Character offset of this figure''s `[Figure N: ...]` placeholder in `plain`.' status: type: string enum: - hosted - unavailable title: Status description: '`unavailable` means the publisher''s image could not be fetched. The figure is still listed, and its caption and placeholder stay in the text, so a missing figure is never silently dropped.' default: hosted type: object required: - figureId title: BodyFigure description: One figure, equation or form image inside a rendered section body. StatuteResolveResponse: properties: resolved: type: boolean title: Resolved description: True when the citation resolved to an exact section. inputCitation: type: string title: Inputcitation description: The citation string you asked to resolve, echoed back. section: anyOf: - $ref: '#/components/schemas/StatuteResult' - type: 'null' description: The resolved section, or null when the citation did not resolve. subsection: anyOf: - type: string - type: 'null' title: Subsection description: 'Parsed pinpoint subsection when the citation carried one, e.g. ''b.2'' for ''42 U.S.C. 1983(b)(2)''. The returned section is the parent. It is also set when the citation names a unit SMALLER than the one the publisher issues: Rhode Island cites a regulation by section (''250-RICR-120-05-15.2'') but publishes the whole Part, so `section` is Part 15 and `subsection` is ''15.2''. A non-null `subsection` always means `section` is the containing document, not the exact unit you cited.' citationOutsideFilters: anyOf: - $ref: '#/components/schemas/CitationOutsideFilters' - type: 'null' description: 'Set only when `resolved` is false because your `state` or `corpusType` scope excludes a section this citation DOES name, e.g. `42 U.S.C. 1983` under `state=ca`. The scope is a constraint, so the verdict stays `resolved: false`; this says why, so an unresolved result is not read as ''no such section''. Retry without the scope named in `excludedBy` to resolve it. No extra charge.' matchedCorpus: anyOf: - type: string const: session_law - type: 'null' title: Matchedcorpus description: Present only when the citation names a STATE session law (an act as enacted, for example `CHAPTER 2025-12` or `S.F.No. 1552`) rather than a code section. `resolved` stays false and `section` stays null, because both describe a code section; the law is in `sessionLaw`. sessionLaw: anyOf: - $ref: '#/components/schemas/SessionLawCitationMatch' - type: 'null' description: The state session law this citation names, when it names no code section. `status` is `matched` (one law, read it at `href`) or `ambiguous` (several, all in `candidates`, none chosen for you). Absent when the citation resolved to a section, and whenever session laws cannot be checked. No extra charge. processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 240.5 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0, and batch endpoints charge per item returned, so a partial result costs less than a full one.' default: 0.0 examples: - 4 type: object required: - resolved - inputCitation title: StatuteResolveResponse description: Response for `GET /us/statutes/resolve`. SessionLawSession: properties: code: type: string title: Code description: Session code, `{year}{type}{ordinal}`. `type` is `R` regular, `S` special, `X` extraordinary, `F` fiscal, `V` veto, `U` unknown. A regular session has no ordinal (`2025R`); a numbered special session carries it (`2025S1`, the first special session of 2025); a lettered one carries its letter (`2025SC`, Florida's Special Session C). `year` is the year the publisher numbers the session by, which for a period spanning two years is the first (District of Columbia Council Period 25 is `2023R`). Pass it as `session` to `GET /us/session-laws/list`. examples: - 2025R - 2025S1 label: anyOf: - type: string - type: 'null' title: Label description: The session's canonical label, as the publisher names it. examples: - 2025 Regular Session - 2025 1st Special Session type: anyOf: - type: string - type: 'null' title: Type description: '`regular`, `special`, `extraordinary`, `fiscal`, `veto` or `unknown`.' examples: - regular year: anyOf: - type: integer - type: 'null' title: Year description: The year the session convened, the same year `code` starts with. examples: - 2025 type: object required: - code title: SessionLawSession description: The legislative session a law was enacted in. CitationOutsideFilters: properties: actId: type: string title: Actid description: The section the citation names. Pass it to `/section/{actId}` to read it. examples: - USC_T42_C21_S1983 citation: anyOf: - type: string - type: 'null' title: Citation description: That section's citation, as it appears in results. examples: - 42 U.S.C. § 1983 (2026) title: anyOf: - type: string - type: 'null' title: Title description: That section's heading. examples: - Civil action for deprivation of rights state: anyOf: - type: string - type: 'null' title: State description: 'That section''s jurisdiction: `federal` or a two-letter state code.' examples: - federal corpusType: anyOf: - type: string - type: 'null' title: Corpustype description: That section's corpus, e.g. `USC`, `CFR`, `STATE`. examples: - USC excludedBy: items: type: string type: array title: Excludedby description: 'The request filters that exclude the section, by their public names (`state`, `corpusType`, `code`, `article`, `titleNumber`, `chapter`, `part`, `yearFrom`, `yearTo`). Empty when the exclusion comes from a condition only the index can attribute (`excludeRepealed`, `actStatus`, `source`, `changedSince` and the Federal Register facets): then any of the filters you set may be responsible.' examples: - - state type: object required: - actId title: CitationOutsideFilters description: 'A citation that names a real section the caller''s own filters exclude. Both `/search` and `/resolve` treat a filter as a promise: a citation outside it is not forced into the results. This says so, instead of leaving a caller to read an unrelated top hit (or `resolved: false`) as "no such section".' StatuteSectionsResponse: properties: sections: items: $ref: '#/components/schemas/StatuteResult' type: array title: Sections description: Found sections, in the order the ids were supplied. notFound: items: type: string type: array title: Notfound description: Identifiers with no match. These are NOT charged, so a batch with misses costs less than `len(actIds)` times the per-section rate. notFoundDetail: items: $ref: '#/components/schemas/StatuteSectionsNotFoundDetail' type: array title: Notfounddetail description: One entry per id in `notFound`, saying whether the id was assembled rather than taken from a search result, and suggesting the real ids where they could be recovered. Diagnostic only and never charged; it can come back empty if the lookup is unavailable, so treat it as a hint rather than a contract. resolved: items: $ref: '#/components/schemas/SectionIdentifierResolution' type: array title: Resolved description: 'One entry per input that did NOT match as sent: a citation resolved to its section, or an id cleaned of whitespace, quotes or a trailing period. Use it to map your inputs onto `sections`, which carry the real act_ids. Empty when every input was an exact id.' count: type: integer title: Count description: Number of sections returned. default: 0 processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 240.5 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0, and batch endpoints charge per item returned, so a partial result costs less than a full one.' default: 0.0 examples: - 4 type: object title: StatuteSectionsResponse description: Response for `POST /us/statutes/sections`. SectionIdentifierResolution: properties: input: type: string title: Input description: The identifier exactly as you sent it. examples: - 26 U.S.C. § 1 actId: type: string title: Actid description: The act_id it matched. Send this next time to skip resolution. examples: - USC_T26_C1_S1 via: type: string enum: - normalized_id - citation title: Via description: '`citation` -- your input was a citation, resolved with the same resolver as `GET /us/statutes/resolve`. Check it the way you would check a `/resolve` answer. `normalized_id` -- your input was an act_id carrying surrounding whitespace, quotes, a trailing period or double percent-encoding, which were removed.' examples: - citation subsection: anyOf: - type: string - type: 'null' title: Subsection description: The pincite your citation carried, e.g. `(h)(11)` for `26 U.S.C. § 1(h)(11)`. The WHOLE section is served; use `structured=true` on `/body` to address the subsection. examples: - (h)(11) type: object required: - input - actId - via title: SectionIdentifierResolution description: 'How the identifier you sent was matched, when it was not an exact act_id. Present only when the input did NOT match as sent. Absent (null) means the section is exactly the act_id in your request.' UsStatutesDivisionsResponse: properties: corpusType: type: string title: Corpustype description: The corpus being walked, echoed back from the request. examples: - USC state: anyOf: - type: string - type: 'null' title: State description: The jurisdiction, for state-scoped corpora. level: type: string title: Level description: 'Kind of children returned: `titles`, `chapters`, `parts`, `codes`, `articles`, or `sections`.' parentLabel: anyOf: - type: string - type: 'null' title: Parentlabel description: Human label for the container these divisions sit under. divisions: items: $ref: '#/components/schemas/UsDivisionNode' type: array title: Divisions description: The child divisions, in statutory (natural) order. count: type: integer title: Count description: Number of divisions returned. default: 0 nextCursor: anyOf: - type: string - type: 'null' title: Nextcursor description: 'Opaque token to resume this listing. Present only when `truncated` is true. Pass it back as `cursor` to get the next batch of sections in the same container, and keep going until it comes back null. Treat it as opaque: it encodes a storage position, and building one by hand will not work. One ordering caveat. `divisions` is sorted into statutory order WITHIN each response, and pages are walked in storage order, so concatenating pages does not give you one globally sorted list. The union of every page is the complete container; sort it yourself once you hold it all.' examples: - s~a3f1c2e0-55b1-4a7d-9d02-1f3b6c8e9a44 truncated: type: boolean title: Truncated description: 'True when this container held more sections than one call can walk, so `divisions` is a PREFIX of its contents rather than all of them. Check it before treating a listing as complete: the level that returns sections is bounded, and a container past that bound previously returned a short list that looked whole. When it is true, narrow the scope (drill into a chapter or part rather than a whole code), or page through it with `nextCursor`.' default: false examples: - false note: anyOf: - type: string - type: 'null' title: Note description: Why the result is empty, when it is. Absent on a normal result. An empty `divisions` with a note is an answer; without one it would be ambiguous between a bad identifier and a level this corpus does not store. examples: - New York statutes are organized by article, which this corpus does not index. processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 240.5 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0, and batch endpoints charge per item returned, so a partial result costs less than a full one.' default: 0.0 examples: - 1 type: object required: - corpusType - level title: UsStatutesDivisionsResponse description: Response for `GET /us/statutes/divisions`. ApiDetailError: properties: detail: type: string title: Detail description: 'Human-readable reason, safe to surface to an end user. Branch on the HTTP status rather than on this string: the wording is not part of the contract and may be reworded, but 401 (bad key), 402 (out of credits), 403 (missing scope), 404 (no such resource) and 429 (rate limited) are stable.' examples: - Insufficient API credits. errors: anyOf: - items: $ref: '#/components/schemas/ApiFieldError' type: array - type: 'null' title: Errors description: 'Present on 422 only: every field that failed validation.' type: object required: - detail title: ApiDetailError description: 'Error envelope the API actually returns. Every error (400/401/402/403/404/405/422/429/5xx) carries a `detail` string, e.g. `{"detail": "Insufficient API credits."}`, on every mount of the API. A 422 adds `errors`, one entry per rejected field. Some 404s add endpoint-specific diagnosis beside `detail` (the statutes section routes add `actId`, `reason` and `didYouMean`); treat unknown keys as optional.' SessionLawCitationCandidate: properties: sessionLawId: type: string title: Sessionlawid description: Permanent identifier. Pass it to `GET /us/session-laws/{sessionLawId}`. examples: - SSL_MN_2025R_G_Y2025_C1 citation: anyOf: - type: string - type: 'null' title: Citation description: Canonical citation for the act. examples: - CHAPTER 1--S.F.No. 1552 jurisdiction: type: string title: Jurisdiction description: Two-letter state code. examples: - mn session: $ref: '#/components/schemas/SessionLawSession' description: The session the law was enacted in. textStatus: type: string enum: - held - withheld - not_held - pending title: Textstatus description: '`held`: the text is served. `withheld`: the law is listed but its text is withheld, see the law itself for why. `not_held` and `pending`: no text yet.' examples: - held title: anyOf: - type: string - type: 'null' title: Title description: The act's title, as the publisher prints it (usually `An act relating to ...`). Null when none is printed. examples: - An act relating to agriculture; modifying financial reporting requirements for grain buyers; amending Minnesota Statutes 2024, section 223.17, subdivision 6. billNumber: anyOf: - type: string - type: 'null' title: Billnumber description: The bill the act originated as, as the publisher prints it. Null when none is printed. examples: - S.F.No. 1552 approvedDate: anyOf: - type: string format: date - type: 'null' title: Approveddate description: Date the governor (or the equivalent authority) approved the act, ISO 8601. Never an effective date. Null when none is printed. examples: - '2025-03-17' effectiveFirst: anyOf: - type: string format: date - type: 'null' title: Effectivefirst description: 'Earliest of the act''s effective dates we hold, ISO 8601. Null when we hold none: a date the publisher does not print, or prints as a relative rule, is not guessed. Read every date from `effectiveDates` on `GET /us/session-laws/{sessionLawId}`.' examples: - '2025-09-01' effectiveLast: anyOf: - type: string format: date - type: 'null' title: Effectivelast description: 'Latest of the act''s effective dates we hold, ISO 8601: equal to `effectiveFirst` when the act takes effect on one date. Null when we hold none.' examples: - '2025-09-01' enactmentOutcome: anyOf: - type: string - type: 'null' title: Enactmentoutcome description: 'How the measure became, or failed to become, law: `signed`, `became_law_without_signature`, `veto_overridden`, `line_item_veto` (signed with some items vetoed), `vetoed` and `pocket_veto` (not law), `not_presented`, `approved_by_voters`, or `unknown` when the publisher does not say.' examples: - signed sourceUrl: anyOf: - type: string - type: 'null' title: Sourceurl description: The government publisher's own URL for the act's text, so a citation answer links to the primary source. Null when we hold no text source from a government host. examples: - https://www.revisor.mn.gov/laws/2025/0/Session+Law/Chapter/1/ href: type: string title: Href description: Where to read the law, relative to the API host. examples: - /api/v1/us/session-laws/SSL_MN_2025R_G_Y2025_C1 isDefault: type: boolean title: Isdefault description: 'True for the publisher''s conventional reading of an ambiguous citation. Informational: no candidate is chosen for you.' default: false examples: - false type: object required: - sessionLawId - jurisdiction - session - textStatus - href title: SessionLawCitationCandidate description: One session law a citation names. BodyTable: properties: tableId: type: string title: Tableid examples: - t1 order: type: integer title: Order description: 1-based position among the section's tables. default: 0 caption: anyOf: - type: string - type: 'null' title: Caption description: The table's caption, when it has one. rows: type: integer title: Rows description: Row count, header rows included. default: 0 cols: type: integer title: Cols description: Column count. default: 0 type: object required: - tableId title: BodyTable description: One table inside a rendered section body. StatuteDefinitionTerm: properties: term: type: string title: Term description: The defined term, as the statute writes it. examples: - person definition: type: string title: Definition description: What the statute says the term means, verbatim. marker: anyOf: - type: string - type: 'null' title: Marker description: The enumerator the definition sits under (e.g. `1`, `a`, `A`), where the source paragraph-numbers its definitions. examples: - '1' type: object required: - term - definition title: StatuteDefinitionTerm description: One defined term drawn from a chapter's definitions section. StatuteChangeEvent: properties: id: type: integer title: Id description: Stable identifier for this change. Monotonic across the whole corpus, so it doubles as the paging cursor, and it is the id the board-watch diff endpoint takes. examples: - 91 changeKind: type: string enum: - added - amended - removed title: Changekind description: '`added`: the section first appeared. `amended`: its text was replaced. `removed`: it disappeared from a full refresh of the source, which usually means repealed or renumbered. Note that a narrow, section-scoped refresh cannot observe a removal, so absence of a `removed` event is not proof a section still stands.' examples: - amended detectedAt: type: string title: Detectedat description: 'When our refresh OBSERVED the change, ISO-8601 UTC. An upper bound on the effective date, never the effective date itself: a source published weekly is seen up to a week late. Do not present it to an end user as when the law changed.' examples: - '2026-08-07T04:10:00Z' citation: anyOf: - type: string - type: 'null' title: Citation description: The section's citation as recorded at capture time. Null for corpora that do not carry one; `displayCitation` always has something readable. examples: - 21 CFR 314.50 displayCitation: anyOf: - type: string - type: 'null' title: Displaycitation description: 'Always human-readable: the stored citation, or one derived from the section''s hierarchy when the source recorded none. Use this for display and `citation` only when you specifically need what capture recorded.' examples: - 21 C.F.R. § 314.50 title: anyOf: - type: string - type: 'null' title: Title description: The section heading as of this change. Null where the source carries none. examples: - Content and format of an NDA hasDiff: type: boolean title: Hasdiff description: 'Whether the superseded text was captured, so a before/after diff can be rendered for this event. Always false for `added` (there is no before). Retrieving the diff itself needs a board watch covering this source: `GET /boards/watches/{watchId}/changes/{changeId}/diff`.' default: false corpusType: type: string title: Corpustype description: The board this change was captured on, e.g. `cfr`, `usc`, `state_regulation`. This is the value to subscribe to if you want alerts on future changes to this section. examples: - cfr state: anyOf: - type: string - type: 'null' title: State description: Two-letter state code for state corpora, null for federal ones. examples: - wa type: object required: - id - changeKind - detectedAt - corpusType title: StatuteChangeEvent description: 'One time this section was added, amended, or removed by its publisher. An OBSERVED change, not a publisher-declared one. It exists because a refresh of the source corpus found this section''s text different from the copy we already held, so it carries the date WE detected it, which is at or after the date the change took effect. For the publisher''s own effective and amendment dates, read `amendmentHistory` on the section itself.' StatuteSectionNotFoundError: properties: detail: type: string title: Detail description: Human-readable reason, safe to show a user. Branch on `reason`, not on this string. examples: - Section not found. This id does not exist, but the section does, ... actId: type: string title: Actid description: The identifier exactly as you sent it. reason: type: string enum: - assembled_id - unresolved_citation - not_in_corpus - missing_act_id - state_session_law title: Reason description: '`assembled_id` -- the id does not exist but the section does, under the ids in `didYouMean` (usually an id built by hand from a citation, or sent in the wrong case). `unresolved_citation` -- the input is a citation and resolves to nothing we hold; check it with `/us/statutes/resolve`. `not_in_corpus` -- nothing matched. `missing_act_id` -- the URL left the id out, so an endpoint name (`body`, `changes`, ...) sits where the id goes; `detail` names the path you meant. Never charged. `state_session_law` -- the id starts `SSL_`: it names a STATE session law (an act as enacted), which is not a code section; read it at `GET /us/session-laws/{sessionLawId}`.' examples: - assembled_id didYouMean: items: type: string type: array title: Didyoumean description: Real act_ids for the section your id pointed at, best first, at most 3. examples: - - USC_T26_C1_S1 type: object required: - detail - actId - reason title: StatuteSectionNotFoundError description: The 404 from any `/us/statutes/section/{act_id}/...` route. SessionLawDate: properties: kind: anyOf: - type: string - type: 'null' title: Kind description: 'What the date is, on `otherDates`: `approved`, `filed` or `other` (`kindAsPrinted` carries the publisher''s label for `other`). Null on `effectiveDates`, where every entry is an effective date.' examples: - approved - other - null date: anyOf: - type: string format: date - type: 'null' title: Date description: The date as ISO 8601 when the printed text could be read as one. Null when the publisher's wording is not a calendar date. examples: - '2025-03-17' dateAsPrinted: anyOf: - type: string - type: 'null' title: Dateasprinted description: The date exactly as the publisher wrote it, including any time of day. examples: - March 17, 2025, 10:54 a.m. - 06/20/25 kindAsPrinted: anyOf: - type: string - type: 'null' title: Kindasprinted description: The publisher's own label for what the date is, when it prints one. examples: - Presentment Date - Presented to the governor scopeAsPrinted: anyOf: - type: string - type: 'null' title: Scopeasprinted description: 'What the date applies to when it is not the whole act, as printed: an act can take effect in parts. Null when the date applies to the act as a whole.' examples: - CCP §871.20. - null type: object title: SessionLawDate description: One printed date on a session law. StatuteBodyResponse: properties: actId: type: string title: Actid description: The act_id of the section served. Equal to your request unless `resolvedFrom` is set, in which case it is the id your citation or cleaned-up input resolved to. examples: - USC_T42_C21_S1983 html: anyOf: - type: string - type: 'null' title: Html description: 'The section text as HTML. When `source` is `r2_render` this is our structured rendering of the publisher''s source: real `` elements (with `
`, `colspan` and `rowspan`) and `
` / `` elements at the position the publisher prints them, with images hosted on `statutes-us.vaquill.ai`. When `source` is `r2_s3` this is the publisher''s own markup (tables, paragraph structure, history lines), cut to the section''s own content where we recognise the publisher''s page layout. For any other `source` the text was not held as per-section HTML, and `html` carries the same text as `plain` with no markup.' plain: anyOf: - type: string - type: 'null' title: Plain description: Plain text version. source: anyOf: - type: string - type: 'null' title: Source description: 'Which copy the text came from: `r2_render` (our structured rendering, carrying `markdown`, `tables` and `figures`), `r2_s3` (the publisher''s page for this section), `r2_text` (our per-section text extraction), `qdrant_reconstructed` (reassembled from indexed passages), and on `asOf` requests `stored_edition` or `corpus_change_history`. A storage identifier, not a citation: cite `sourceUrl`.' sourceUrl: anyOf: - type: string - type: 'null' title: Sourceurl description: 'Where this text was published by the government, so the bytes you were served can be cited and verified against the official record. Null when we hold no publishable link for the section: a third-party compiler is never served here, and an absent link is the correct answer in that case. `source` is a storage identifier and is NOT a citation.' examples: - https://www.govinfo.gov/content/pkg/USCODE-2024-title17/html/USCODE-2024-title17-chap1-sec107.htm content: anyOf: - type: string - type: 'null' title: Content description: 'The OPERATIVE TEXT of the section, with the source credit and the notes apparatus removed. This is the law; `plain` is the law plus everything the publisher prints around it. Populated for **United States Code** sections, where GPO delimits the fields in the granule it publishes. Null for CFR and for state corpora, whose sources carry no equivalent structure -- null means "we cannot split this reliably", never "this section is empty", and `plain` is still the whole body. Worth using if you feed sections to a model: the operative text is a median 46% of `plain` across USC and as little as 3.4% (`17 U.S.C. § 107`, where nearly all of the body is committee reports and amendment notes). A model handed the full body can quote a 1992 amendment note as the law in force.' examples: - Notwithstanding the provisions of sections 106 and 106A, the fair use... sourceCredit: anyOf: - type: string - type: 'null' title: Sourcecredit description: 'The publisher''s credit line for the section, e.g. `(Pub. L. 94-553, title I, §101, Oct. 19, 1976, 90 Stat. 2546; ...)`. Split out of the body rather than left inside it. The same value is also on `GET /us/statutes/section/{actId}` as `sourceCredit`; it is repeated here so a caller fetching the text does not need a second call to know what enacted it.' examples: - (Pub. L. 94-553, title I, §101, Oct. 19, 1976, 90 Stat. 2546) notes: anyOf: - type: string - type: 'null' title: Notes description: 'The notes apparatus the publisher prints after the section: Historical and Revision Notes, committee reports, Editorial Notes (codification and amendments), Statutory Notes and Related Subsidiaries (effective dates), and any guidelines reprinted by the editors. Kept, not discarded: it is the legislative history, and it is the reason a section''s body can be twenty times the length of the law. It is simply NOT the operative text, so it is served as its own field. Null where we cannot split the body. Also null, deliberately, when you pass `format=operative`: that is the one format that asks us to leave the apparatus off the wire. Null there means "not sent", not "none exists" -- the same request at `format=content` returns it.' examples: - 'Historical and Revision Notes house report no. 94–1476...' available: type: boolean title: Available description: Whether full text is available. default: true note: anyOf: - type: string - type: 'null' title: Note description: Note if text is unavailable. markdown: anyOf: - type: string - type: 'null' title: Markdown description: 'The body as GitHub-flavoured Markdown. When `source` is `r2_render` this is the structured rendering: tables as GFM pipe tables (a caption line above, footnotes below, multi-level headers joined as `Parent / Child`) and figures as `![alt](url)` at their position in the text. Returned only when `format` is `all` or `markdown`, not on the default `both`, where it would be a third full copy. For a section with no structured rendering, `markdown` is null unless you pass `structured=true`, in which case it is the body as nested Markdown lists (the pre-existing behaviour). When both exist the structured rendering wins, because it is the one that keeps the tables; `subsections` is returned either way.' tables: anyOf: - items: $ref: '#/components/schemas/BodyTable' type: array - type: 'null' title: Tables description: 'The tables in the body, in document order, with their size. An empty list means the section has none. Null means not known: the section''s corpus has no structured rendering yet, so a table may still be present in `html`.' figures: anyOf: - items: $ref: '#/components/schemas/BodyFigure' type: array - type: 'null' title: Figures description: 'The figures, equations and form images in the body, in document order, with hosted image urls and each one''s offset into `markdown` and `plain`. An empty list means the section has none. Null means not known: the section''s corpus has no structured rendering yet.' hasTables: anyOf: - type: boolean - type: 'null' title: Hastables description: True when the body contains at least one table, false when it contains none. Null when not known, because the section's corpus has no structured rendering yet. hasFigures: anyOf: - type: boolean - type: 'null' title: Hasfigures description: True when the body contains at least one figure, equation or form image, false when it contains none. Null when not known, because the section's corpus has no structured rendering yet. subsections: anyOf: - items: $ref: '#/components/schemas/SubsectionNode' type: array - type: 'null' title: Subsections description: The section broken into its lettered and numbered subsections, nested as they appear in the text. Use it to quote or link a single clause rather than the whole section. Present only when `structured=true`. asOf: anyOf: - $ref: '#/components/schemas/AsOfProvenance' - type: 'null' description: Present only when the request passed `asOf`. Says WHICH version of the section you are holding and how far the evidence for it goes. Read `isBounded` before treating the text as the law on that date. resolvedFrom: anyOf: - $ref: '#/components/schemas/SectionIdentifierResolution' - type: 'null' description: 'Null when the section is exactly the act_id you sent. Otherwise how your input was matched: a citation, or an act_id with transport damage (whitespace, quotes, a trailing period) removed.' processingTimeMs: type: number title: Processingtimems description: Server-side time for this request in milliseconds, excluding network transit. Useful for spotting a slow query; not billed on. default: 0.0 examples: - 240.5 creditsConsumed: type: number title: Creditsconsumed description: 'Credits actually charged for this call. Read it rather than assuming the list price: failed and refunded work bills 0, and batch endpoints charge per item returned, so a partial result costs less than a full one.' default: 0.0 examples: - 4 type: object required: - actId title: StatuteBodyResponse description: Full text of a statute section in HTML and/or plain text. StatuteSectionsNotFoundDetail: properties: actId: type: string title: Actid description: The identifier from your request that did not resolve. reason: type: string title: Reason description: '`assembled_id` -- this id does not exist, but the section does, under the ids in `didYouMean`. Almost always an id built from a citation: the chapter/article/part segments are not derivable from one, so take ids from a `/us/statutes/search` response instead. `unresolved_citation` -- the input is a citation and resolves to nothing we hold; check its form with `/us/statutes/resolve`. `not_in_corpus` -- nothing matching was found. Either the id is malformed beyond recovery, or the section is genuinely absent; check `/us/statutes/coverage` for the jurisdiction. `state_session_law` -- the id starts `SSL_`: a state session law (an act as enacted), read at `GET /us/session-laws/{sessionLawId}`, not a code section.' examples: - assembled_id didYouMean: items: type: string type: array title: Didyoumean description: Real act_ids carrying the section number your id pointed at, best match first, at most 3. Empty when nothing matched. Send one of these back to `/us/statutes/sections` to get the section. examples: - - STATE_CO_T38_A12_P1_S38-12-103 type: object required: - actId - reason title: StatuteSectionsNotFoundDetail description: 'Why one `actId` missed, and what to send instead. A bare id in `notFound` is ambiguous between the two things a caller most needs to tell apart: an id they built by hand that never existed, and a real section we do not hold. Read as the latter, the first one looks like missing coverage, which is how a working integration gets abandoned.' StatuteCountRequest: properties: corpusType: anyOf: - type: string enum: - USC - CFR - STATE - CONSTITUTION - FEDERAL_RULES - FEDERAL_LOCAL_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 - items: type: string enum: - USC - CFR - STATE - CONSTITUTION - FEDERAL_RULES - FEDERAL_LOCAL_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: array - type: 'null' title: Corpustype description: Corpus to count, single or list. Omit to count every corpus. examples: - REGULATION state: anyOf: - type: string enum: - federal - al - ak - az - ar - ca - co - ct - de - dc - fl - ga - gu - hi - id - il - in - ia - ks - ky - la - me - md - ma - mi - mn - ms - mo - mt - ne - nv - nh - nj - nm - ny - nc - nd - mp - oh - ok - or - pa - pr - ri - sc - sd - tn - tx - ut - vt - va - wa - wv - wi - wy - items: type: string enum: - federal - al - ak - az - ar - ca - co - ct - de - dc - fl - ga - gu - hi - id - il - in - ia - ks - ky - la - me - md - ma - mi - mn - ms - mo - mt - ne - nv - nh - nj - nm - ny - nc - nd - mp - oh - ok - or - pa - pr - ri - sc - sd - tn - tx - ut - vt - va - wa - wv - wi - wy type: array - type: 'null' title: State description: Two-letter jurisdiction code or `federal`, single or list. examples: - tx code: anyOf: - type: string - items: type: string type: array - type: 'null' title: Code 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`. examples: - tx_26 article: anyOf: - type: string - items: type: string type: array - type: 'null' title: Article 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`. examples: - Amendment XIV titleNumber: anyOf: - type: integer minimum: 1.0 - type: 'null' title: Titlenumber description: USC or CFR title number. examples: - 42 chapter: anyOf: - type: string - items: type: string type: array - type: 'null' title: Chapter description: Chapter identifier. Pair with `titleNumber` or `code`. examples: - '554' part: anyOf: - type: string - items: type: string type: array - type: 'null' title: Part description: CFR part identifier. Pair with `titleNumber`. examples: - '240' actStatus: anyOf: - type: string 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 - items: type: string 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 type: array - type: 'null' title: Actstatus description: Count only sections carrying this status. examples: - repealed excludeRepealed: type: boolean title: Excluderepealed description: Exclude sections whose status is affirmatively dead. A section with no recorded status is KEPT, because a missing status is not evidence of repeal. The US Code is served from a stored annual edition, so a section repealed after it closed is counted here; see the same field on `/search` for the measurement. default: false examples: - true additionalProperties: false type: object title: StatuteCountRequest description: 'Filter-only section count. See `POST /us/statutes/count`. Deliberately takes NO `query`. A count of "sections matching this query" does not exist: ranking runs over a bounded window, so the honest answer to that question is the window size rather than a corpus figure. This counts a SCOPE, which is exact, cheap, and the number an acquisition job actually needs before it starts walking.' securitySchemes: ApiKeyAuth: type: http scheme: bearer bearerFormat: vq_key_* description: 'API key issued from the developer dashboard. Pass as `Authorization: Bearer vq_key_...` (preferred).' ApiKeyHeader: type: apiKey in: header name: X-API-Key description: 'The same API key as a bare header value: `X-API-Key: vq_key_...`. Equivalent to the Bearer form.' ApiKeyQuery: type: apiKey in: query name: api_key description: 'The same API key as a query parameter: `?api_key=vq_key_...`. Use only where you cannot set a header. A URL can end up in proxy and server logs, browser history and shared links, so prefer either header form, and rotate a key that has leaked.' externalDocs: description: Full API Reference url: https://www.vaquill.ai/docs/api-reference/ x-refined-from: - vaquill-ai-openapi.json - vaquill-ai-openapi.yml