Snopes API: List latest fact checks
Lists 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.
Unofficial. Not affiliated with or endorsed by Snopes.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Topic optional
topic Topic to list, for example politics.
all
One of
all,politics,health,entertainment,science,technology,business,news. Defaultall.- Max Results optional
max_results Maximum number of checks to return, for example 20.
20
Whole number from 1 to 50. Default
20.
Input as JSON
{ "topic": "all", "max_results": 20}Output
{ "fact_checks": [ { "claim": "Former U.S. Rep. Liz Cheney, a Wyoming Republican, is getting a divorce because of an affair with Rep. Jamie Raskin, a Maryland Democrat.", "topic": "Politics", "author": "Rae Deng", "rating": "Originated as Satire", "headline": "Bogus story claims Liz Cheney is getting divorced due to affair with Jamie Raskin", "image_link": "https://mediaproxy.snopes.com/width/1200/height/675/https://media.snopes.com/2026/09/liz_cheney_and_jamie_raskin.png" , "published_date": "2026-09-28", "fact_check_link": "https://www.snopes.com/fact-check/liz-cheney-divorce-raskin-affair/" }, { "claim": "The official poverty rate in the U.S. hit an all-time historical low in 2025.", "topic": "Politics", "author": "Laerke Christensen", "rating": "True", "headline": "Is official US poverty rate at all-time historical low, as Trump claimed?", "image_link": "https://mediaproxy.snopes.com/width/1200/height/675/https://media.snopes.com/2026/09/trump_best_poverty_rate.png" , "published_date": "2026-09-28", "fact_check_link": "https://www.snopes.com/fact-check/trump-best-poverty-quote/" }, { "claim": "Major League Baseball approached U.S. President Donald Trump's administration regarding the possibility of hosting a game at a national park, specifically at Grand Teton National Park", "topic": "Politics", "author": "Anna Rascouët-Paz", "rating": "Mixture", "headline": "Did MLB approach White House about hosting game at Grand Teton National Park?", "image_link": "https://mediaproxy.snopes.com/width/1200/height/675/https://media.snopes.com/2026/09/did_mlb_approach_white_house_about_hosting_baseball_game_at_national_park.png" , "published_date": "2026-09-28", "fact_check_link": "https://www.snopes.com/fact-check/national-park-mlb-game/" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"snopes.com/list_latest_fact_checks","input":{"topic":"all","max_results":20}}' # 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/list_latest_fact_checks" , "input": { "topic": "all", "max_results": 20 }})# 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/list_latest_fact_checks" , "input": { "topic": "all", "max_results": 20 } }), 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/list_latest_fact_checks# with {"topic":"all","max_results":20}"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", "properties": { "topic": { "enum": [ "all", "politics", "health", "entertainment", "science", "technology", "business", "news" ], "type": "string", "default": "all", "description": "Topic to list, for example politics." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum number of checks to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "fact_checks" ], "properties": { "fact_checks": { "type": "array", "items": { "type": "object", "required": [ "claim", "rating", "headline", "author", "published_date", "topic", "image_link", "fact_check_link" ], "properties": { "claim": { "type": [ "string", "null" ], "description": "Claim as Snopes words it." }, "topic": { "type": [ "string", "null" ], "description": "Snopes article topic." }, "author": { "type": [ "string", "null" ], "description": "Author name." }, "rating": { "type": [ "string", "null" ], "description": "Snopes rating label." }, "headline": { "type": [ "string", "null" ], "description": "Fact-check headline." }, "image_link": { "type": [ "string", "null" ], "description": "Featured image link." }, "published_date": { "type": [ "string", "null" ], "description": "Publication date in YYYY-MM-DD format." }, "fact_check_link": { "type": [ "string", "null" ], "description": "Fact-check page link." } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
snopes.com/list_latest_fact_checks- Returns
- claim, rating, headline, author, published date, topic, 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/list_latest_fact_checks with the inputs above.
Ask your agent
- Show me the 10 most recent fact checks on Snopes about politics, with the claim and the rating for each.
- What health claims have been debunked or verified lately? Give me around 15 of the newest ones with ratings and links.
- I need the latest 30 fact checks across all topics from Snopes, including author and publish date.
- Any new fact checks on viral entertainment or celebrity rumors? List the last 5 with their verdicts.
- Pull the newest science fact-checks, up to 25, so I can see which claims were rated true, false, or mixed.
See more
All Snopes methodsSearches 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.
snopes.com/search_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_checksLists public Medium articles for a topic, newest first or popular this week, with author, publication, reading time, claps and membership status.
medium.com/list_topic_articlesFinds an ESPN league or team by name and lists the latest headlines ESPN publishes for it, newest first.
espn.com/list_newsLists the current top Google News stories, overall or for one topic, in a chosen country and language edition.
news.google.com/list_top_storiesFinds public Substack newsletters matching a topic, in Substack's search order. Subscriber counts are null when Substack does not display one.
substack.com/search_newslettersFinds a WHO fact sheet by health topic in the WHO fact-sheet directory. Returns its key facts, overview and sections in page order.
who.int/get_fact_sheetLists the newest Pitchfork album reviews. You can filter them by genre or limit them to Best New Music.
pitchfork.com/list_latest_reviews