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.

FactValue
Toolverify_passage
Partner scope requiredlegislation:read
Subscriber tier requiredAI Pro
Accepts as_atno

Parameters

NameTypeRequiredDefault
passagestringyes
linkstringnonull
provision_idstringnonull
content_hashstringnonull
case_idstringnonull
para_numintegernonull

Notes

Verdicts

verdictMeaning
matchThe passage is in the provision's text
match_disclosedIt matched only once raised or lowered digits were read as plain ones (CO2 for COâ‚‚). Say so if you quote it
mismatchThe passage's opening is in the text and a later character is not. first_difference shows the characters on each side
not_foundNot 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, or in_force in a list) with in_force, frl_status and confirmed_with_frl_at: when Advisor last confirmed the status with the Federal Register.
  • Served text and search hits carry a compilation block with register_id, compilation_no, check_date and state. state is 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 the frl_link in 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_FORCE and COMPILATION_NOT_CURRENT are answers, not failures. Show the user the Federal Register link in the response and do not fill the gap from another source.

Errors

CodeMeaningWhat to do
INVALID_ARGUMENTNo passage, a passage under 12 characters, both or neither of link and provision_id, or a link that is not an Advisor provision addressPass the passage and one of link or provision_id
NOT_FOUNDThe link or id names no provision Advisor servesFetch the provision again with get_provision_text and use its link
AMBIGUOUS_REFERENCEThe link names more than one provisionUse the provision_id of the one you mean
TITLE_NOT_IN_FORCEThe title is no longer in force; its text is not servedSay so, and give the Federal Register link

Related tools