search
Searches legal documents using OpenSearch to discover relevant documents based on the supplied search criteria. Returns matching documents and their available metadata.
When to use: Use when you need to discover relevant legal documents through search, especially when looking for documents matching a search query rather than retrieving a structured list. Use this to explore legal content relevant to a topic, legal issue, phrase, or other supported search criteria. When not: Do not use this to browse with structured filters and cursor pagination; use list_documents. Do not use it to read a body or a file. For plain text use list_full_text (example: 'quote the operative wording'). For structured Markdown use list_markdown (example: 'keep the article headings'). For a complete citation bundle use evidence_pull (example: 'show me the source'). For a temporary source-file URL use document_presigned_url (example: 'download the PDF'). For one historical version use document_version. Do not call without a valid iso from list_jurisdictions. Avoid repeating an equivalent search when you already have sufficient results for the same query and filters.
Parameters: iso (required) is the jurisdiction code from list_jurisdictions (e.g. BE or US_CA for a state). Provide the search query and any supported optional filters defined by the input schema. Optional filters may narrow the search by document metadata, dates, authority, source identifiers, tags, or other supported criteria. Use only parameters defined by the schema. The results depend on the query, jurisdiction, filters, and the user's subscription access. An empty data array means no matching documents were returned; it does not necessarily mean that the jurisdiction has no documents.
Behavior: Read-only search operation. Does not create, update, or delete documents, records, files, or credentials. The primary side effect is the computational and resource cost of executing an OpenSearch query. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Search results are determined by the OpenSearch query implementation, relevance logic, supported filters, and available indexed data. Results may not include every document in the jurisdiction. Search results may differ from list_documents because the tools use different retrieval mechanisms. Repeating a search executes another query. Do not assume results are cached or that the search index contains every recently updated document.
Returns: Matching legal documents and their available metadata, together with a result message. The returned documents depend on the search query, jurisdiction, supported filters, and subscription permissions.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"iso": "<iso>"
},
"name": "search"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| iso | Yes | Filter by Jurisdiction ISO code (e.g. 'US') | |
| tag | No | Filter by tag | |
| url | No | Filter by document URL | |
| lang | No | Exact portal language name, for example English. Filters the portal, not the document language. | |
| uuid | No | Filter by UUID. Leave blank to apply no UUID filter. | |
| limit | No | Page size. Default 20, maximum 100. | |
| portal | No | Filter by portal name | |
| status | No | Filter by document status | |
| keyword | No | Search text matched against the heading and the body. Example: '29 CFR 825.500 retention period'. Omit it to list by filters only, newest document id first. | |
| next_id | No | document id of the first row of the next page, from pagination.next_id. Omit on the first page. | |
| version | No | Filter by version | |
| portal_id | No | Filter by portal ID | |
| is_repealed | No | Filter by repealed documents. default value is false | |
| last_updated | No | YYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter. | |
| crawling_date | No | YYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter. | |
| include_total | No | Include total count in response | |
| effective_date | No | YYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter. | |
| file_data_only | No | Filter by file data only | |
| last_amendment | No | YYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter. | |
| expiration_date | No | YYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter. | |
| date_of_decision | No | YYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter. | |
| publication_date | No | YYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter. | |
| date_of_enactment | No | YYYY-MM-DD, or a range YYYY-MM-DD-to-YYYY-MM-DD. Leave blank to apply no date filter. | |
| issuing_authority | No | Filter by issuing authority | |
| source_identifier | No | Filter by source identifier | |
| type_of_authority | No | Filter by type of authority | |
| issuing_authority_tags | No | Filter by issuing authority tags | |
| source_secondary_identifier | No | Filter by secondary source identifier |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Documents in the requested jurisdiction that have crawled links; empty if none match. | |
| message | Yes | Result message | |
| pagination | No |