Veridictum Legal
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.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.1 USDC on Base to 0xb1df…39E1c. The signed payment is good for 5 minutes.
- Paid to
- 0xb1df…39E1c
- USD Coin contract
- 0x8335…02913
- Payment window
- 5 minutes
- As published
- 100000 smallest units
That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.
- Paid to
- i1vkcs…q6vn9
- Token contract
- EPjFWd…TDt1v
- Payment window
- 5 minutes
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0xb1df90631E2e27C2eA755F91c050732850739E1c",
"amount": "100000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"
},
"payTo": "i1vkcsuxLTSSBY7ng3sg3SpCk5JfMZpDqhsqGMq6vn9",
"amount": "100000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 300
}
]Extensions
{
"bazaar": {
"info": {
"input": {
"body": {
"citations": [
"Miranda v. Arizona, 384 U.S. 436 (1966)",
"Varghese v. China Southern Airlines Co., 925 F.3d 1339 (11th Cir. 2019)"
]
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"results": [
{
"tier": 1,
"court": "Supreme Court of the United States",
"cached": true,
"source": "local_corpus",
"status": "verified",
"message": "Citation verified",
"citation": "Miranda v. Arizona, 384 U.S. 436 (1966)",
"verified": true,
"case_name": "Miranda v. Arizona",
"confidence": "high",
"date_filed": "1966-06-13",
"name_match": "confirmed",
"api_call_made": false,
"courtlistener_id": "107252",
"courtlistener_url": "https://www.courtlistener.com/opinion/107252/miranda-v-arizona/"
},
{
"tier": null,
"court": null,
"cached": false,
"source": null,
"status": "not_found",
"message": "No case found for this citation",
"citation": "Varghese v. China Southern Airlines Co., 925 F.3d 1339 (11th Cir. 2019)",
"verified": false,
"case_name": null,
"confidence": "none",
"date_filed": null,
"name_match": null,
"api_call_made": true,
"courtlistener_id": null,
"courtlistener_url": null
}
],
"success": true,
"verified_count": 1,
"not_found_count": 1,
"total_citations": 2,
"suspicious_count": 0,
"hallucination_risk": "MEDIUM",
"verification_time_ms": 412
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"citations"
],
"properties": {
"citations": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"minItems": 1,
"description": "Up to 50 citations, each a full or bare citation in the same shapes the single-citation route accepts. One flat price for the call."
},
"include_details": {
"type": "boolean",
"default": true,
"description": "Optional; full case details are returned by default."
}
}
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"required": [
"success",
"total_citations",
"results",
"hallucination_risk"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"citation",
"status",
"verified"
],
"properties": {
"tier": {
"type": [
"integer",
"null"
],
"description": "Importance: 1=landmark, 2=highly cited, 3=standard."
},
"court": {
"type": [
"string",
"null"
]
},
"cached": {
"type": "boolean",
"description": "Only verified results are ever cached; suspicious and not_found answers are re-checked on every call."
},
"source": {
"type": [
"string",
"null"
],
"description": "Which lookup tier answered."
},
"status": {
"enum": [
"verified",
"suspicious",
"not_found"
],
"type": "string",
"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."
},
"message": {
"type": [
"string",
"null"
]
},
"citation": {
"type": "string",
"description": "The citation exactly as submitted, echoed back."
},
"verified": {
"type": "boolean",
"description": "True only for status=verified. False is a finding, not an error."
},
"case_name": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string"
},
"date_filed": {
"type": [
"string",
"null"
],
"description": "ISO 8601 date."
},
"name_match": {
"enum": [
"confirmed",
"mismatch",
"not_checked",
null
],
"type": [
"string",
"null"
],
"description": "confirmed: the submitted name matches the case found. mismatch: a DIFFERENT case. not_checked: a bare citation carried no name to check."
},
"api_call_made": {
"type": "boolean"
},
"courtlistener_id": {
"type": [
"string",
"null"
]
},
"courtlistener_url": {
"type": [
"string",
"null"
],
"description": "Full opinion on CourtListener. Never truncate it."
}
}
},
"description": "One entry per submitted citation, in order."
},
"success": {
"type": "boolean"
},
"verified_count": {
"type": "integer"
},
"not_found_count": {
"type": "integer"
},
"total_citations": {
"type": "integer"
},
"suspicious_count": {
"type": "integer"
},
"hallucination_risk": {
"enum": [
"LOW",
"MEDIUM",
"HIGH"
],
"type": "string",
"description": "LOW when every citation verified, MEDIUM at 1-2 not found, HIGH at 3 or more."
},
"verification_time_ms": {
"type": "integer"
}
}
}
}
}
}
}
}
}Provenance
- Seen in the source catalog
- 2026-09-21 01:31Z
- Last indexed by Roundhouse
- 2026-09-24 08:00Z
- Last enriched (probe, favicon, geo)
- 2026-09-21 02:15Z
- x402 version
- 2
- Max timeout
- 300s
- Liveness probe
- HTTP 405
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 4 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service Veridictum Legal and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=Veridictum%20Legal' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://veridictum.legal/api/v1/agent/verify/bulk, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402, or use an organization key from https://roundhouseai.io/dashboard/team. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.