{"openapi":"3.1.0","info":{"title":"IndiaCode Statute API","version":"1.5.0","summary":"Central and State Acts of India, their subordinate legislation, and the reported judgments that construe them.","description":"Keyless and read-only. Every list endpoint returns the same envelope (`total`, `count`, `limit`, `offset`, `next`), no parameter is ever silently ignored, and every response including errors carries `Access-Control-Allow-Origin: *`.\n\nSubstring filters (`q`, `ministry`, and the rest) match on the first 48 characters of the value: the query engine refuses a longer LIKE pattern, and a truncated substring can only widen the match, never miss a row.\n\nSection text is also available as Markdown and Akoma Ntoso XML at `/{act}/section/{number}.md` and `.xml` — note those paths sit at the site root, not under `/api/v1`.","license":{"name":"Published with commentary and other original matter under s.52(1)(q)(ii), Copyright Act 1957","url":"https://indiacode.ecourtsindia.com/about/"}},"servers":[{"url":"https://indiacode.ecourtsindia.com"}],"tags":[{"name":"Acts","description":"Primary legislation and its provisions."},{"name":"Instruments","description":"Rules, notifications, circulars, regulations and orders."},{"name":"Judgments","description":"Reported case law, linked to the provisions it decides."},{"name":"Reference","description":"Crosswalks, offence classification, forms, and corpus metadata."}],"paths":{"/api/v1/meta":{"get":{"tags":["Reference"],"operationId":"getMeta","summary":"Corpus counts, enum values, and page ceilings.","description":"Call this first: it tells you every valid enum value and how big each collection is.","responses":{"200":{"description":"Corpus metadata."}}}},"/api/v1/acts":{"get":{"tags":["Acts"],"operationId":"listActs","summary":"List and filter Acts.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free text over title and id, and short codes such as `bns` or `ni act` via the alias table. Also matches a citation like `45 of 2023`."},{"name":"ministry","in":"query","required":false,"schema":{"type":"string"},"description":"Ministry name, exact or substring."},{"name":"year","in":"query","schema":{"type":"integer"},"description":"The year the Act was numbered in. Not always the year in the short title: an Act passed on a Bill of the previous session carries the earlier year in its name and the later one here."},{"name":"jurisdiction","in":"query","required":false,"schema":{"type":"string"},"description":"`central`, `state`, or a State slug from /api/v1/meta."},{"name":"in_force","in":"query","schema":{"type":"boolean"},"description":"Restrict to Acts in force."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":1000},"description":"Rows per page. Capped at 1000. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","acts"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"acts":{"type":"array","items":{"$ref":"#/components/schemas/Act"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/acts/{act}":{"get":{"tags":["Acts"],"operationId":"getAct","summary":"One Act with its table of provisions.","parameters":[{"name":"act","in":"path","required":true,"schema":{"type":"string"},"example":"bns"}],"responses":{"200":{"description":"The Act and its sections."},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/acts/{act}/xrefs":{"get":{"tags":["Acts"],"operationId":"listXrefs","summary":"Cross-references this Act makes, or references to it.","parameters":[{"name":"act","in":"path","required":true,"schema":{"type":"string"},"example":"bns"},{"name":"direction","in":"query","required":false,"schema":{"type":"string","enum":["out","in"]},"description":"`out` for references this Act makes (default), `in` for references to it."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":500},"description":"Rows per page. Capped at 500. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","xrefs"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"xrefs":{"type":"array","items":{"$ref":"#/components/schemas/Xref"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/{act}/section/{number}":{"get":{"tags":["Acts"],"operationId":"getSection","summary":"One provision, with everything that attaches to it.","description":"Text and HTML, the BNSS offence classification where there is one, the subordinate instruments made under it, the reported judgments that construe it, and its counterpart across a statutory transition.","parameters":[{"name":"act","in":"path","required":true,"schema":{"type":"string"},"example":"bns"},{"name":"number","in":"path","required":true,"schema":{"type":"string"},"example":"103","description":"A string: section numbers carry letters, as in 498A."}],"responses":{"200":{"description":"The provision."},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/{act}/article/{number}":{"get":{"tags":["Acts"],"operationId":"getArticle","summary":"One article. The Constitution has articles, not sections.","description":"The same handler as `/section/{number}`, and the canonical address for an Act whose `unit` is `article` — which is the Constitution and nothing else. Both spellings are accepted on every Act, but only one is canonical for a given Act and the other redirects to it: `/constitution-of-india/section/21` 301s to `/article/21`, and `/bns/article/103` 301s to `/section/103`. The response carries `unit`, and repeats the provision under an `article` key where that is the word the Act uses; `section` is present either way.","parameters":[{"name":"act","in":"path","required":true,"schema":{"type":"string"},"example":"constitution-of-india"},{"name":"number","in":"path","required":true,"schema":{"type":"string"},"example":"21"}],"responses":{"200":{"description":"The provision."},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/search":{"get":{"tags":["Acts"],"operationId":"search","summary":"Full-text search over Acts and provisions.","description":"Ranked, so `offset + limit` cannot exceed 100: past that the query wants narrowing rather than paging, and the bulk datasets exist for scanning. `total` is how many matched, not how many came back.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"example":"bns 103"},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["act","section","rule","listed"],"example":"act,listed"},"description":"Restrict to one or more kinds of hit, comma-separated: `kind=act,listed`. Plurals resolve. Subordinate legislation is not in this index — search it at `/api/v1/instruments?text=`."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100},"description":"Rows per page. Capped at 100. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","results"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"results":{"type":"array","items":{"$ref":"#/components/schemas/SearchHit"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/instruments":{"get":{"tags":["Instruments"],"operationId":"listInstruments","summary":"Subordinate legislation.","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string"},"description":"Instrument kind. Singular and plural both resolve; see /api/v1/meta for the list."},{"name":"act","in":"query","required":false,"schema":{"type":"string"},"description":"Act id the instrument is made under, for example `environment-act`."},{"name":"act_basis","in":"query","required":false,"schema":{"type":"string","enum":["recorded","inferred"]},"description":"How the tie to the parent Act was established."},{"name":"section","in":"query","required":false,"schema":{"type":"string"},"description":"Provision it is made under. Requires `act`."},{"name":"jurisdiction","in":"query","required":false,"schema":{"type":"string"},"description":"CENTRAL or a State name as stored."},{"name":"year","in":"query","schema":{"type":"integer"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Substring of the title."},{"name":"text","in":"query","required":false,"schema":{"type":"string"},"description":"Full-text query over the body of the instrument, not its title. All terms must appear, and each matches as a prefix. Hits carry a `snippet`. Composes with every other filter."},{"name":"has_text","in":"query","schema":{"type":"boolean"},"description":"Only instruments whose document carried extractable English text."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":500},"description":"Rows per page. Capped at 500. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","instruments"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"instruments":{"type":"array","items":{"$ref":"#/components/schemas/Instrument"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/instruments/{key}":{"get":{"tags":["Instruments"],"operationId":"getInstrument","summary":"One instrument, with its text and the provisions it rests on.","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{8}$"}}],"responses":{"200":{"description":"The instrument."},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/judgments":{"get":{"tags":["Judgments"],"operationId":"listJudgments","summary":"Reported judgments, by provision or by CNR.","description":"`?act=&section=` gives the case law on a provision. `?cnr=` gives every provision one judgment is authority on. Neither lists judgments newest first.","parameters":[{"name":"act","in":"query","required":false,"schema":{"type":"string"},"description":"Act id. Use with `section`."},{"name":"section","in":"query","required":false,"schema":{"type":"string"},"description":"Provision number. Requires `act`."},{"name":"cnr","in":"query","required":false,"schema":{"type":"string"},"description":"Case Number Record identifier."},{"name":"court","in":"query","required":false,"schema":{"type":"string","enum":["SC","HC","DC"]},"description":"Court level."},{"name":"precedential","in":"query","required":false,"schema":{"type":"string"},"description":"Substring of the precedential value, e.g. `Binding`."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100},"description":"Rows per page. Capped at 100. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of judgments; or, with `cnr`, a page of the provisions that one judgment is authority on. Both use the standard envelope, and the collection is named `judgments` or `decides` accordingly.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/JudgmentList"},{"$ref":"#/components/schemas/DecidesList"}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/mappings":{"get":{"tags":["Reference"],"operationId":"listMappings","summary":"Correspondence across a statutory transition.","description":"IPC to BNS, CrPC to BNSS, Evidence Act to BSA, and the Income-tax Act 1961 to 2025. Symmetric: ask about either code and you get the other. `relation: none` means the provision has no counterpart, and `alternatives` holds the nearest text found.","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"Act id to read from, for example `ipc` or `bns`."},{"name":"section","in":"query","required":false,"schema":{"type":"string"},"description":"Provision number. Requires `from`."},{"name":"pair","in":"query","required":false,"schema":{"type":"string"},"description":"A whole correspondence table, for example `ipc-bns`."},{"name":"relation","in":"query","required":false,"schema":{"type":"string","enum":["official","official-none","near-identical","close","weak","none"]},"description":"Filter by how the correspondence was established."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":500},"description":"Rows per page. Capped at 500. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","mappings"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/Mapping"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/offences":{"get":{"tags":["Reference"],"operationId":"listOffences","summary":"BNSS First Schedule classification of BNS offences.","parameters":[{"name":"section","in":"query","required":false,"schema":{"type":"string"},"description":"BNS section number."},{"name":"cognizable","in":"query","required":false,"schema":{"type":"string"},"description":"Substring, e.g. `Cognizable` or `Non-cognizable`."},{"name":"bailable","in":"query","required":false,"schema":{"type":"string"},"description":"Substring, e.g. `Bailable` or `Non-bailable`."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":500},"description":"Rows per page. Capped at 500. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","offences"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"offences":{"type":"array","items":{"$ref":"#/components/schemas/Offence"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/forms":{"get":{"tags":["Reference"],"operationId":"listForms","summary":"Prescribed income-tax forms.","parameters":[{"name":"rules","in":"query","required":false,"schema":{"type":"string"},"description":"Rule set year, `1962` or `2026`."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Substring of the form number or description."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":600},"description":"Rows per page. Capped at 600. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","forms"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"forms":{"type":"array","items":{"$ref":"#/components/schemas/Form"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/cpc/schedule":{"get":{"tags":["Acts"],"operationId":"listCpcOrders","summary":"The First Schedule to the Code of Civil Procedure: its 58 Orders.","description":"The Code keeps its procedure in a Schedule rather than in its sections. `complete` is false where the reconciliation left an Order a Rule short: India Code records no tie between a Rule and its Order, so it is recovered from the Government’s consolidated PDF.","responses":{"200":{"description":"The Orders."}}}},"/api/v1/cpc/order/{order}":{"get":{"tags":["Acts"],"operationId":"getCpcOrder","summary":"One Order of the First Schedule, with its Rules.","parameters":[{"name":"order","in":"path","required":true,"schema":{"type":"string"},"description":"The numeral or the arabic form: `vii` and `7` both work. Order XI occurs twice, the Commercial Division’s being `xi-2`."}],"responses":{"200":{"description":"The Order and its Rules."},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/cpc/order/{order}/rule/{rule}":{"get":{"tags":["Acts"],"operationId":"getCpcRule","summary":"One Rule of the First Schedule, with its text.","parameters":[{"name":"order","in":"path","required":true,"schema":{"type":"string"}},{"name":"rule","in":"path","required":true,"schema":{"type":"string"},"description":"Rule number, e.g. `11` or `6A`."}],"responses":{"200":{"description":"The Rule."},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/listed-acts":{"get":{"tags":["Acts"],"operationId":"listListedActs","summary":"State Acts India Code lists and publishes no sections for.","description":"The 8,351 Acts held on India Code as a record and a scanned document. No text is served: the extracted text of those scans is searchable on this site but is not reliable enough to set out as the law, so each row links to the Government’s own document instead.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Substring of the title."},{"name":"jurisdiction","in":"query","required":false,"schema":{"type":"string"},"description":"State or Union Territory name."},{"name":"year","in":"query","required":false,"schema":{"type":"string"},"description":"Year of the Act."},{"name":"central","in":"query","required":false,"schema":{"type":"string"},"description":"`1` for the Central Acts India Code files inside a State community, `0` for the State’s own."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":500},"description":"Rows per page. Capped at 500. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","acts"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"acts":{"type":"array","items":{"$ref":"#/components/schemas/ListedAct"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/unenforced":{"get":{"tags":["Reference"],"operationId":"listUnenforced","summary":"Acts on the statute book that are not operating.","description":"Neither group is repealed. `not-enforced` was passed and never brought into force; `spent` operated and no longer does.","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string"},"description":"Either `not-enforced` or `spent`."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":200},"description":"Rows per page. Capped at 200. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","acts"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"acts":{"type":"array","items":{"$ref":"#/components/schemas/UnenforcedAct"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/repeals":{"get":{"tags":["Reference"],"operationId":"listRepeals","summary":"Repealed Acts, as India Code lists them.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Substring of the title."},{"name":"year","in":"query","required":false,"schema":{"type":"string"},"description":"Year of the Act."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":500},"description":"Rows per page. Capped at 500. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","repeals"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"repeals":{"type":"array","items":{"$ref":"#/components/schemas/Repeal"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/ordinances":{"get":{"tags":["Reference"],"operationId":"listOrdinances","summary":"Ordinances, and the Act each concerns.","description":"`act` and `relation` are our reading of the ordinance’s own title. India Code records no parent for any of them.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Substring of the title."},{"name":"year","in":"query","required":false,"schema":{"type":"string"},"description":"Year of the ordinance."},{"name":"act","in":"query","required":false,"schema":{"type":"string"},"description":"Act id the ordinance concerns."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":500},"description":"Rows per page. Capped at 500. `limit=0` returns `total` with no rows, which is how you ask for a count."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0},"description":"Rows to skip. Follow `next` in the response instead where you can."}],"responses":{"200":{"description":"A page of results.","content":{"application/json":{"schema":{"type":"object","required":["total","count","limit","offset","next","ordinances"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer","description":"Rows in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"URL of the next page, or null at the end."},"ordinances":{"type":"array","items":{"$ref":"#/components/schemas/Ordinance"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/api/v1/subjects":{"get":{"tags":["Reference"],"operationId":"listSubjects","summary":"The subject shelves, and how many Acts are on each.","description":"Assigned by a rules-based classifier over the short title, with the Ministry as a weaker second signal. Not an official taxonomy.","responses":{"200":{"description":"The subjects."}}}},"/api/v1/jurisdictions":{"get":{"tags":["Reference"],"operationId":"listJurisdictions","summary":"Every jurisdiction, with what the source holds against what we publish.","description":"`acts_in_source` is what India Code lists; `acts_published` is what carries section-level text here. The difference is the source’s, not ours, and the two numbers are given side by side for that reason.","responses":{"200":{"description":"The jurisdictions."}}}},"/{act}/section/{number}.md":{"get":{"tags":["Acts"],"operationId":"getSectionMarkdown","summary":"One provision as Markdown, for LLM and document pipelines.","parameters":[{"name":"act","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Markdown.","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/{act}/section/{number}.xml":{"get":{"tags":["Acts"],"operationId":"getSectionAkn","summary":"One provision as Akoma Ntoso (LegalDocML).","parameters":[{"name":"act","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Akoma Ntoso XML.","content":{"application/akn+xml":{"schema":{"type":"string"}}}}}}},"/{act}/article/{number}.md":{"get":{"tags":["Acts"],"operationId":"getArticleMarkdown","summary":"One article of the Constitution as Markdown.","parameters":[{"name":"act","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Markdown.","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/{act}/article/{number}.xml":{"get":{"tags":["Acts"],"operationId":"getArticleAkn","summary":"One article of the Constitution as Akoma Ntoso (LegalDocML).","parameters":[{"name":"act","in":"path","required":true,"schema":{"type":"string"}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Akoma Ntoso XML.","content":{"application/akn+xml":{"schema":{"type":"string"}}}}}}},"/cpc/order/{order}/rule/{number}.md":{"get":{"tags":["CPC"],"operationId":"getRuleMarkdown","summary":"One Rule of the First Schedule as Markdown.","parameters":[{"name":"order","in":"path","required":true,"schema":{"type":"string"},"description":"Roman or arabic: `vii` or `7`."},{"name":"number","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Markdown.","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/cpc/order/{order}/rule/{number}.xml":{"get":{"tags":["CPC"],"operationId":"getRuleAkn","summary":"One Rule of the First Schedule as Akoma Ntoso (LegalDocML).","parameters":[{"name":"order","in":"path","required":true,"schema":{"type":"string"},"description":"Roman or arabic: `vii` or `7`."},{"name":"number","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Akoma Ntoso XML.","content":{"application/akn+xml":{"schema":{"type":"string"}}}}}}}},"components":{"responses":{"BadRequest":{"description":"A parameter was unknown, or a value was not one this endpoint accepts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"No such record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Envelope":{"type":"object","required":["total","count","limit","offset","next"],"properties":{"total":{"type":"integer","description":"Size of the whole result set, not the page."},"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":["string","null"],"format":"uri","description":"Always followable. Null at the end of the collection, and null where the collection stops answering, as search does past its window."}}},"JudgmentList":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["judgments"],"properties":{"judgments":{"type":"array","items":{"$ref":"#/components/schemas/Judgment"}},"act":{"type":"string"},"section":{"type":"string"},"source":{"type":"string"}}}]},"DecidesList":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["cnr","decides"],"description":"Every provision one judgment is authority on.","properties":{"cnr":{"type":"string"},"title":{"type":["string","null"]},"date":{"type":["string","null"],"format":"date"},"url":{"type":["string","null"],"format":"uri"},"source":{"type":"string"},"decides":{"type":"array","items":{"type":"object","properties":{"act":{"type":"string"},"section":{"type":"string"},"applied":{"type":["string","null"]},"basis":{"type":"string","enum":["cited","successor"]},"decided_under":{"type":["string","null"]},"url":{"type":"string","format":"uri"}}}}}}]},"Error":{"type":"object","required":["error","message","docs"],"properties":{"error":{"type":"string","description":"A stable code to switch on.","enum":["not_found","no_such_endpoint","missing_q","unknown_param","unknown_kind","unknown_act","unknown_act_basis","unknown_court","unknown_jurisdiction","unknown_pair","unmapped_act","invalid_value","section_needs_act","section_needs_from","missing_filter","window_too_deep","unknown_subject","method_not_allowed"]},"message":{"type":"string","description":"A sentence for a developer."},"docs":{"type":"string","format":"uri"},"param":{"type":"string","description":"The offending parameter, where there is one."},"value":{"type":"string","description":"The value that was rejected."},"expected":{"type":"string","description":"The type expected, where the domain is not finite."},"allowed":{"type":"array","items":{"type":"string"},"description":"What would have been accepted."},"max_window":{"type":"integer","description":"How far search can be paged."}}},"Act":{"type":"object","properties":{"id":{"type":"string","description":"Stable short id, e.g. `bns`."},"short_title":{"type":"string"},"long_title":{"type":["string","null"]},"act_number":{"type":["string","null"]},"act_year":{"type":["integer","null"]},"enact_date":{"type":["string","null"],"format":"date"},"enforcement_date":{"type":["string","null"],"format":"date"},"ministry":{"type":["string","null"],"description":"null where the source records none."},"department":{"type":["string","null"]},"jurisdiction":{"type":["string","null"],"description":"`CENTRAL` or a State name."},"unit":{"type":"string","enum":["section","article"]},"section_count":{"type":"integer"},"in_force":{"type":"boolean"},"url":{"type":"string","format":"uri"}}},"SearchHit":{"type":"object","properties":{"kind":{"type":"string","enum":["section","act"]},"ref":{"type":"string","description":"`act/number` for a provision."},"title":{"type":"string"},"act":{"type":["string","null"]},"snippet":{"type":["string","null"],"description":"Matched text with `<mark>` around the hit."},"url":{"type":"string","format":"uri"}}},"Instrument":{"type":"object","properties":{"key":{"type":"string"},"kind":{"type":"string"},"title":{"type":"string"},"year":{"type":["integer","null"]},"jurisdiction":{"type":["string","null"]},"ministry":{"type":["string","null"]},"act":{"type":["string","null"],"description":"Parent Act id, or null where we have none."},"act_title":{"type":["string","null"]},"act_basis":{"type":["string","null"],"enum":["recorded","inferred",null],"description":"`recorded` is India Code’s own act_id. `inferred` is our reading of the instrument’s enacting formula, used only where the source recorded nothing; measured at 93.9% agreement against the instruments whose parent the source does record. Filter it out if you will not rest a filing on an inference."},"has_text":{"type":"boolean"},"snippet":{"type":["string","null"],"description":"Present only with `text`: the matched passage, with `<mark>` around the hit."},"source_document":{"type":["object","null"]},"url":{"type":"string","format":"uri"}}},"Judgment":{"type":"object","properties":{"cnr":{"type":"string"},"order":{"type":["string","null"]},"title":{"type":"string"},"court":{"type":"string","enum":["SC","HC","DC"]},"court_name":{"type":["string","null"]},"date":{"type":["string","null"],"format":"date"},"citation":{"type":["string","null"]},"precedential_value":{"type":["string","null"]},"court_marking":{"type":["string","null"]},"ratio_decidendi":{"type":["string","null"]},"applied_to_this_section":{"type":["string","null"]},"basis":{"type":"string","enum":["cited","successor"],"description":"`successor` where it was decided under the repealed provision carried forward."},"decided_under":{"type":["string","null"]},"url":{"type":["string","null"],"format":"uri"}}},"Mapping":{"type":"object","properties":{"from_act":{"type":"string"},"from_section":{"type":["string","null"]},"from_heading":{"type":["string","null"]},"to_act":{"type":"string"},"to_section":{"type":["string","null"],"description":"null where the provision has no counterpart."},"to_heading":{"type":["string","null"]},"relation":{"type":"string","enum":["official","official-none","near-identical","close","weak","none"],"description":"`official` and `official-none` come from the department’s own correspondence table; the rest are matched on text, strongest first. Either `none` variant means the provision has no counterpart."},"score":{"type":["number","null"]},"alternatives":{"type":"array","items":{"type":"object"}},"from_url":{"type":["string","null"],"format":"uri"},"to_url":{"type":["string","null"],"format":"uri"}}},"Xref":{"type":"object","properties":{"from":{"type":"object"},"to":{"type":"object"}}},"Offence":{"type":"object","properties":{"section":{"type":"string"},"provision":{"type":["string","null"]},"offence":{"type":"string"},"punishment":{"type":["string","null"]},"cognizable":{"type":["string","null"]},"bailable":{"type":["string","null"]},"triable_by":{"type":["string","null"]},"url":{"type":"string","format":"uri"}}},"Form":{"type":"object","properties":{"no":{"type":"string"},"rules":{"type":"string"},"description":{"type":["string","null"]},"pdf":{"type":["string","null"],"format":"uri"},"bytes":{"type":["integer","null"]}}},"ListedAct":{"type":"object","description":"A State Act India Code lists without sections. No text is served for it; `document` is the Government’s own copy.","properties":{"key":{"type":"string","description":"Stable id, India Code’s uuid prefix."},"title":{"type":"string"},"jurisdiction":{"type":"string"},"year":{"type":["integer","null"]},"act_number":{"type":["string","null"]},"ministry":{"type":["string","null"]},"central_act":{"type":["string","null"],"description":"Act id, where this row is a Central Act filed inside a State community. It is an Act of Parliament, not of that State."},"act_url":{"type":["string","null"],"format":"uri"},"document":{"type":["string","null"],"format":"uri"}}},"UnenforcedAct":{"type":"object","properties":{"title":{"type":"string"},"status":{"type":"string","enum":["not-enforced","spent"]},"year":{"type":["integer","null"]},"document":{"type":["string","null"],"format":"uri"}}},"Repeal":{"type":"object","properties":{"title":{"type":"string"},"cite":{"type":["string","null"]},"repealed_by":{"type":["string","null"]},"year":{"type":["integer","null"]},"document":{"type":["string","null"],"format":"uri"}}},"Ordinance":{"type":"object","properties":{"title":{"type":"string"},"year":{"type":["integer","null"]},"act":{"type":["string","null"],"description":"Act id, read from the ordinance’s title."},"relation":{"type":["string","null"],"enum":["amends","enacted_as",null]},"act_url":{"type":["string","null"],"format":"uri"},"document":{"type":["string","null"],"format":"uri"}}}}}}