Legislation

Verification Center — analyzes a document and verifies its citations (legislation + case law, multi-jurisdictional)

Automatically extracts the citations from a text —legislation AND case law—, deduplicates them and verifies each one against the corpus of ITS jurisdiction as of the given date. Deterministic: regex + force-status RPC only, 0 LLM, 0 credits. Returns counts (found/not_found/derogated/unknown), the flagged breakdown (flagged, verified_clean, review_required, counts_by_meaning) and an array of results with status, reproach, canonical text and official URL. DO NOT READ found AS 'CLEAN': it counts citations that EXIST, and a citation can exist and still resolve to a different decision from the one the document names (results[i].meaning: "other_case"). The clean count is verified_clean; the single boolean to branch on is review_required, mirrored in the X-Nexus-Verification header. SCOPE (changed 2026-07-25): NO LONGER BOE-only. Each citation's jurisdiction is inferred from its SHAPE (section 80 of the Employment Act 1968 → SG; art. 1902 CC → ES/CO) and routed to the matching verifier; there is NO default jurisdiction and nothing falls back to ES. jurisdiction is OPTIONAL and only disambiguates citations that are valid in several jurisdictions. Citations whose jurisdiction cannot be determined come back as unknown (honest), never invented. The response ALWAYS includes verifiable_jurisdictions so that a total:0 is checkable instead of silent. Max. 100 citations and 50,000 chars per request.

post/api/v1/verificacion/analizar

Request

  • Base URL: https://legal.nexusquantum.legal
  • URL: https://legal.nexusquantum.legal/api/v1/verificacion/analizar
  • Auth: HTTP bearer

Request body

textstring required

Text of the document to verify (~30 pages max).

datestring date

Force-status date (YYYY-MM-DD). Default today.

fechastring date

Force-status date (YYYY-MM-DD). Default today.

jurisdictionstring

OPTIONAL and with no default. Only needed to disambiguate a citation that is valid in several jurisdictions (e.g. art. 1902 CC → ES/CO). If omitted, each citation is routed by its shape.

Example request

{
  "text": "Under section 80 of the Employment Act 1968 and section 14 of the PDPA 2012...",
  "date": "2026-05-26",
  "fecha": "2026-05-26",
  "jurisdiction": "SG"
}

Response

Verification result — see VerificacionResponse.

READ IT IN THIS ORDER: review_required (or the X-Nexus-Verification header) → verified_clean / flagged → results[i] with status AND meaning together. found counts citations that EXIST, flagged ones included, so it is not the clean count and never was: a brief whose only citation names the wrong court comes back found: 1, not_found: 0.

SCOPE OF THE CHECK — compare citations_detected (citations FOUND in the document) with citations_checked (total, the ones actually checked): the per-request cap is 100, and a longer brief is checked on the first 100 only. When they differ, citations_truncated says so; the unchecked citations do NOT appear in results at all, and their absence is not a clean bill of health — split the document and send it in parts. text_truncated reports the other cap (50,000 chars). verifiable_jurisdictions lists the jurisdictions that have a verifier wired up today, so a total: 0 is checkable instead of silent.

datestring date

English twin of fecha. Either works; neither is retired.

fechastring date required

Date the force-status was evaluated at (YYYY-MM-DD).

totalinteger required

Citations actually checked (same value as citations_checked).

foundinteger required

Citations that EXIST in the corpus — flagged ones INCLUDED. Not the clean count: that is verified_clean.

not_foundinteger required

Citations absent from the active corpus.

derogatedinteger required

Citations that existed but are not in force on fecha.

unknowninteger required

Citations that could not be checked. A gap, not a pass.

flaggedinteger required

Citations that exist but carry a reproach: rows with results[i].meaning PLUS rows with results[i].party_check === "partial" (identity half-confirmed, which has no meaning). They resolve to another decision, distort the text, are unverifiable paraphrases, or name a party that does not appear in the decision. The counter exists because the truth used to live only inside results[i].meaning and in the prose of note, while the header said found: 1, not_found: 0 — and an integrator reads the header, which is what a header is for.

verified_cleaninteger required

found minus flagged: the citations that came back clean. This is the number to show as "verified".

review_requiredboolean required

The one question an integrator asks: can I proceed without looking? false ONLY when nothing is flagged, nothing is missing, nothing is derogated, nothing was uncheckable and nothing fell outside the per-request cap. A gap counts as a reason to look: "could not be checked" is not "is fine". Mirrored on every response in the X-Nexus-Verification header (review-required | clean) so you can branch without parsing the body.

verifiable_jurisdictionsstring[] required

Jurisdictions with a verifier wired up TODAY. Always declared, so a total: 0 can be checked against your own jurisdiction instead of being read as "clean document".

citations_detectedinteger required

Citations FOUND in the document.

citations_checkedinteger required

Citations actually CHECKED (== total). Compare it with citations_detected: when they differ, the per-request cap applied.

text_truncatedboolean

Present (and always true) when the document exceeded 50,000 characters and only the first 50,000 were analysed: the citations in the remainder were NOT looked at and appear nowhere in this response — their absence from results is not a clean bill of health. Absent otherwise. Without this field a 90-page brief comes back the same shape as one reviewed in full.

requestIdstring

Same value as the X-Request-Id response header. Quote it in support.

Changes

No recorded changes to this operation across all 1 revision of this API.