search_provisions
Returns the provisions that best match a query, ranked, each with its pinpoint, heading, a short snippet and its verification label. Never full text: fetch a hit with get_provision_text once you know its pinpoint.
| Fact | Value |
|---|---|
| Tool | search_provisions |
| Partner scope required | legislation:read |
| Subscriber tier required | AI Pro |
Accepts as_at | no |
Parameters
| Name | Type | Required | Default |
|---|---|---|---|
query | string | yes | |
legislation_id | string | no | null |
register_id | string | no | null |
provision_types | array of string | no | null |
limit | integer | no | 10 |
cursor | string | no | null |
mode | string | no | "hybrid" |
Notes
- Scope it. Pass
legislation_id(a title id, compilation id or thelegislation_idanother tool returned) orregister_id. Unscoped search covers the whole corpus of law in force and is much noisier. provision_types: ["section"]keeps notes, schedules and subsections out, and is usually what you want. Valid values:section,subsection,paragraph,subparagraph,definition,note,schedule,part,division,subdivision,chapter,long_title.modeishybrid(the default: word matching and meaning matching together),keywordorsemantic. Meaning matching covers the Acts in the Administrative Arrangements Order. Elsewhere the search matches words only, andnotessays so, so the wording of the query affects the rank more.- Rank is the order. Sort on
rank, which continues across pages.similarity(present on a meaning match) andscore(present on a word match) are on different scales; never compare or combine them. match_typeissemantic,all_terms,heading,partialorboth.bothis the strongest: the words and the meaning both match.heading_clipped: truemeans the stored heading contained body text: that provision's record is incomplete.labelis the provision's verification label, as onget_provision_text.- Law in force only. Provisions of titles no longer in force are never matched. A search scoped to such a title returns
TITLE_NOT_IN_FORCE.
Request (search_provisions with {"query":"notifying individuals of an eligible data breach","legislation_id":"C2004A03712","provision_types":["section"],"limit":3})
Python SDK
import asyncio, os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main():
headers = {"Authorization": f"Bearer {os.environ['LAWATLAS_API_KEY']}"}
async with streamablehttp_client("https://advisor.lawatlas.ai/api/mcp-http/mcp", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool("search_provisions", {
"query": "notifying individuals of an eligible data breach",
"legislation_id": "C2004A03712",
"provision_types": [
"section"
],
"limit": 3
})
print(result.content[0].text)
asyncio.run(main())
curl
curl -s https://advisor.lawatlas.ai/api/mcp-http/mcp \
-H "Authorization: Bearer $LAWATLAS_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_provisions","arguments":{"query":"notifying individuals of an eligible data breach","legislation_id":"C2004A03712","provision_types":["section"],"limit":3}}}'
Response, as Advisor returned it on 10 October 2026. The tool's result is the JSON text of result.content[0].text; lists and long text are trimmed where marked "...".
{
"schema_version": "3.5",
"result": [
{
"provision_id": "74895e94-f52b-43b8-a3d3-f2d2981ccc64",
"legislation_id": "eae28dff-3ff5-48eb-af3f-38686e6f650e",
"pinpoint": "s 26WL",
"heading": "Entity must notify eligible data breach",
"snippet": "Entity must notify eligible data breach Scope\n(1)\tThis section applies if:\n(a)\tan entity is aware that there are reasonable grounds to believe that there has been an eligible data breach of the entity; and\n(b)\tthe entity has prepared a statement that",
"snippet_type": "match",
"rank": 1,
"match_type": "both",
"all_query_terms_present": true,
"path_headings": [
"Part IIIC",
"Division 3",
"Subdivision B"
],
"anchor_state": "anchored",
"anchor_qualifier": null,
"label": "Verified",
"similarity": 0.7884,
"score": 0.0006,
"title_id": "C2004A03712",
"eid": "sec_26wl",
"structure_path": "part_iiic/dvs_3/subdvs_b/sec_26wl",
"contains_formula": false,
"compilation": {
"register_id": "C2026C00227",
"compilation_no": 104,
"state": "current",
"check_date": "2026-10-09T16:47:33.513124Z"
}
},
{
"provision_id": "f4cc27bf-9901-40a6-8f19-5e6835f9ab44",
"legislation_id": "eae28dff-3ff5-48eb-af3f-38686e6f650e",
"pinpoint": "s 26WK",
"heading": "Statement about eligible data breach",
"snippet": "Statement about eligible data breach Scope\n(1)\tThis section applies if an entity is aware that there are reasonable grounds to believe that there has been an eligible data breach of the entity.\nStatement\n(2)\tThe entity must:\n(a)\tboth:\n(i)\tprepare a statement that",
"snippet_type": "match",
"rank": 2,
"match_type": "both",
"all_query_terms_present": false,
"path_headings": [
"Part IIIC",
"Division 3",
"Subdivision B"
],
"anchor_state": "anchored",
"anchor_qualifier": null,
"label": "Verified",
"similarity": 0.7807,
"score": 0.0006,
"title_id": "C2004A03712",
"eid": "sec_26wk",
"structure_path": "part_iiic/dvs_3/subdvs_b/sec_26wk",
"contains_formula": false,
"compilation": {
"register_id": "C2026C00227",
"compilation_no": 104,
"state": "current",
"check_date": "2026-10-09T16:47:33.513124Z"
}
},
{
"provision_id": "893fb7c4-2ae2-4afc-9972-bd8c58d1b383",
"legislation_id": "eae28dff-3ff5-48eb-af3f-38686e6f650e",
"pinpoint": "s 26WR",
"heading": "Commissioner may direct entity to notify eligible data breach",
"snippet": "Commissioner may direct entity to notify eligible data breach (1)\tIf the Commissioner is aware that there are reasonable grounds to believe that there has been an eligible data breach of an entity, the Commissioner may, by written notice given to the entity, direct",
"snippet_type": "match",
"rank": 3,
"match_type": "both",
"all_query_terms_present": true,
"path_headings": [
"Part IIIC",
"Division 3",
"Subdivision C"
],
"anchor_state": "anchored",
"anchor_qualifier": null,
"label": "Verified",
"similarity": 0.7692,
"score": 0.0003,
"title_id": "C2004A03712",
"eid": "sec_26wr",
"structure_path": "part_iiic/dvs_3/subdvs_c/sec_26wr",
"contains_formula": false,
"compilation": {
"register_id": "C2026C00227",
"compilation_no": 104,
"state": "current",
"check_date": "2026-10-09T16:47:33.513124Z"
}
}
],
"page": {
"returned": 3,
"total": 194,
"next_cursor": "eyJvIjogM30=",
"truncated": false
},
"query": "notifying individuals of an eligible data breach",
"legislation_id": "eae28dff-3ff5-48eb-af3f-38686e6f650e",
"usage": "Search results only - snippets, not provision text. Retrieve the full text of any hit with get_provision_text using its provision_id."
}
Data currency: Advisor serves the text of titles that the Federal Register of Legislation records as in force. It does not return the text of a repealed, ceased or sunset title, for any date.
- A title or a served provision carries a status block (
status, orin_forcein a list) within_force,frl_statusandconfirmed_with_frl_at: when Advisor last confirmed the status with the Federal Register.- Served text and search hits carry a
compilationblock withregister_id,compilation_no,check_dateandstate.stateis one of four values:
current: the Federal Register's latest list names the compilation the text comes from.not_current: the Federal Register lists a newer compilation. Tell the user, and use thefrl_linkin the response.pending_compilation: amendments have commenced that are not yet compiled, so the text does not include them.not_confirmed: the Federal Register lists no current compilation, or Advisor holds no record of one. Treat it as unknown.TITLE_NOT_IN_FORCEandCOMPILATION_NOT_CURRENTare answers, not failures. Show the user the Federal Register link in the response and do not fill the gap from another source.
Errors
| Code | Meaning | What to do |
|---|---|---|
INVALID_ARGUMENT | query is empty, a mode or provision_types value is unknown, or an id is malformed | Correct the value; the message lists the valid ones |
NOT_FOUND | No title has this id | Find the title with resolve_reference |
TITLE_NOT_IN_FORCE | The title is not in force | Show the frl_link; do not supply its text |
FORBIDDEN | The account has no active AI Pro subscription | Renew the subscription |