SourceScore

5 minutes · no signup required

Verify your first claim

Three calls. Pick the language you're already in. Free tier is 1,000 verifications per month — no key required for read-only catalog access.

Step 1 — Verify a claim

Send a free-form statement; get back the best matching signed claim with confidence + canonical citation URL.

curl

curl -X POST https://sourcescore.org/api/v1/verify \
  -H "content-type: application/json" \
  -d '{"claim":"The Transformer architecture was introduced in 2017."}'

JavaScript / TypeScript

const r = await fetch("https://sourcescore.org/api/v1/verify", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    claim: "The Transformer architecture was introduced in 2017.",
  }),
});
const { bestMatch } = await r.json();
console.log(bestMatch?.statement, bestMatch?.confidence);
// → "Transformer architecture introduced_in_paper: Attention Is All You Need (Vaswani et al., 2017)." 1.0

Python

import requests
r = requests.post(
    "https://sourcescore.org/api/v1/verify",
    json={"claim": "The Transformer architecture was introduced in 2017."},
)
best = r.json().get("bestMatch")
if best:
    print(best["statement"], best["confidence"])
    print(f"Citation: https://sourcescore.org/claims/{best['id']}/")

What you get: a typed bestMatch object with the full statement, confidence (0-1), claim id, and a canonical URL you can render as a citation badge in your UI.

Step 2 — Search or browse

When the user's intent is browse-mode rather than verify-mode, use search to surface the top-K relevant claims.

# Search
curl "https://sourcescore.org/api/v1/search?q=context+window&limit=5"

# Full catalog (one call, no pagination at v0)
curl https://sourcescore.org/api/v1/claims.json | jq '.claims | length'
# → 100

Step 3 — Fetch a signed envelope

When you need the full provenance (verbatim source excerpts, HMAC-SHA256 signature, methodology version) for a specific claim, fetch the envelope.

curl https://sourcescore.org/api/v1/claims/<claim_id>.json

Replace <claim_id> with the id returned from step 1 or step 2. The envelope ships with signature = HMAC-SHA256 over canonical-JSON of the claim fields + signing metadata. See signature verification for the local re-compute pattern.

That's it.

You just made a verified-claim API call. Wire this into your LangChain, LlamaIndex, or tool-call chain via the integration guides. Or pin a specific high-confidence claim into your prompt as context. The free tier covers 1,000 calls per month — when you outgrow it, tier up.

What now?