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.