# PolitiFact API

> PolitiFact provides fact checks and Truth-O-Meter ratings as a workflow and API.

PolitiFact’s Search fact checks method returns matching fact checks and ratings, using a required claim, topic, or person as input.

- Page: https://fous.com/tools/politifact
- Handle: `@politifact`
- Category: [News](https://fous.com/tools/category/news)
- Source website: https://politifact.com
- Last verified: Sep 29, 2026

## Methods

### Search fact checks

Operation `search_fact_checks`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find PolitiFact fact checks matching a claim, topic, or person, newest first. For an exact person match, returns checks of that person’s statements; otherwise searches fact-check text. Topic ratings are filtered from matching search pages.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | yes | `"Joe Biden"` | Claim, topic, or person to find, for example gas prices or Joe Biden. |
| `rating` | string | no | `"false"` | Truth-O-Meter rating, for example mostly_false; any includes all ratings. |
| `max_results` | integer | no | `5` | Most fact checks to return, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Claim, topic, or person to find, for example gas prices or Joe Biden.",
      "examples": [
        "Joe Biden",
        "gas prices",
        "zzzzunrealword273718"
      ]
    },
    "rating": {
      "enum": [
        "any",
        "true",
        "mostly_true",
        "half_true",
        "mostly_false",
        "false",
        "pants_on_fire"
      ],
      "type": "string",
      "default": "any",
      "description": "Truth-O-Meter rating, for example mostly_false; any includes all ratings.",
      "examples": [
        "false",
        "any",
        "mostly_false"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Most fact checks to return, for example 20.",
      "x-fous-developer": true,
      "examples": [
        5,
        25,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "Joe Biden",
      "rating": "false",
      "max_results": 5
    },
    {
      "query": "gas prices",
      "rating": "any",
      "max_results": 25
    },
    {
      "query": "zzzzunrealword273718"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `fact_checks` | array |  | Matching fact checks, newest first. |
| `fact_checks[].rating` | string or null | `"False"` | Truth-O-Meter rating label. |
| `fact_checks[].said_at` | string or null | `"stated on January 17, 2025 in a statement:"` | Where and when the claim was stated, as shown by PolitiFact. |
| `fact_checks[].speaker` | string or null | `"Joe Biden"` | Person or group credited with the claim. |
| `fact_checks[].statement` | string | `"“The Equal Rights Amendment has become part of our Constitution.”"` | Statement checked. |
| `fact_checks[].fact_checker` | string or null | `"Caleb McCullough"` | Name of the fact checker. |
| `fact_checks[].fact_check_url` | string | `"https://politifact.com/factchecks/2025/jan/22/joe-biden/bidens-false-claim-that-the-equal-rights-amendment/"` | Link to the fact-check page. |
| `fact_checks[].published_date` | string or null | `"2025-01-22"` | Date the fact check was published. |
| `fact_checks[].rating_image_url` | string or null | `"https://politifact.com/wp-content/themes/politifact-wp/assets/img/meter-false.jpg"` | Link to the rating image. |

**Example input**

```json
{
  "query": "Joe Biden",
  "rating": "false",
  "max_results": 5
}
```

**Example output**

```json
{
  "fact_checks": [
    {
      "rating": "False",
      "said_at": "stated on January 17, 2025 in a statement:",
      "speaker": "Joe Biden",
      "statement": "“The Equal Rights Amendment has become part of our Constitution.”",
      "fact_checker": "Caleb McCullough",
      "fact_check_url": "https://politifact.com/factchecks/2025/jan/22/joe-biden/bidens-false-claim-that-the-equal-rights-amendment/",
      "published_date": "2025-01-22",
      "rating_image_url": "https://politifact.com/wp-content/themes/politifact-wp/assets/img/meter-false.jpg"
    },
    {
      "rating": "False",
      "said_at": "stated on July 13, 2024 in a statement to the media:",
      "speaker": "Joe Biden",
      "statement": "“The idea that there’s political violence or violence in America like this is just unheard of.”",
      "fact_checker": "Amy Sherman,",
      "fact_check_url": "https://politifact.com/factchecks/2024/jul/15/joe-biden/is-political-violence-unheard-of-the-long-history/",
      "published_date": "2024-07-15",
      "rating_image_url": "https://politifact.com/wp-content/themes/politifact-wp/assets/img/meter-false.jpg"
    },
    {
      "rating": "False",
      "said_at": "stated on May 14, 2024 in an interview with Yahoo Finance:",
      "speaker": "Joe Biden",
      "statement": "Inflation “was 9% when I came to office.”",
      "fact_checker": "Louis Jacobson",
      "fact_check_url": "https://politifact.com/factchecks/2024/may/15/joe-biden/joe-biden-wrong-that-he-inherited-9-inflatio/",
      "published_date": "2024-05-15",
      "rating_image_url": "https://politifact.com/wp-content/themes/politifact-wp/assets/img/meter-false.jpg"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@politifact",
  "visibility": "public",
  "operation": "search_fact_checks",
  "version": 1,
  "input": {
    "query": "Joe Biden",
    "rating": "false",
    "max_results": 5
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@politifact\",\n  \"visibility\": \"public\",\n  \"operation\": \"search_fact_checks\",\n  \"version\": 1,\n  \"input\": {\n    \"query\": \"Joe Biden\",\n    \"rating\": \"false\",\n    \"max_results\": 5\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@politifact",
  "visibility": "public",
  "operation": "search_fact_checks",
  "version": 1,
  "input": {
    "query": "Joe Biden",
    "rating": "false",
    "max_results": 5
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/politifact`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `search_fact_checks`: Search fact checks. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-politifact https://api.fous.com/mcp/tools/politifact --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Research fact checks about a claim, topic, or person
- Review Truth-O-Meter ratings for matching claims
- Track statements credited to a person or group
- Find publication dates for relevant fact checks

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this PolitiFact tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a PolitiFact account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from politifact.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What has PolitiFact checked about a topic?

Search fact checks returns matching checks, newest first, for a claim, topic, or person.

### What rating did a claim receive?

Search fact checks returns the Truth-O-Meter rating for each matching fact check.

### Who made a checked statement?

Search fact checks returns the person or group credited with each matching claim.

## Related

- [Snopes API](https://fous.com/tools/snopes.md): Snopes provides fact checks of rumors, claims, and misinformation, including relevant search results and the newest checks overall or by topic.
- [Fox News API](https://fous.com/tools/fox-news.md): Fox News returns section-page headlines, keyword-matched articles among up to 100 available results, and readable article text, including the latest live-blog updates.
- [Polymarket API](https://fous.com/tools/polymarket.md): Polymarket shows searchable markets with search-time odds and sometimes-unavailable 24-hour volume, ranks open markets by trading, and tracks chances over time, sometimes without recent points.
- [FEC API](https://fous.com/tools/fec.md): FEC provides federal campaign finance data, including candidate fundraising and spending for a two-year period and candidate totals from the latest available filings.
- [NPR API](https://fous.com/tools/npr.md): NPR returns displayed section headlines, searchable articles with summaries and publication details, and available article text; date-filtered searches may miss older stories edited much later.
- [AP News API](https://fous.com/tools/ap-news.md): AP News provides reporting, up to 50 public-page headlines, searchable articles visible in its search, and full text when accessible.
- [Ballotpedia API](https://fous.com/tools/ballotpedia.md): Ballotpedia provides state and local election information, ballot measure coverage, statewide measure details and results by year, and candidate and officeholder profiles with available background and election results.
- [Federal Register API](https://fous.com/tools/federal-register.md): Search United States federal rules, proposed rules, notices, and presidential documents.
- [All News tools](https://fous.com/tools/category/news)
