WritersLogic Verifiable AI Agent Hub Legal Cite Verifier API
The Legal Cite Verifier API from WritersLogic Verifiable AI Agent Hub — 1 operation(s) for legal cite verifier.
The Legal Cite Verifier API from WritersLogic Verifiable AI Agent Hub — 1 operation(s) for legal cite verifier.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/writerslogic-com:writerslogic-com-legal-cite-verifier-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: WritersLogic Verifiable AI Agent Hub Legal Cite Verifier API
version: 2.0.0
description: Pay-per-call agents settled in USDC on Base via x402. Every response carries a signed provenance envelope.
contact:
name: WritersLogic
url: https://writerslogic.com/agents
email: agents@writerslogic.com
servers:
- url: https://agents.writerslogic.com
tags:
- name: Legal Cite Verifier
paths:
/api/v1/legal-cite-verifier:
post:
operationId: legal_cite_verifier
summary: Legal citation and quotation verifier (US case law)
description: 'Extracts US reporter citations from a brief (U.S., S. Ct., L. Ed., F., F.2d, F.3d, F.4th, F. Supp., state and regional reporters) and checks each against Harvard''s Caselaw Access Project and, when the operator has configured a token, the CourtListener Citation Lookup API. Reports FOUND, MISMATCH (case name, year or circuit differs), NOT_FOUND, AMBIGUOUS, or UNCHECKED with the reason, and never marks an unchecked citation FOUND. Quotations are searched in the cited opinion with deterministic matching and every normalization is listed. Statutes, id., supra and Westlaw/Lexis cites are reported as UNCHECKABLE_TYPE. Without a CourtListener token the result is partial for volumes outside CAP (roughly pre-2019). The optional proposition check is off by default and can only point at a verified passage. Not legal advice.
Price: 1.50 USDC on Base (x402).'
x-x402-price-usdc: '1.50'
x-x402-amount: '1500000'
x-payment-info:
protocols:
- x402
price:
mode: fixed
currency: USD
amount: '1.50'
x-audience: legal-ip
x-sample-url: https://agents.writerslogic.com/api/v1/samples/legal-cite-verifier
security:
- x402: []
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
text:
type: string
minLength: 1
maxLength: 64000
description: Brief or memo text. Citations and their case names, court and year are extracted from it.
citations:
type: array
maxItems: 60
items:
type: string
minLength: 3
maxLength: 300
description: Citations to check instead of, or in addition to, text.
quotes:
type: array
maxItems: 40
description: Quotations to find verbatim in the cited opinion.
items:
type: object
additionalProperties: false
required:
- citation
- quote
properties:
citation:
type: string
minLength: 3
maxLength: 300
description: Reporter citation the quote is attributed to.
quote:
type: string
minLength: 12
maxLength: 4000
check_propositions:
type: boolean
description: Default false. Runs one optional model call that may only point at a verified passage.
propositions:
type: array
maxItems: 10
items:
type: object
additionalProperties: false
required:
- citation
- proposition
properties:
citation:
type: string
minLength: 3
maxLength: 300
proposition:
type: string
minLength: 10
maxLength: 600
max_citations:
type: integer
minimum: 1
maximum: 40
description: Distinct reporter citations to check. Default 40.
example:
text: Plaintiff's position follows from Brown v. Board of Education, 347 U.S. 483, 495 (1954) ("Separate educational facilities are inherently unequal."). Defendant's liability under the Montreal Convention is established by Varghese v. China Southern Airlines Co., Ltd., 925 F.3d 1339 (11th Cir. 2019).
quotes:
- citation: 347 U.S. 483
quote: Separate educational facilities are inherently unequal.
responses:
'200':
description: Paid result with provenance
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
verdict:
type: string
enum:
- ISSUES_FOUND
- INCOMPLETE
- ALL_CHECKABLE_VERIFIED
- NO_CITATIONS_FOUND
confidence:
type: string
enum:
- high
- medium
- low
risk:
type: object
description: flagged_citations (NOT_FOUND or MISMATCH), flagged_quotes, inconclusive_items.
next_step:
type: string
summary:
type: string
counts:
type: object
description: Citation and quote counts by status.
citations:
type: array
items:
type: object
properties:
id:
type: string
raw:
type: string
normalized:
type: string
status:
type: string
enum:
- FOUND
- MISMATCH
- NOT_FOUND
- REPORTER_UNKNOWN
- AMBIGUOUS
- UNCHECKABLE_TYPE
- UNCHECKED
reason:
type: string
method:
type: string
case_name_stated:
anyOf:
- type: string
- type: 'null'
case_name_found:
anyOf:
- type: string
- type: 'null'
case_name_match:
type: string
enum:
- MATCH
- MISMATCH
- NOT_STATED
- NOT_CHECKED
year_stated:
anyOf:
- type: integer
- type: 'null'
decision_date:
anyOf:
- type: string
- type: 'null'
year_match:
type: string
enum:
- MATCH
- MISMATCH
- NOT_STATED
- NOT_CHECKED
court_stated:
anyOf:
- type: string
- type: 'null'
court_found:
anyOf:
- type: string
- type: 'null'
court_match:
type: string
enum:
- MATCH
- MISMATCH
- NOT_STATED
- NOT_CHECKED
cluster_id:
anyOf:
- type: integer
- type: 'null'
source_url:
anyOf:
- type: string
- type: 'null'
source_sha256:
anyOf:
- type: string
- type: 'null'
source_sha256_basis:
type: string
description: 'Which source the hash covers: cap_case_record, cap_volume_index, courtlistener_citation_lookup_response or the redirect-target URL text.'
containing_case:
type: object
description: 'For NOT_FOUND: the decision whose page range contains the cited page.'
mismatches:
type: array
items:
type: string
offset:
type: object
quotes:
type: array
items:
type: object
properties:
id:
type: string
citation:
type: string
quote:
type: string
status:
type: string
enum:
- EXACT
- NORMALIZED_MATCH
- NOT_FOUND_IN_OPINION
- TEXT_UNAVAILABLE
offsets:
type: object
description: start and end in the NFC opinion text (offset_basis).
excerpt:
type: string
normalization_applied:
type: array
items:
type: object
description: step, applied_to (quote|opinion|both), count. Opinion counts cover the matched span only.
checked_against:
type: object
description: case_name, source_url, source_sha256, opinion_text_sha256.
reason:
type: string
propositions:
type: array
items:
type: object
description: verdict SUPPORTED_BY_PASSAGE (with passage_span, verified verbatim) or NEEDS_HUMAN.
unicode:
type: object
description: Hidden or lookalike characters found in the input (unicode-safety rules).
evidence:
type: array
items:
type: object
description: url, sha256, bytes, role of each source consulted.
warnings:
type: array
items:
type: string
manifest:
type: object
description: Version, input hash, data access mode (authenticated|public|public_fallback), token state, llm state, timing.
limitations:
type: array
items:
type: string
_provenance:
type: object
description: C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance
required:
- data
- _provenance
'400':
description: Invalid request (no payment consumed)
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
'401':
description: Invalid X-API-KEY
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
'402':
description: Payment required or invalid
content:
application/json:
schema:
type: object
description: x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)
properties:
x402Version:
type: integer
error:
type: string
code:
type: string
resource:
type: object
accepts:
type: array
items:
type: object
extensions:
type: object
'502':
description: Upstream failure; the payment is released or not settled
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
tags:
- Legal Cite Verifier
components:
securitySchemes:
x402:
type: apiKey
in: header
name: PAYMENT-SIGNATURE
description: x402 v2 payment payload (base64) sent after a 402 challenge
apiKey:
type: apiKey
in: header
name: X-API-KEY