Snopes API: Search fact-checks
Searches Snopes for fact-checks of a claim, in relevance order, and reads each fact-check's claim, rating, headline, summary, author and date. News and other pages are excluded.
Unofficial. Not affiliated with or endorsed by Snopes.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Claim, required
claim The rumour or claim to search for, e.g. Bill Gates microchip vaccine.
vaccine
- Max Results optional
max_results Maximum fact-checks to return, e.g. 10.
16
Whole number from 1 to 50. Default
10.
Input as JSON
{ "claim": "vaccine", "max_results": 16}Output
{ "fact_checks": [ { "claim": "The U.S. Centers for Disease Control and Prevention said the COVID-19 vaccines caused the largest carcinogenic exposure in history.", "author": "Anna Rascouët-Paz", "rating": "False", "summary": "The claim stemmed from two recent cohort studies, one from South Korea and one from Italy.", "headline": "CDC didn't say COVID-19 vaccines are 'largest carcinogenic exposure in history'", "image_link": "https://mediaproxy.snopes.com/width/1200/height/675/https://media.snopes.com/2026/08/cdc_did_not_say_covid-19_vaccines_are_largest_carcinogenic_exposure_in_history.png" , "published_date": "2026-08-03", "fact_check_link": "https://www.snopes.com/fact-check/cdc-covid-vaccines-carcinogenic/" }, { "claim": "A copy-paste message authentically lists side effects of the Pfizer BioNTech COVID-19 vaccine released by the pharmaceutical company.", "author": "Laerke Christensen", "rating": "Mostly False", "summary": "The list contains \"adverse events\" reported to Pfizer, which are not the same as side effects.", "headline": "Years-Old List of Alleged Pfizer COVID-19 Vaccine 'Side Effects' Is Misleading", "image_link": "https://mediaproxy.snopes.com/width/1200/height/675/https://media.snopes.com/2025/01/pfizer_biontech_covid_vaccine_side_effect.png" , "published_date": "2025-01-17", "fact_check_link": "https://www.snopes.com/fact-check/pfizer-covid-vaccine-adverse-events/" }, { "claim": "A photograph shows U.S. Sen. Rand Paul receiving a COVID-19 vaccination.", "author": "Dan Evon", "rating": "Miscaptioned", "summary": "In 2015, Paul invited a reporter to photograph him getting a vaccine because he was annoyed that he was \"being characterized as someone who’s against vaccines.\"", "headline": "Did Rand Paul Get COVID-19 Vaccination in Viral Photo?", "image_link": "https://mediaproxy.snopes.com/width/1200/height/675/https://media.snopes.com/2021/08/rand-paul-wiki-1.jpg" , "published_date": "2021-08-09", "fact_check_link": "https://www.snopes.com/fact-check/rand-paul-vaccination-photo/" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"snopes.com/search_fact_checks","input":{"claim":"vaccine","max_results":16}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "snopes.com/search_fact_checks" , "input": { "claim": "vaccine", "max_results": 16 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "snopes.com/search_fact_checks" , "input": { "claim": "vaccine", "max_results": 16 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run snopes.com/search_fact_checks# with {"claim":"vaccine","max_results":16}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "claim" ], "properties": { "claim": { "type": "string", "description": "The rumour or claim to search for, e.g. Bill Gates microchip vaccine." }, "max_results": { "type": "integer", "default": 10, "maximum": 50, "minimum": 1, "description": "Maximum fact-checks to return, e.g. 10." } }}Output schema
{ "type": "object", "required": [ "fact_checks" ], "properties": { "fact_checks": { "type": "array", "items": { "type": "object", "required": [ "claim", "rating", "headline", "summary", "author", "published_date", "image_link", "fact_check_link" ], "properties": { "claim": { "type": [ "string", "null" ], "description": "Claim in Snopes’ words." }, "author": { "type": [ "string", "null" ], "description": "Article author." }, "rating": { "type": [ "string", "null" ], "description": "Snopes rating label." }, "summary": { "type": [ "string", "null" ], "description": "One-sentence description." }, "headline": { "type": [ "string", "null" ], "description": "Article headline." }, "image_link": { "type": [ "string", "null" ], "description": "Article image link." }, "published_date": { "type": [ "string", "null" ], "description": "Published date (YYYY-MM-DD)." }, "fact_check_link": { "type": [ "string", "null" ], "description": "Snopes fact-check page link." } }, "additionalProperties": false }, "description": "Matching Snopes fact-checks in search relevance order." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
snopes.com/search_fact_checks- Returns
- claim, rating, headline, summary, author, published date, image link, fact-check link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method snopes.com/search_fact_checks with the inputs above.
Ask your agent
- Has Snopes rated the claim that 5G towers spread COVID-19? Need the rating and who wrote it.
- Is it true that Walmart is closing all its stores on Sundays? Find fact-checks on this rumor.
- Pull up to 20 fact-checks about the claim that the moon landing was filmed in a studio, with ratings and publication dates.
- Check snopes.com for anything debunking or confirming that drinking hot water kills the coronavirus — just the top 3 results.
- My uncle keeps sharing a post saying Coca-Cola can dissolve a tooth overnight. What verdicts have fact-checkers given on that, and what did they say?
See more
All Snopes methodsLists the newest Snopes fact checks overall or in a topic, with each claim, rating, author, publication date, image and article link. Topics follow Snopes article categories; less active topics may have fewer recent checks.
snopes.com/list_latest_fact_checksFinds PolitiFact fact checks matching a claim, topic, or person, newest first. An exact person match returns that person's checked statements; otherwise fact-check text is searched. An optional Truth-O-Meter rating filters the results.
politifact.com/search_fact_checksFinds companies on Trustpilot by name or what they do, with TrustScore, review count, categories, location, logo and links. A preferred country moves companies listed in that country to the front.
trustpilot.com/search_companiesFinds public Reddit posts by topic, optionally in one community, for a time window and sort order. Returns up to 100 posts in Reddit search order with score, comment count, text and link.
reddit.com/search_postsFinds BBC News articles matching search words, newest first or by relevance, with publication time, authors, section and summary, optionally limited to a date range. Date filters and newest order apply to the first 180 search matches; older or less relevant matches may be missed.
bbc.com/search_newsSearches Bing and returns web results in the order shown, with snippets, answer-box text when available, and related searches.
bing.com/search_webSearches Reuters articles by keyword through Google News, with optional publication date range, order and page. Summaries and bylines are filled in when Reuters serves the article page.
reuters.com/search_newsSearches Open Food Facts packaged foods by name, optionally filtered by diet, country where sold and brand, ordered by popularity (most scanned first).
openfoodfacts.org/search_products