verify_passage
Checks a quotation against the text Advisor serves for the provision it came from, before you show it. It is the check your agent cannot make of its own copy: the comparison runs on the server, against the stored text. Free: calls are not billed, though each one is recorded.
| Fact | Value |
|---|---|
| Tool | verify_passage |
| Partner scope required | legislation:read |
| Subscriber tier required | AI Pro |
Accepts as_at | no |
Parameters
| Name | Type | Required | Default |
|---|---|---|---|
passage | string | yes | |
link | string | no | null |
provision_id | string | no | null |
content_hash | string | no | null |
case_id | string | no | null |
para_num | integer | no | null |
Notes
- Name the provision by its
link(link.urlfromget_provision_text, with or withouthttps://advisor.lawatlas.ai) or itsprovision_id. Give exactly one. A link survives a rebuild of the title; aprovision_idmay not. - Give the passage exactly as you will show it. A passage shorter than 12 characters is refused: it names nothing in particular.
Verdicts
verdict | Meaning |
|---|---|
match | The passage is in the provision's text |
match_disclosed | It matched only once raised or lowered digits were read as plain ones (CO2 for COâ‚‚). Say so if you quote it |
mismatch | The passage's opening is in the text and a later character is not. first_difference shows the characters on each side |
not_found | Not even the opening is in this provision. Check you named the right one, and quote without ellipses inside a sentence |
Whitespace runs count as one space. Apostrophes, dashes (never the minus sign), double quotes, bullets, ligatures and the ellipsis character count as the same character whatever their form. Letters and their case, accented letters, digits, whole words, punctuation and symbols must be identical.
Two checks, never one
A match says the passage is in Advisor's text. Whether Advisor's text matches the authorised PDF on the Federal Register is the provision's anchor.label, which the answer carries beside the verdict. A passage that matches a provision labelled "Not assessed" is a faithful quotation of text nobody has compared with the PDF. Call a passage verified only where its anchor.label does.
Citation and currency
citation is the citation to paste, as get_provision_text gives it. citation.state is current when your link names the compilation Advisor serves today; for an older compilation it says whether the provision's text has changed since (older_compilation_text_unchanged, older_compilation_text_changed, older_compilation_not_compared), and the passage is checked against today's text. With the content_hash you received, text_changed says whether the provision's text is still the text you quoted.
Twelve words quoted from section 13K of the Privacy Act, checked with the link and content_hash that get_provision_text returned for it:
Request (verify_passage with {"passage":"Civil penalty provision for breaching Australian Privacy Principles (1) An entity contravenes","link":"/l/C2004A03712/compilation_104/main/sec_13k","content_hash":"9d085271ad3f984fab2442190fe9cf38744bb7545e2c3b86ef7df976dcb5ce1a"})
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", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool("verify_passage", {
"passage": "Civil penalty provision for breaching Australian Privacy Principles (1) An entity contravenes",
"link": "/l/C2004A03712/compilation_104/main/sec_13k",
"content_hash": "9d085271ad3f984fab2442190fe9cf38744bb7545e2c3b86ef7df976dcb5ce1a"
})
print(result.content[0].text)
asyncio.run(main())
curl
curl -s https://advisor.lawatlas.ai/api/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":"verify_passage","arguments":{"passage":"Civil penalty provision for breaching Australian Privacy Principles (1) An entity contravenes","link":"/l/C2004A03712/compilation_104/main/sec_13k","content_hash":"9d085271ad3f984fab2442190fe9cf38744bb7545e2c3b86ef7df976dcb5ce1a"}}}'
Response, as Advisor returned it on 6 November 2026. The tool's result is the JSON text of result.content[0].text; lists and long text are trimmed where marked "...".
{
"schema_version": "1.0",
"verdict": "match",
"checked": "The passage against the text Advisor serves for this unit. This is not a check against the authorised PDF: `anchor` says what was compared with it.",
"provision": {
"id": "81595eb6-2a38-4cef-94de-03a76b219a58",
"pinpoint": "s 13K",
"type": "section",
"structure_path": "part_iii/dvs_1/sec_13k",
"link": {
"url": "/l/C2004A03712/compilation_104/main/sec_13k",
"eid": "sec_13k",
"component": "main",
"expression": "compilation_104",
"structure_path": "part_iii/dvs_1/sec_13k",
"verified_by": "toc"
}
},
"content_hash": "9d085271ad3f984fab2442190fe9cf38744bb7545e2c3b86ef7df976dcb5ce1a",
"text_changed": false,
"anchor": {
"state": "anchored",
"label": "Verified",
"qualifier": null,
"method": "page",
"claim": "Verified character-for-character against the authorised PDF. Checked line by line: each line of this provision's own words, its number first, was found on the authorised PDF in the order printed; its subsections and paragraphs, if any, are checked on their own.",
"authorised_pdf_page": 88,
"pdf_viewer_page": 106,
"page_half": "top",
"volume_no": 1
},
"citation": {
"string": "Privacy Act 1988 (Cth) s 13K, Compilation No. 104 (C2026C00227), as at 6 November 2026, https://advisor.lawatlas.ai/l/C2004A03712/compilation_104/main/sec_13k. Checked: Verified",
"title": "Privacy Act 1988",
"pinpoint": "s 13K",
"register_id": "C2026C00227",
"compilation_no": 104,
"as_at": "2026-11-06",
"in_force_from": "2026-06-04",
"url": "https://advisor.lawatlas.ai/l/C2004A03712/compilation_104/main/sec_13k",
"label": "Verified",
"state": "current"
},
"status": {
"in_force": true,
"frl_status": "InForce",
"since": null,
"confirmed_with_frl_at": "2026-11-02T17:26:23.541914Z",
"frl_link": "https://www.legislation.gov.au/Details/C2026C00227",
"notice": "In force according to the Federal Register of Legislation, as last confirmed on the date shown.",
"compilation": {
"register_id": "C2026C00227",
"compilation_no": 104,
"check_date": "2026-11-05T17:24:23.476335Z",
"state": "current",
"notice": "The Federal Register listed this compilation as the current one on the check date."
}
}
}
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 | No passage, a passage under 12 characters, both or neither of link and provision_id, or a link that is not an Advisor provision address | Pass the passage and one of link or provision_id |
NOT_FOUND | The link or id names no provision Advisor serves | Fetch the provision again with get_provision_text and use its link |
AMBIGUOUS_REFERENCE | The link names more than one provision | Use the provision_id of the one you mean |
TITLE_NOT_IN_FORCE | The title is no longer in force; its text is not served | Say so, and give the Federal Register link |
Related tools
- get_provision_text: the text to quote, its
linkand itscontent_hash.