API reference · beta
One route, one verdict, one quote.
/v1/verify launches as a labelled beta on 2026-09-21. The shapes below are the contract this site is built against; the route that ships owns the final one.
CONFIRMED asserts only that the quoted filing text supports the claim as of the filing date.
Authentication
Every request carries a bearer token. API keys open 2026-09-21; write to hello@secclaim.com for early access.
authorization: Bearer $SECCLAIM_API_KEY base URL
https://api.secclaim.com POST /v1/verify
Judges one claim against one passage of one filing. Send content-type: application/json, and an Idempotency-Key header to make a retry safe.
Request
| field | type | notes | |
|---|---|---|---|
| claim | string | required | The sentence to verify. 1 to 1000 characters. |
| ticker | string | optional | Narrows retrieval to one issuer. Uppercase symbol. |
| as_of | string | optional | YYYY-MM-DD. Restricts evidence to filings on or before this date. |
{
"claim": "International revenues were approximately 52% of Alphabet's consolidated revenues in 2025.",
"ticker": "GOOGL"
} Response
Two coordinate systems, never mixed. quote_start and quote_end are UTF-8 byte offsets into evidence.text, which carries its own sha256. When the server also returns provenance.evidence_start and provenance.canonical_sha256, the quote’s position in the whole filing is evidence_start + quote_start.
| field | type | notes |
|---|---|---|
| request_id | string | Echoes the API Gateway request ID for support. |
| verdict | enum | CONFIRMED | CONTRADICTED | UNVERIFIABLE |
| quote | string | null | Verbatim span of evidence.text. null on UNVERIFIABLE. |
| quote_start | number | null | UTF-8 byte offset of the quote inside evidence.text, not inside the filing. |
| quote_end | number | null | Exclusive UTF-8 byte offset of the quote’s end. |
| confidence | number | The judge’s own probability that the verdict is correct. |
| reason | string | One sentence naming what in the passage decided it. |
| evidence.text | string | The exact passage the judge read. Nothing else was in scope. |
| evidence.sha256 | string | SHA-256 of evidence.text, so a receipt can be re-checked. |
| provenance.canonical_sha256 | string? | SHA-256 of the whole canonical filing text, when the server derived one. |
| provenance.evidence_start | number? | Where evidence.text begins in the canonical text. Add quote_start to locate the quote there. |
| provenance | object | accession, form, ticker, filed, source_url, retrieved_at, optional fiscal_period. |
| judge | object? | model, prompt_hash, parser_version. |
Verdict semantics
- CONFIRMED
- the passage states the claim. CONFIRMED asserts only that the quoted filing text supports the claim as of the filing date. It is never a statement about the world, about later periods, or about the company's current condition.
- CONTRADICTED
- the passage states something incompatible with the claim.
- UNVERIFIABLE
- anything else: the passage is silent on the claim, covers a different entity or a different period, or supports only part of the claim.
A wrong CONFIRMED is the most costly error. When the passage leaves doubt, the answer is UNVERIFIABLE.
Errors
| status | code | when |
|---|---|---|
| 400 | bad_request | The claim is missing, empty, or over the length cap. |
| 401 | unauthorized | No API key, or a key that is not recognised. |
| 429 | rate_limited | The key’s burst or monthly quota is spent. |
| 503 | unavailable | No judge answered before the deadline. |
{
"error": {
"code": "bad_request",
"message": "claim must be 1 to 1000 characters"
}
} Rate limits
| tier | verify / mo | burst / min | concurrent | facts / s |
|---|---|---|---|---|
| Free | 100 | 10 | 2 | 10 |
| Build | 2,000 | 30 | 5 | 20 |
| Production | 10,000 | 60 | 10 | 20 |
| Scale | 50,000 | 300 | 30 | 50 |
Full pricing is on the landing page.
MCP server
Publishes at launch. The server reads its key from SECCLAIM_API_KEY and returns the same verdict, quote, and offsets as the HTTP route.
npx -y @secclaim/mcp /v1/facts
Numeric claims answered straight from XBRL data. GA at launch; reference follows.
Evaluation caveats
- The published numbers come from a pre-launch evaluation on founder-generated claims. The launch gate re-runs it on a held-out set and publishes the confusion matrix.
- 7 seed labels are under adjudication.
- No us-east-1 latency was sampled in that run, so no production latency figure is published yet.
- A receipt records what one passage of one filing said on its filing date. It is not a statement about the company today.