Skip to main content
POST
Search Indian legislation

Authorizations

Authorization
string
header
required

API key issued from the developer dashboard. Pass as Authorization: Bearer vq_key_...

Body

application/json

Search Indian legislation by semantic query.

query
string
required

Search query.

Required string length: 2 - 1000
Example:

"assessment of a registered dealer"

category
enum<string>

Jurisdictional class. repealed and spent are accepted for backward compatibility and resolve against actStatus instead.

Available options:
central,
state,
regulatory,
repealed,
spent
Example:

"central"

state
enum<string>

Jurisdiction slug. central is a value here, for Union legislation. Live counts per jurisdiction are on GET /acts/coverage.

Available options:
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
Example:

"maharashtra"

department
string | null

Issuing body. Deliberately NOT an enumerated list: this field holds 943 distinct values and mixes clean regulator slugs (sebi, rbi, moefcc) with free-text state department names (Law Department). Read GET /acts/filters for the values with the most data behind them.

Example:

"sebi"

actStatus
enum<string>

Filter by the publisher's lifecycle status: in_force, repealed, superseded, spent. Accepts one value or a list. This is the publisher's claim, not our verdict: see GET /acts/{actId}/status.

Available options:
in_force,
repealed,
superseded,
spent
Example:

"repealed"

excludeRepealed
boolean
default:false

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.

Example:

true

isSubordinate
boolean | null

True for subordinate instruments only (rules, notifications, circulars, orders); false for principal acts only. Omit for both.

Example:

false

provisionType
enum<string>

Filter by what the provision DOES: definitional, prohibitory, procedural, penal, overriding and others. Accepts a value or a list.

Available options:
mandatory,
general,
prohibitory,
overriding,
discretionary,
declaratory
Example:

"mandatory"

sectionType
enum<string>

Filter by structural kind: section, sub_section, definitions, preamble, schedule, short_title.

Available options:
amendment_provision,
article,
body,
chapter_heading,
definition_clause,
definitions,
part_heading,
preamble,
schedule,
section,
short_title,
sub_section
Example:

"definitions"

Filter by subject area, e.g. tax_law, criminal_law, environmental_law, company_law.

Available options:
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
Example:

"tax_law"

matchType
enum<string>
default:any

How query terms must appear in the provision text. any (the default) leaves hybrid ranking to do the work; all keeps only provisions containing EVERY query term; phrase keeps only those containing the exact phrase.

⚠️ It narrows the ranked candidate pool rather than re-querying the index, so a phrase search returns phrase matches WITHIN the top candidates, not every phrase match in the corpus. For an exhaustive phrase search, narrow with the structured filters first.

Available options:
any,
all,
phrase
Example:

"phrase"

page
integer
default:1

1-based page number. page * pageSize may not exceed 100; narrow the query with filters to reach deeper matches.

Required range: x >= 1
yearFrom
integer | null

Minimum year (inclusive)

Example:

2015

yearTo
integer | null

Maximum year (inclusive)

Example:

2024

sectionNumber
string | null

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.

Example:

"498A"

actTitle
string | null

Filter by words in the act's title. Each word must appear, so Bharatiya Nyaya narrows to the Sanhita.

Example:

"Bharatiya Nyaya Sanhita"

pageSize
integer
default:10

Results per page (1-50)

Required range: 1 <= x <= 50

Response

Successful Response

data
ActSearchData · object
required
meta
ActSearchMeta · object
required
Last modified on September 6, 2026