Verify up to 50 citations in one call, one flat price
Verify up to 50 citations in one call, one flat price. Body: {"citations": ["<string>", ...]} - same shapes and verdicts as the single route. Returns results[] (one per citation), the verified/not_found/suspicious counts, verification_time_ms, hallucination_r…
by veridictum.legal · discovered, not yet claimed by its owner · updated 2026-10-08
Mirrored from Coinbase's public x402 Bazaar. The description is the provider's own text and has not been reviewed here; the payment requirements are copied as published.
What it does
Verify up to 50 citations in one call, one flat price. Body: {"citations": ["<string>", ...]} - same shapes and verdicts as the single route. Returns results[] (one per citation), the verified/not_found/suspicious counts, verification_time_ms, hallucination_risk (LOW all verified, MEDIUM 1-2 not found, HIGH 3+). Deterministic, no LLM in the path. suspicious = a name_match mismatch: a DIFFERENT case than the name given. Do not retry a verified=false finding. Only verified results are cached.
Tags: legal · citations · verification · hallucination-detection · bulk · bazaar
Call contract
- Method
- POST
- Input
- json
- Output
- json
- Last paid call
- 2026-10-08
{
"citations": [
"Miranda v. Arizona, 384 U.S. 436 (1966)",
"Varghese v. China Southern Airlines Co., 925 F.3d 1339 (11th Cir. 2019)"
]
}{
"hallucination_risk": "MEDIUM",
"not_found_count": 1,
"results": [
{
"api_call_made": false,
"cached": true,
"case_name": "Miranda v. Arizona",
"citation": "Miranda v. Arizona, 384 U.S. 436 (1966)",
"confidence": "high",
"court": "Supreme Court of the United States",
"courtlistener_id": "107252",
"courtlistener_url": "https://www.courtlistener.com/opinion/107252/miranda-v-arizona/",
"date_filed": "1966-06-13",
"message": "Citation verified",
"name_match": "confirmed",
"source": "local_corpus",
"status": "verified",
"tier": 1,
"verified": true
},
{
"api_call_made": true,
"cached": false,
"case_name": null,
"citation": "Varghese v. China Southern Airlines Co., 925 F.3d 1339 (11th Cir. 2019)",
"confidence": "none",
"court": null,
"courtlistener_id": null,
"courtlistener_url": null,
"date_filed": null,
"message": "No case found for this citation",
"name_match": null,
"source": null,
"status": "not_found",
"tier": null,
"verified": false
}
],
"success": true,
"suspicious_count": 0,
"total_citations": 2,
"verification_time_ms": 412,
"verified_count": 1
}Use with an agent
- Discover. Agents find this listing with
GET https://bazaar.saylorinnovations.com/discovery/search?query=…, the MCP toolsearch_resources, or/discovery/resources. - Inspect. Fetch
/resources/37865.jsonfor the price and payment options. - Pay. Call
GET https://veridictum.legal/api/v1/agent/verify/bulk. The provider answers402with its payment requirements. An x402 client signs one of the options below and retries withPAYMENT-SIGNATURE. - Execute. The provider returns
200with the data. Agent Bazaar is not in the request path and never sees your payment.
For humans
You don't need an account or an API key; you need a wallet holding a small amount of USDC on Base, Solana, and an x402-capable client (see the examples below). Call the endpoint unpaid first to see exactly what it asks for.
Pricing & payment
- Price
- $0.1 / request
- Protocol
- x402 v2
- Auth
- No account or API key. Pay per request.
- Networks
- Base, Solana
- Demand
- 2 calls · 2 unique payers in 30d (public x402 Bazaar data)
x402 payment requirements
| Scheme | Network | Asset | Amount | Pay to | Timeout |
|---|---|---|---|---|---|
| exact | Base eip155:8453 | USDC | $0.1 | 0xb1df90631E2e27C2eA755F91c050732850739E1c | 300s |
| exact | Solana solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp | USDC | $0.1 | i1vkcsuxLTSSBY7ng3sg3SpCk5JfMZpDqhsqGMq6vn9 | 300s |
accepts[] (raw JSON)
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xb1df90631E2e27C2eA755F91c050732850739E1c",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "100000",
"amountUsd": 0.1,
"maxTimeoutSeconds": 300
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "i1vkcsuxLTSSBY7ng3sg3SpCk5JfMZpDqhsqGMq6vn9",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "100000",
"amountUsd": 0.1,
"maxTimeoutSeconds": 300
}
]Schemas
Output schema (JSON Schema)
{
"properties": {
"example": {
"properties": {
"hallucination_risk": {
"description": "LOW when every citation verified, MEDIUM at 1-2 not found, HIGH at 3 or more.",
"enum": [
"LOW",
"MEDIUM",
"HIGH"
],
"type": "string"
},
"not_found_count": {
"type": "integer"
},
"results": {
"description": "One entry per submitted citation, in order.",
"items": {
"properties": {
"api_call_made": {
"type": "boolean"
},
"cached": {
"description": "Only verified results are ever cached; suspicious and not_found answers are re-checked on every call.",
"type": "boolean"
},
"case_name": {
"type": [
"string",
"null"
]
},
"citation": {
"description": "The citation exactly as submitted, echoed back.",
"type": "string"
},
"confidence": {
"type": "string"
},
"court": {
"type": [
"string",
"null"
]
},
"courtlistener_id": {
"type": [
"string",
"null"
]
},
"courtlistener_url": {
"description": "Full opinion on CourtListener. Never truncate it.",
"type": [
"string",
"null"
]
},
"date_filed": {
"description": "ISO 8601 date.",
"type": [
"string",
"null"
]
},
"message": {
"type": [
"string",
"null"
]
},
"name_match": {
"description": "confirmed: the submitted name matches the case found. mismatch: a DIFFERENT case. not_checked: a bare citation carried no name to check.",
"enum": [
"confirmed",
"mismatch",
"not_checked",
null
],
"type": [
"string",
"null"
]
},
"source": {
"description": "Which lookup tier answered.",
"type": [
"string",
"null"
]
},
"status": {
"description": "verified: resolves to a real case and any submitted name matched. suspicious: the volume/reporter/page resolves but to a DIFFERENT case than the name given - the signature of a fabricated citation. not_found: no case matches.",
"enum": [
"verified",
"suspicious",
"not_found"
],
"type": "string"
},
"tier": {
"description": "Importance: 1=landmark, 2=highly cited, 3=standard.",
"type": [
"integer",
"null"
]
},
"verified": {
"description": "True only for status=verified. False is a finding, not an error.",
"type": "boolean"
}
},
"required": [
"citation",
"status",
"verified"
],
"type": "object"
},
"type": "array"
},
"success": {
"type": "boolean"
},
"suspicious_count": {
"type": "integer"
},
"total_citations": {
"type": "integer"
},
"verification_time_ms": {
"type": "integer"
},
"verified_count": {
"type": "integer"
}
},
"required": [
"success",
"total_citations",
"results",
"hallucination_risk"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}Example shape — generated from the schema, not a captured live response
{
"example": {
"hallucination_risk": "LOW",
"not_found_count": 0,
"results": [
{
"api_call_made": true,
"cached": true,
"case_name": "string",
"citation": "string",
"confidence": "string",
"court": "string",
"courtlistener_id": "string",
"courtlistener_url": "string",
"date_filed": "string",
"message": "string",
"name_match": "confirmed",
"source": "string",
"status": "verified",
"tier": 0,
"verified": true
}
],
"success": true,
"suspicious_count": 0,
"total_citations": 0,
"verification_time_ms": 0,
"verified_count": 0
},
"type": "string"
}Examples
curl "https://veridictum.legal/api/v1/agent/verify/bulk"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paidconst res = await fetch("https://veridictum.legal/api/v1/agent/verify/bulk");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}import httpx
res = httpx.get("https://veridictum.legal/api/v1/agent/verify/bulk")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerDetails
- Provider
- veridictum.legal
- Endpoint
- https://veridictum.legal/api/v1/agent/verify/bulk
- Machine-readable
/resources/37865.json