Server definition
- Hash
- sha256:dfa0b8f5f0aa8626a6d8298c58614092e59caa8de1541580106fb078b4f751e6
- What it is
- What a remote MCP server returned when asked what it offers: 22 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Fetch one Indian enactment by the `id` from a `search` result, returning `{id, title, text, url, metadata}`. Also accepts a source URL or a bare path. NOTE: the India corpus serves an enactment as publisher links rather than inline text, so `text` carries the title and `metadata` carries the PDF, HTML and plain-text URLs to read. Prefer `get_act_text` if you can call it.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "fetch",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "The amendment history recorded against one enactment: substitutions, insertions and omissions, each with the amending Act and its effective date (e.g. 'Subs. by Act 22 of 2023, s. 44 (w.e.f. 13-11-2025)'). Use to check whether a provision still reads as enacted before relying on its text. An empty list means no amendment was recorded, NOT that the Act was never amended. Cost: 5 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_20326"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
},
"page": {
"default": 1,
"description": "1-based page number.",
"examples": [
1
],
"minimum": 1,
"type": "integer"
},
"pageSize": {
"default": 100,
"description": "Results per page (1-200).",
"examples": [
100
],
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"section": {
"anyOf": [
{
"maxLength": 40,
"pattern": "^[A-Za-z0-9().\\- ]{1,40}$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Keep only footnotes attached to this section, written exactly as the publisher does. Alphanumeric suffixes are part of the number, not a sub-provision: `498A` is one section, not section 498 clause A.",
"examples": [
"23"
]
},
"type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Action classes are returned in nominal form, but filters accept both nominal and stored verbal spellings. For example, `substitution` and `substituted` are both accepted.",
"enum": [
"substitution",
"insertion",
"omission",
"renumbering",
"addition",
"repeal",
"deletion",
"adaptation",
"amendment",
"note"
],
"examples": [
"substitution"
]
}
},
"required": [
"act_id"
],
"type": "object"
},
"name": "get_act_amendments",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Metadata for one provision, including its citation, position in the act, structural features and references. Use when identifying or inspecting a provision without fetching its wording. Text is not included. Use get_act_section_body to read it. wordCount covers all passages, and actsReferenced normalizes whitespace before deduplication so publisher line breaks do not create duplicate acts. Cost: 2 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_20326"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
},
"section_number": {
"description": "Section number as the publisher writes it, e.g. `302` or `498A`; an alphanumeric suffix is part of the number, not a sub-provision. Near spellings (`498-A`, `Sec. 302`, `302(1)`) are tried when the exact one misses. A miss is a 404 with the act's nearest numbers in `didYouMean`.",
"examples": [
"23"
],
"maxLength": 40,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]{1,40}$",
"type": "string"
}
},
"required": [
"act_id",
"section_number"
],
"type": "object"
},
"name": "get_act_section",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "The publisher's full text for one provision, taken directly from the act document without synthesized search headers. Use when reading, quoting or citing the provision's wording rather than its metadata. Amendments are not applied to this text. Check get_section_history for recorded changes before treating the wording as current law. Cost: 3 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_20326"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
},
"section_number": {
"description": "Section number as the publisher writes it, e.g. `302` or `498A`; an alphanumeric suffix is part of the number, not a sub-provision. Near spellings (`498-A`, `Sec. 302`, `302(1)`) are tried when the exact one misses. A miss is a 404 with the act's nearest numbers in `didYouMean`.",
"examples": [
"23"
],
"maxLength": 40,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]{1,40}$",
"type": "string"
}
},
"required": [
"act_id",
"section_number"
],
"type": "object"
},
"name": "get_act_section_body",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "An act's standing in three separate fields, publisherStatus for India Code's label, servedStatus for API availability and repealClaim for the publisher's sourced repeal record. Use when assessing whether an act remains law or why it is unavailable. These are not one verdict. A repealClaim does not verify that the repealing instrument was brought into force. Cost: 1 credit.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_20326"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
}
},
"required": [
"act_id"
],
"type": "object"
},
"name": "get_act_status",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "An act's table of contents, with chapters and parts where the publisher supplies them and provisions listed beneath. Use when locating a section or planning a traversal of the act. hasHierarchy is false for most acts, where nodes is a flat section list rather than an error. Section numbers sort numerically with alphabetic suffixes attached. Cost: 2 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_20326"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
}
},
"required": [
"act_id"
],
"type": "object"
},
"name": "get_act_structure",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Source links for one enactment: the plain-text, PDF and HTML renderings, plus how many sections it holds. Use when the user wants to read or cite the Act itself rather than a matched section. Cost: 3 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_20326"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
}
},
"required": [
"act_id"
],
"type": "object"
},
"name": "get_act_text",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Map a repealed Indian criminal code to the 2023 code that replaced it, section by section: IPC to BNS and CrPC to BNSS, in force from 1 July 2024. Pass either side ('ipc' or 'bns' both work). Use whenever a source, a pleading or the user cites an old section number, so you answer under the provision actually in force rather than the repealed one. 'iea'/'bsa' return 404 until that mapping lands. Cost: 1 credit.",
"inputSchema": {
"properties": {
"act_code": {
"description": "`ipc` and `bns` return the same mapping, as do `crpc` and `bnss`. Case-insensitive. `iea` and `bsa` are accepted but return 404 until their mapping is available.",
"enum": [
"ipc",
"crpc",
"iea",
"bns",
"bnss",
"bsa"
],
"examples": [
"ipc"
],
"pattern": "^(?i:ipc|crpc|iea|bns|bnss|bsa)$",
"type": "string"
}
},
"required": [
"act_code"
],
"type": "object"
},
"name": "get_corresponding_provisions",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "India corpus counts for acts and provisions, broken down by jurisdiction, regulator and status, plus coverage depth. Use when checking whether the corpus supports a question before searching or interpreting an empty result. The depth block distinguishes text coverage from much thinner parsed amendment coverage. actsClaimingAmendmentsWithoutEvents marks missing records, not an absence of amendments. Free.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_coverage",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "The account-wide spendable credit balance shared by the India and United States APIs. Use for pre-flight checks or low-balance alerts from an India workflow. This returns the same balance as get_credit_balance, not a separate India allowance. Check bySource before assuming credits will last. Subscription credits expire at the period end. Free.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "get_india_credit_balance",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Credit-to-price conversion and per-endpoint costs for the India legislation API, billed in US dollars. Use when estimating a workflow or comparing endpoint charges. Set region to US for United States primary-law pricing instead. Both surfaces use the same API key and account-wide credit balance. No authentication is required. ",
"inputSchema": {
"properties": {
"region": {
"anyOf": [
{
"enum": [
"US",
"IN"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Defaults to the jurisdiction of the documentation you are reading. If omitted, returns pricing only for that jurisdiction's endpoints, not prices across jurisdictions."
}
},
"required": [],
"type": "object"
},
"name": "get_pricing_in",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Recorded amendments to one provision, including the changing Act and section, effective dates and replaced wording where published. Use when tracing changes or checking whether published text reflects later amendments. An empty history can mean no changes or no parsed records, as coverage explains. Read appliedStatus on every event. Amendments are not applied to served text. Cost: 2 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_20326"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
},
"asOf": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Split the recorded amendments around a date (YYYY-MM-DD). Returns a timeline, never reconstructed text.",
"examples": [
"2019-03-12"
],
"format": "date"
},
"limit": {
"default": 100,
"description": "Events per page.",
"examples": [
50
],
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Zero-based offset.",
"examples": [
0
],
"minimum": 0,
"type": "integer"
},
"section_number": {
"description": "Section number as the publisher writes it, e.g. `302` or `498A`; an alphanumeric suffix is part of the number, not a sub-provision. Near spellings (`498-A`, `Sec. 302`, `302(1)`) are tried when the exact one misses. A miss is a 404 with the act's nearest numbers in `didYouMean`.",
"examples": [
"23"
],
"maxLength": 40,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]{1,40}$",
"type": "string"
}
},
"required": [
"act_id",
"section_number"
],
"type": "object"
},
"name": "get_section_history",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Paged inbound citations from provisions elsewhere in the corpus that name an act. Use when finding provisions that mention the act, rather than following its outbound references. Matching uses the act's title, not its identifier, so title variants and line breaks can be missed. Read matchBasis and treat results as a floor. total counts distinct citing provisions across all pages. Cost: 2 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_17068"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
},
"limit": {
"anyOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "DEPRECATED alias for `pageSize`, kept working for clients written against the original shape. Send one or the other, not both.",
"examples": [
25
]
},
"page": {
"default": 1,
"description": "1-based page number.",
"examples": [
1
],
"minimum": 1,
"type": "integer"
},
"pageSize": {
"anyOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows per page (1-100). Defaults to 25.",
"examples": [
25
]
}
},
"required": [
"act_id"
],
"type": "object"
},
"name": "india_act_cited_by",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Extracted defined terms and their defining provisions, plus a separate definitionSections list. Use when a question turns on an act's own meaning of a term. Extraction covers only a minority of acts, so an empty result does not mean the act defines nothing. definitionSections identifies provisions to read even without extracted terms. terms is paged, but definitionSections is not. Cost: 2 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_central_2114"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
},
"limit": {
"anyOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "DEPRECATED alias for `pageSize`, kept working for clients written against the original shape. Send one or the other, not both.",
"examples": [
25
]
},
"page": {
"default": 1,
"description": "1-based page number.",
"examples": [
1
],
"minimum": 1,
"type": "integer"
},
"pageSize": {
"anyOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows per page (1-100). Defaults to 25.",
"examples": [
25
]
}
},
"required": [
"act_id"
],
"type": "object"
},
"name": "india_act_definitions",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Paged rules, regulations, notifications and orders the publisher records as made under an act. Use when looking beyond the parent statute to its subordinate instruments. Matching uses the parent's title, not parent_act_id, which is an India Code identifier that does not address this corpus. Check matchBasis. total counts distinct instruments across all pages, while returned counts rows on this page. Cost: 2 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_17068"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
},
"limit": {
"anyOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "DEPRECATED alias for `pageSize`, kept working for clients written against the original shape. Send one or the other, not both.",
"examples": [
25
]
},
"page": {
"default": 1,
"description": "1-based page number.",
"examples": [
1
],
"minimum": 1,
"type": "integer"
},
"pageSize": {
"anyOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Rows per page (1-100). Defaults to 25.",
"examples": [
25
]
}
},
"required": [
"act_id"
],
"type": "object"
},
"name": "india_act_subordinate",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Outbound citations from a provision to other enactments and sections of its own act. Use when following references outwards, not finding citations to the act. actId identifies served targets, while resolved false marks coverage gaps rather than parse failures. Results are not paged. totalActs and totalSections give full counts, so check truncated before treating returned references as complete. Cost: 2 credits.",
"inputSchema": {
"properties": {
"act_id": {
"description": "Section identifier, e.g. `USC_T42_C21_S1983` (Title 42, Chapter 21, Section 1983, written 42 U.S.C. 1983). Take it from a search result rather than assembling it: the title and section are derivable from a citation but the CHAPTER is not, so hand-built ids usually 404.",
"examples": [
"IND_state_17068"
],
"maxLength": 200,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]+$",
"type": "string"
},
"section_number": {
"description": "Section number as the publisher writes it, e.g. `302` or `498A`; an alphanumeric suffix is part of the number, not a sub-provision. Near spellings (`498-A`, `Sec. 302`, `302(1)`) are tried when the exact one misses. A miss is a 404 with the act's nearest numbers in `didYouMean`.",
"examples": [
"79"
],
"maxLength": 40,
"minLength": 1,
"pattern": "^[^/\\\\\\x00-\\x1f]{1,40}$",
"type": "string"
}
},
"required": [
"act_id",
"section_number"
],
"type": "object"
},
"name": "india_section_references",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Self-describing filter vocabulary: every category, state, department and status the acts corpus actually holds, with counts. Call this before filtering, so a query uses a value that exists instead of returning empty because the spelling was wrong.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "list_act_filters",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Browse and filter enactments rather than searching their text: by jurisdiction (central or a state), issuing regulator, year and status. Use when the user wants to know WHAT exists in an area before asking what it says, or to confirm an Act's exact title before citing it. Cost: 1 credit.",
"inputSchema": {
"properties": {
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Jurisdictional class of the instrument. `repealed` and `spent` are accepted for backward compatibility and resolve against the act's status instead. Values: `central`, `state`, `regulatory`, `repealed`, `spent`.",
"enum": [
"central",
"state",
"regulatory",
"repealed",
"spent"
],
"examples": [
"central"
]
},
"department": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Accepts both regulator slugs such as `sebi` and `rbi` and free-text state department names such as `Law Department`. Values are not limited to a fixed enum or a uniform slug format.",
"examples": [
"sebi"
]
},
"page": {
"default": 1,
"description": "1-based page number.",
"examples": [
1
],
"minimum": 1,
"type": "integer"
},
"pageSize": {
"default": 50,
"description": "Results per page (1-100).",
"examples": [
50
],
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"search": {
"anyOf": [
{
"maxLength": 200,
"minLength": 2,
"type": "string"
},
{
"type": "null"
}
],
"description": "Keep only acts whose title contains this substring, matched case-insensitively. A title filter, not a search over the text: use POST /acts/search for that.",
"examples": [
"income tax"
]
},
"sort": {
"default": "year_desc",
"description": "Sort order. `popular` is DEPRECATED and behaves as `year_desc`: it ordered by a read counter held only in the retired store. Values: `year_desc`, `year_asc`, `title_asc`, `title_desc`, `popular`.",
"enum": [
"year_desc",
"year_asc",
"title_asc",
"title_desc",
"popular"
],
"examples": [
"title_asc"
],
"type": "string"
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Jurisdiction slug. `central` is a value here, for Union legislation. Live counts per jurisdiction are on GET /acts/coverage.",
"enum": [
"andaman-and-nicobar-islands",
"andaman-nicobar",
"andhra-pradesh",
"arunachal-pradesh",
"assam",
"bihar",
"central",
"chandigarh",
"chhattisgarh",
"dadra-and-nagar-haveli-and-daman-and-diu",
"dadra-nagar-haveli",
"delhi",
"goa",
"gujarat",
"haryana",
"himachal-pradesh",
"jammu-and-kashmir",
"jammu-kashmir",
"jharkhand",
"karnataka",
"kerala",
"ladakh",
"lakshadweep",
"madhya-pradesh",
"maharashtra",
"manipur",
"meghalaya",
"mizoram",
"nagaland",
"odisha",
"puducherry",
"punjab",
"rajasthan",
"sikkim",
"tamil-nadu",
"telangana",
"tripura",
"uttar-pradesh",
"uttarakhand",
"west-bengal"
],
"examples": [
"maharashtra"
]
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The publisher's lifecycle status for the act. Their claim, not our verdict: see GET /acts/{actId}/status. Values: `in_force`, `repealed`, `superseded`, `spent`.",
"enum": [
"in_force",
"repealed",
"superseded",
"spent"
],
"examples": [
"repealed"
]
},
"yearFrom": {
"anyOf": [
{
"maximum": 2100,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Earliest year of enactment to include, inclusive. Matched against the publisher's own year field, which is occasionally corrupt, so there is no lower bound and a value below 1800 is a legitimate way to find those rows.",
"examples": [
2015
]
},
"yearTo": {
"anyOf": [
{
"maximum": 2100,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Latest year of enactment to include, inclusive.",
"examples": [
2024
]
}
},
"required": [],
"type": "object"
},
"name": "list_acts",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "The provision named by an Indian legal citation, accepting common abbreviations and flexible element order. Use when a user provides a citation rather than a research topic, such as s.302 IPC, O. 39 R. 1 CPC or Art. 21 of the Constitution. Subsection and clause references are supported. Malformed citations are rejected rather than reported as not found. Cost: 2 credits.",
"inputSchema": {
"properties": {
"asAtDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The date the conduct or document belongs to, as YYYY-MM-DD. This is how a caller says which side of the 2023 recodification they mean: without it, a criminal section number resolves to BOTH the old code and its replacement, because both are live law.",
"examples": [
"2019-05-01"
],
"format": "date"
},
"cite": {
"description": "One citation string.",
"examples": [
"u/s 302 IPC"
],
"maxLength": 200,
"minLength": 2,
"type": "string"
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Narrow to one jurisdiction. Required for a State-universal title, where the same short title names a different act in each State.",
"enum": [
"andaman-and-nicobar-islands",
"andaman-nicobar",
"andhra-pradesh",
"arunachal-pradesh",
"assam",
"bihar",
"central",
"chandigarh",
"chhattisgarh",
"dadra-and-nagar-haveli-and-daman-and-diu",
"dadra-nagar-haveli",
"delhi",
"goa",
"gujarat",
"haryana",
"himachal-pradesh",
"jammu-and-kashmir",
"jammu-kashmir",
"jharkhand",
"karnataka",
"kerala",
"ladakh",
"lakshadweep",
"madhya-pradesh",
"maharashtra",
"manipur",
"meghalaya",
"mizoram",
"nagaland",
"odisha",
"puducherry",
"punjab",
"rajasthan",
"sikkim",
"tamil-nadu",
"telangana",
"tripura",
"uttar-pradesh",
"uttarakhand",
"west-bengal"
],
"examples": [
"maharashtra"
]
}
},
"required": [
"cite"
],
"type": "object"
},
"name": "resolve_india_citation",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Provision resolutions for a list of Indian legal citations, using the same resolver as resolve_india_citation. Use when several citations need resolving without individual calls. Accepts up to 50 distinct citations and 500 entries before deduplication. One citation failing does not invalidate the others. Unknown request fields are rejected rather than ignored. Cost: 2 credits.",
"inputSchema": {
"properties": {
"asAtDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The date the conduct or document belongs to, as YYYY-MM-DD. This is how a caller says which side of the 2023 recodification they mean: without it, a criminal section number resolves to BOTH the old code and its replacement, because both are live law.",
"examples": [
"2019-05-01"
],
"format": "date"
},
"citations": {
"description": "Citation strings, as a lawyer would type them.",
"examples": [
[
"u/s 302 IPC",
"Section 138 of the Negotiable Instruments Act",
"Art. 21 Constitution"
]
],
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Narrow to one jurisdiction. Required for a State-universal title.",
"enum": [
"andaman-and-nicobar-islands",
"andaman-nicobar",
"andhra-pradesh",
"arunachal-pradesh",
"assam",
"bihar",
"central",
"chandigarh",
"chhattisgarh",
"dadra-and-nagar-haveli-and-daman-and-diu",
"dadra-nagar-haveli",
"delhi",
"goa",
"gujarat",
"haryana",
"himachal-pradesh",
"jammu-and-kashmir",
"jammu-kashmir",
"jharkhand",
"karnataka",
"kerala",
"ladakh",
"lakshadweep",
"madhya-pradesh",
"maharashtra",
"manipur",
"meghalaya",
"mizoram",
"nagaland",
"odisha",
"puducherry",
"punjab",
"rajasthan",
"sikkim",
"tamil-nadu",
"telangana",
"tripura",
"uttar-pradesh",
"uttarakhand",
"west-bengal"
],
"examples": [
"maharashtra"
]
}
},
"required": [
"citations"
],
"type": "object"
},
"name": "resolve_india_citations_batch",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Generic corpus search over Indian Central and State legislation, returning `{id, title, url}` records for citation. Present so this server works in clients that require the standard search/fetch pair. Prefer `search_acts` if you can call it: it filters by category, state, year and status. Pair with `fetch` to read a result.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search",
"outputSchema": {
"additionalProperties": {
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"type": "array"
},
"type": "object"
}
},
{
"description": "Search Indian legislation down to the individual section: Central and State Acts plus the instruments of the principal regulators (SEBI, RBI, MCA, IRDAI, TRAI, DGFT). Use for any 'what does Indian law say' question. Supports boolean and phrase queries; filters by category, state, year and status. Returns sections with title, chapter and a sourceUrl pointing at the publisher's own document. The returned actId (e.g. 'IND_central_2065') feeds every acts tool. Cost: 2 credits.",
"inputSchema": {
"properties": {
"actStatus": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Filter by the publisher's lifecycle status. Accepts one value or a list. This is the publisher's claim, not our verdict: see GET /acts/{actId}/status. Values: `in_force`, `repealed`, `superseded`, `spent`.",
"enum": [
"in_force",
"repealed",
"superseded",
"spent"
],
"examples": [
"repealed"
]
},
"actTitle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Filter by words in the act's title. Each word must appear, so `Bharatiya Nyaya` narrows to the Sanhita.",
"examples": [
"Bharatiya Nyaya Sanhita"
]
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Jurisdictional class. `repealed` and `spent` are accepted for backward compatibility and resolve against `actStatus` instead. Values: `central`, `state`, `regulatory`, `repealed`, `spent`.",
"enum": [
"central",
"state",
"regulatory",
"repealed",
"spent"
],
"examples": [
"central"
]
},
"department": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Accepts both regulator slugs such as `sebi` and `rbi` and free-text state department names such as `Law Department`. Values are not limited to a fixed enum or a uniform slug format.",
"examples": [
"sebi"
]
},
"excludeRepealed": {
"default": false,
"description": "Drop provisions whose act the publisher records as repealed or spent. Off by default, because repealed law is still law that was in force and is routinely the thing being researched.",
"examples": [
true
],
"type": "boolean"
},
"isSubordinate": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "True for subordinate instruments only (rules, notifications, circulars, orders); false for principal acts only. Omit for both.",
"examples": [
false
]
},
"legalSubject": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Accepts one value or a list, matched against subject classifications assigned at ingest.",
"enum": [
"administrative_law",
"banking_finance",
"civil_procedure",
"constitutional_law",
"corporate_law",
"criminal_law",
"environmental_law",
"family_law",
"general",
"information_technology",
"intellectual_property",
"labour_law",
"property_law",
"tax_law"
],
"examples": [
"tax_law"
]
},
"matchType": {
"default": "any",
"description": "One of `any`, `all`, `phrase`. Filters ranked candidates rather than re-querying the index, so `phrase` matches only within the top candidates and not every corpus match. Narrow with structured filters first when you need exhaustive phrase results. Defaults to `any`.",
"enum": [
"any",
"all",
"phrase"
],
"examples": [
"phrase"
],
"type": "string"
},
"page": {
"default": 1,
"description": "1-based page number. `page * pageSize` may not exceed 100; narrow the query with filters to reach deeper matches.",
"examples": [
1
],
"minimum": 1,
"type": "integer"
},
"pageSize": {
"default": 10,
"description": "Results per page (1-50).",
"examples": [
10
],
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"provisionType": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Filter by what the provision DOES. Accepts one value or a list. Values: `mandatory`, `general`, `prohibitory`, `overriding`, `discretionary`, `declaratory`.",
"enum": [
"mandatory",
"general",
"prohibitory",
"overriding",
"discretionary",
"declaratory"
],
"examples": [
"mandatory"
]
},
"query": {
"description": "Search query.",
"examples": [
"assessment of a registered dealer"
],
"maxLength": 1000,
"minLength": 2,
"type": "string"
},
"sectionNumber": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Filter by exact section number. The publisher's own numbering, which is not an integer: `498A`, `376DA` and `2-A` all occur, and the alphabetic suffix is part of the number rather than a sub-provision.",
"examples": [
"498A"
]
},
"sectionType": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Filter by structural kind of the passage. Accepts one value or a list. Values: `amendment_provision`, `article`, `body`, `chapter_heading`, `definition_clause`, `definitions`, `part_heading`, `preamble`, `schedule`, `section`, `short_title`, `sub_section`.",
"enum": [
"amendment_provision",
"article",
"body",
"chapter_heading",
"definition_clause",
"definitions",
"part_heading",
"preamble",
"schedule",
"section",
"short_title",
"sub_section"
],
"examples": [
"definitions"
]
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Jurisdiction slug. `central` is a value here, for Union legislation. Live counts per jurisdiction are on GET /acts/coverage.",
"enum": [
"andaman-and-nicobar-islands",
"andaman-nicobar",
"andhra-pradesh",
"arunachal-pradesh",
"assam",
"bihar",
"central",
"chandigarh",
"chhattisgarh",
"dadra-and-nagar-haveli-and-daman-and-diu",
"dadra-nagar-haveli",
"delhi",
"goa",
"gujarat",
"haryana",
"himachal-pradesh",
"jammu-and-kashmir",
"jammu-kashmir",
"jharkhand",
"karnataka",
"kerala",
"ladakh",
"lakshadweep",
"madhya-pradesh",
"maharashtra",
"manipur",
"meghalaya",
"mizoram",
"nagaland",
"odisha",
"puducherry",
"punjab",
"rajasthan",
"sikkim",
"tamil-nadu",
"telangana",
"tripura",
"uttar-pradesh",
"uttarakhand",
"west-bengal"
],
"examples": [
"maharashtra"
]
},
"yearFrom": {
"anyOf": [
{
"maximum": 2100,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Earliest year of enactment to include, inclusive. Matched against the publisher's own year field, which is occasionally corrupt, so there is no lower bound and a value below 1800 is a legitimate way to find those rows.",
"examples": [
2015
]
},
"yearTo": {
"anyOf": [
{
"maximum": 2100,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Latest year of enactment to include, inclusive.",
"examples": [
2024
]
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_acts",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:dfa0b8f5f0aa8626a6d8298c58614092e59caa8de1541580106fb078b4f751e6 | sha256sum