Put a claim-fidelity gate in any app or agent.

Anything that must not say more than its source (summaries, RAG answers, patient leaflets, press releases) can be checked sentence by sentence in one call. Free key, no signup.

Instant · no email · works for the REST API and the MCP connector

REST API: check text against its source in one call.

Send the source (what the text must not exceed) and the text. You get each sentence's claim strength, an overclaim probability, and a zone — block, review or ok — using the same calibrated thresholds as the live demo.

curl -s https://d174bz5yly61n4.cloudfront.net/v1/check \
  -H "Authorization: Bearer YOUR_KEY" -H "content-type: application/json" \
  -d '{"source": "Statin use was associated with a lower incidence of dementia.",
       "text":   "Statins prevent dementia. Researchers studied 30,000 adults."}'

Try your key right here

Get a key above first.

Results appear here.

Endpoints and limits

EndpointDoesPer key per day
POST /v1/checkDecider verdict per sentence, no language model300 · free
POST /v1/rewriteCheck, then Claude fixes blocked sentences; Decider verifies each fix20
POST /v1/calibrateYour labelled pairs → a threshold with a stated false-flag rate3 jobs
GET /v1/jobs/{id}Calibration result—
GET /v1/usageYour usage today—

Up to 25 sentences per check, 12 per rewrite. Full schema in the interactive API reference. Limits reset at 00:00 UTC.

MCP connector: give your agent a claim-fidelity tool.

HypeCheck speaks the Model Context Protocol at https://d174bz5yly61n4.cloudfront.net/mcp with two tools: check_claims and suggest_rewrites. Use the same key.

# pip install strands-agents httpx   (tested with strands-agents 1.61, mcp 2.1)
import httpx
from mcp.client.streamable_http import streamable_http_client
from strands import Agent
from strands.tools.mcp import MCPClient

hypecheck = MCPClient(lambda: streamable_http_client(
    "https://d174bz5yly61n4.cloudfront.net/mcp",
    http_client=httpx.AsyncClient(headers={"Authorization": "Bearer YOUR_KEY"}, timeout=120)))

with hypecheck:
    agent = Agent(tools=hypecheck.list_tools_sync(),
                  system_prompt="Before you publish a summary, call check_claims with the source and your draft.")
    agent("Source: 'Statin use was associated with less dementia.' Draft: 'Statins prevent dementia.' Check it.")
    # → "Verdict: BLOCKED. The draft jumps from an association to direct causation…"

Bring your own data: calibrate the gate on your own domain.

Our thresholds were fitted on health press releases. If your text is different — legal summaries, product docs, clinical notes — send 10 to 60 of your own labelled pairs and get a threshold with a stated false-flag rate, computed by split conformal prediction.

Try it with your own pairs

One pair per line: source | text | faithful or overclaim. Or upload a CSV with those three columns.

0 pairs

Your threshold, its promise and a chart of your pairs will appear here.
Prefer the API? Same thing with curl
curl -s https://d174bz5yly61n4.cloudfront.net/v1/calibrate \
  -H "Authorization: Bearer YOUR_KEY" -H "content-type: application/json" \
  -d '{"alpha": 0.2, "pairs": [
        {"source": "Use was associated with lower risk.", "derived": "Users had lower risk.",  "label": "faithful"},
        {"source": "Use was associated with lower risk.", "derived": "It prevents disease.",   "label": "overclaim"},
        ... 10 to 60 pairs ... ]}'
# → {"job": "…", "poll": "/v1/jobs/…"}   then GET the poll URL:
# → {"status": "done", "result": {"threshold": 0.44, "guarantee": "…at most 20% of faithful sentences are flagged", …}}

Use the threshold with the open-source gate: ClaimFidelityGate(..., threshold=0.44) — see decision_pattern/.

Bring your own AWS: run the whole thing in your own account.

For sensitive text that shouldn't leave your account, deploy HypeCheck with one click. Your drafts, your Amazon Bedrock, your Strands Decider.

1 · Download the template 2 · Open CloudFormation ↗

In the console choose Upload a template file, pick the file, keep the defaults and create. Or from a terminal:

aws cloudformation create-stack --stack-name hypecheck   --template-body file://hypecheck-stack.yaml --capabilities CAPABILITY_IAM
aws cloudformation describe-stacks --stack-name hypecheck --query "Stacks[0].Outputs"

Tested end to end on 2026-10-17: stack created, page and API healthy about 15 minutes later. View the template

What it creates
  • One EC2 instance (CPU by default, GPU if you choose) running Strands Decider and the web app
  • An IAM role limited to invoking Anthropic models on Bedrock, plus Systems Manager access (no SSH key needed)
  • A security group open on port 80 only
  • The daily HypeWatch job and the same API and MCP endpoints, on your own URL

You need Claude model access enabled in Amazon Bedrock. The instance bills by the hour (c7i.4xlarge ≈ $0.71/h); delete the stack to stop it.

Privacy and limits