Polygraph

Tools

Polygraph, where you work.

In your browser, in your AI assistant, or in your own code. One account, one set of credits: reading is free, and only a check spends.

Chrome extensionComing soon

Check the post you are reading.

Polygraph for Chrome opens a side panel beside the page with its real check: the claims, their verdicts and sources. Checking a new post shows the price first and spends nothing until you confirm.

Coming soon to Chrome
  1. 1Add it to Chrome from the Chrome Web Store when it is listed.
  2. 2Pin it: click the puzzle piece in Chrome’s toolbar, then the pin next to Polygraph.
  3. 3Install, then click Connect in the extension. Sign in here and it is connected — no key to copy. It shows up on your keys page as “Chrome Extension”.

MCP

Ask your assistant to check it.

Connect Polygraph to Claude, ChatGPT or any agent that speaks the Model Context Protocol. Sign in once from the assistant; it gets its own key, with the scope you choose. It can search fact checks, read posts, claims and your checks, see your balance, quote a check and run one — only a read + check connection can run a check, and that spends your credits.

MCP URL
https://beta.polygraphs.xyz/mcp

Connecting an AI assistant (OAuth) makes an ordinary pg_ key, named for the assistant: it is listed on your keys page, where you can cap or revoke it, and it works on this REST API like any other key.

Claude Desktop and claude.ai

  1. 1Open Settings → Connectors → Add custom connector.
  2. 2Name it Polygraph and paste https://beta.polygraphs.xyz/mcp, then click Connect.
  3. 3Sign in to Polygraph, choose Read or Read + check and an optional monthly credit cap, and approve. A key named “Claude (MCP)” appears on your keys page.

Claude Code

  1. 1Add the server, then run /mcp, pick polygraph and choose Authenticate.
  2. 2Or skip the sign-in and pass a key as a header.
Sign in
claude mcp add --transport http polygraph https://beta.polygraphs.xyz/mcp
With a key
claude mcp add --transport http polygraph https://beta.polygraphs.xyz/mcp \
  --header "Authorization: Bearer $POLYGRAPH_KEY"

ChatGPT

  1. 1Open Settings → Apps & Connectors → Advanced and turn on Developer mode.
  2. 2Create a connector with the URL https://beta.polygraphs.xyz/mcp and Authentication set to OAuth.
  3. 3Sign in to Polygraph and approve when ChatGPT sends you there.

Custom connectors depend on your ChatGPT plan.

Any other MCP client

  1. 1Point it at https://beta.polygraphs.xyz/mcp (Streamable HTTP). A client that supports MCP authorization signs you in by itself.
  2. 2A client that doesn’t: send a key from your keys page as Authorization: Bearer pg_….

No account? https://beta.polygraphs.xyz/api/mcp is a read-only MCP server over published fact checks, with no sign-in. Its tools: search_fact_checks, get_claim, get_check.

WebMCP

Agents in your browser, too.

Where the browser supports WebMCP, this site offers its tools to an agent running in the page, through navigator.modelContext. Every public page offers search and reads; check and claim pages add one for the page itself. Signed in, your browser also offers quote, check, your checks and your balance — a check still waits for you to confirm the price on the page. Nothing to install, and browsers without WebMCP see nothing different.

API

Build on the same checks.

A JSON API over HTTPS at https://beta.polygraphs.xyz/api/v1. Quote a post, check it, poll for the result, re-verify it later, and share it. Everything the site shows about a check is in the response.

Quickstart

1. Get a read + check key below and export it as POLYGRAPH_KEY. 2. Ask the price:

Shell
curl -s https://beta.polygraphs.xyz/api/v1/quote \
  -H "Authorization: Bearer $POLYGRAPH_KEY" \
  -H "content-type: application/json" \
  -d '{"kind":"check","input":"https://x.com/janedoe/status/1843123456789012345"}'

3. Check it. This spends the quoted credits; the answer carries the post’s contentId.

Shell
curl -s https://beta.polygraphs.xyz/api/v1/check \
  -H "Authorization: Bearer $POLYGRAPH_KEY" \
  -H "content-type: application/json" \
  -d '{"input":"https://x.com/janedoe/status/1843123456789012345"}'

4. Poll the post until state leaves checking. Send the ETag back as If-None-Match and an unchanged post costs a 304.

Shell
curl -s https://beta.polygraphs.xyz/api/v1/posts/<contentId> \
  -H "x-api-key: $POLYGRAPH_KEY"
Auth
A key (pg_…) as x-api-key or Authorization: Bearer. Keep it server-side.
Scopes
Read gets posts, claims and changes. Read + check can also quote, check, re-verify and share — and only it can spend.
Limits, per key
Reads 60 a minute, 5,000 a day. Checks 10 a minute, 200 a day. Days are UTC. Past a limit: 429 with Retry-After.
Pricing
Reads are free today. Coming: each key keeps 1,000 free reads a day, and a read past that costs 1 credit. A check costs 25 credits for a text or image post, 5 credits per started minute of video, with a minimum of 25 credits — the same as on the site, from the same wallet. A key can carry a monthly credit cap. Pricing
Errors
JSON { error, code } with a stable code. 401 bad key, 402 out of credits or over the key’s cap, 403 wrong scope, 429 too fast. All codes

Keys

A key for each place you use it.

Name each key for where it lives — “my script”, “Claude (MCP)” — and give it only the scope it needs. Each shows when it was last used and what it read, checked and spent today and this month. Revoke one and it stops at once; the others keep working.