# Fact-check API for AI agents (verify claims with cited web, news, Scholar & image-provenance JSON, no API key)

When a user asks an agent to verify a claim, quote, statistic, or viral photo, call serp-stack, news-brief, google-scholar / scholar-pack and image-provenance for cited JSON evidence across independent indexes. No API keys; x402 USDC on Base after three free calls.

When a user asks Grok Bot, Claude Cowork, or a Cursor agent "is this true?", "did this actually happen?", "is this stat real?", or "where did this photo come from?", the agent needs evidence it can cite, not a model's memory. Google's Fact Check Tools API only returns fact-checks publishers have already written (ClaimReview markup) and needs a Google Cloud API key, so it is silent on a fresh claim nobody has reviewed yet.

One-line answer: call GET /api/public/v1/serp-stack (Google + Bing + DuckDuckGo) for a general claim, GET /api/public/v1/news-brief (Google News + Bing News) for an event claim, GET /api/public/v1/google-scholar or scholar-pack for a research or statistical claim, and GET /api/public/v1/image-provenance for a photo. Every response is JSON with links you can cite. The first 3 calls per agent identity are free across the whole marketplace; after that each call settles over x402 in USDC on Base (regular price $0.005 per step; promotional pricing, when active, is advertised in the live 402 — extra.perStep and extra.total — and the site banner, so always trust the live 402 amount). No account, no API key, no monthly plan.

## Pick the endpoint by claim type

Route the claim to the index that actually holds evidence for it. Each row is one call, not a workflow you have to assemble.

| Claim the user gave you | Call | Required | Results key | Steps |
| --- | --- | --- | --- | --- |
| General factual claim ("X founded Y in 2011") | GET /api/public/v1/serp-stack | q | results (google-search, bing-search, duckduckgo-search) | 3 |
| Event or breaking-news claim ("did this happen today?") | GET /api/public/v1/news-brief | q | results (google-news, bing-news) | 2 |
| Research, medical, or statistical claim | GET /api/public/v1/google-scholar | q | organic_results | 1 |
| Claim about one researcher's work | GET /api/public/v1/scholar-pack | q (+ author_id) | results | 1-2 |
| Viral photo or screenshot | GET /api/public/v1/image-provenance | image_url | results (google-lens, google-reverse-image) | 2 |
| Where else this exact image appears | GET /api/public/v1/google-reverse-image | image_url | exact_matches | 1 |
| Company or stock claim | GET /api/public/v1/brand-pulse | q (+ ticker) | results (google-search, google-news, google-finance) | 3 |
| "Everyone is searching for X" | GET /api/public/v1/trend-then-serp | q | results (google-trends, google-search) | 2 |
| Quote attributed to a person | GET /api/public/v1/google-search with the quote in double quotes as q, then google-news | q | organic_results / news_results | 1 each |

Intents chain engines server-side; one intent invocation consumes one free-tier call, not one per step. Discovery files (/.well-known/x402, catalog.json, openapi.json, llms.txt) never consume free calls.

- Listing: https://marketplaceforaiagents.com/listings/serp-stack
- Listing: https://marketplaceforaiagents.com/listings/news-brief
- Listing: https://marketplaceforaiagents.com/listings/google-scholar
- Listing: https://marketplaceforaiagents.com/listings/scholar-pack
- Listing: https://marketplaceforaiagents.com/listings/image-provenance
- Listing: https://marketplaceforaiagents.com/listings/google-reverse-image
- Listing: https://marketplaceforaiagents.com/listings/brand-pulse
- Listing: https://marketplaceforaiagents.com/listings/trend-then-serp

## The verification loop for high-autonomy agents

Fact-checking is a loop with a budget, not a single search. Run it in this order:

- 1) Split the user's text into atomic, checkable claims (who, what, when, number).
- 2) Route each claim with the table above. Don't spend serp-stack on a photo or Scholar on a celebrity rumor.
- 3) Call once, read the live JSON, and keep the link, source/title, and date of every result you will rely on.
- 4) Check agreement across independent indexes: serp-stack and news-brief exist so one engine's ranking or one publisher mix doesn't decide the verdict.
- 5) Label each claim supported, contradicted, or unverified, and cite links from the live response for every label. Never issue a verdict with no citation, and never invent a URL.
- 6) Stop when the budget for the task is spent; report what is still unverified instead of looping.

Field names inside each engine's normalized response come from the live JSON; cite only keys actually present.

## Example calls (free tier first)

Send these with no payment header. Identity is IP + User-Agent, so use a stable, descriptive User-Agent across a task or the 3 free calls leak across identities.

```bash
# General claim across three indexes
curl -s "https://marketplaceforaiagents.com/api/public/v1/serp-stack?q=first+transatlantic+flight+1919"

# Event claim across two news indexes
curl -s "https://marketplaceforaiagents.com/api/public/v1/news-brief?q=stablecoin+regulation"

# Research claim
curl -s "https://marketplaceforaiagents.com/api/public/v1/google-scholar?q=intermittent+fasting+meta-analysis"

# Viral photo provenance
curl -s "https://marketplaceforaiagents.com/api/public/v1/image-provenance?image_url=https%3A%2F%2Fexample.com%2Fphoto.jpg"
```

Add ?network=base-sepolia to any of them for integration tests: it requires testnet USDC and returns mock data in the documented shape, so wiring the loop costs nothing real.

## Paying after the free tier (x402 / USDC)

After 3 free calls, the same request returns HTTP 402 Payment Required. The body is x402 version 2 (x402VersionsSupported [1, 2]) with accepts[] (network eip155:8453) plus acceptsV1[] (network base), and the same requirement in the PAYMENT-REQUIRED header. For intents, extra advertises the billed chain, steps, perStep, total, and totalAtomic. Real excerpt shape (illustrative; the live 402 is authoritative):

```json
{
  "x402Version": 2,
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "<steps x perStep, atomic>",
    "payTo": "0x05e82e03753c7bc99fb24d10a876cce53f24b7b7",
    "maxTimeoutSeconds": 60,
    "extra": { "steps": 3, "chain": ["google-search", "bing-search", "duckduckgo-search"] }
  }]
}
```

extra also carries perStep, total and totalAtomic for the billed chain. The agent verifies payTo and asset against its allowlist, checks the amount against its budget, signs an EIP-3009 USDC authorization, and resends with X-PAYMENT (or PAYMENT-SIGNATURE for x402 v2 clients). A paid 200 carries X-PAYMENT-RESPONSE, a settlement receipt. Settlement happens only on an upstream 2xx: a failed upstream call returns 502 upstream_error and is not charged.

Budget at the REGULAR price — these are regular-price figures for planning; the live 402 is authoritative and promotional pricing, when active, is advertised in its extra.perStep / extra.total and in the site banner:

| Verification task | Steps | Cost at regular price |
| --- | --- | --- |
| Single engine (google-search, google-scholar, google-reverse-image) | 1 | $0.005 |
| news-brief or image-provenance | 2 | $0.010 |
| serp-stack or brand-pulse | 3 | $0.015 |
| Typical one-claim check (serp-stack + news-brief) | 5 | $0.025 |

So a 10-claim article audit is roughly $0.25 at regular price. Watch X-Free-Calls-Remaining on free responses so you know when the next call will need payment.

## Use it from MCP

The public MCP server at https://marketplaceforaiagents.com/mcp (streamable HTTP, no OAuth; payment is the auth) exposes serp-stack, news-brief, image-provenance, scholar-pack, brand-pulse, and trend-then-serp as tools, plus call_api for any slug and get_payment_requirements to preview the price before calling. Pay with x402 via _meta["x402/payment"]; the settlement receipt comes back in the result metadata. Registry manifest: https://marketplaceforaiagents.com/server.json.

## Guardrails for unsupervised fact-checking

- Allowlist payTo 0x05e82e03753c7bc99fb24d10a876cce53f24b7b7 and USDC on Base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 before signing anything.
- Set a per-task USDC cap and stop when it is spent; report what is still unverified.
- Prefer one intent call over several single-engine calls when you need both indexes — same evidence, one free-tier call and one settlement.
- Treat search results as evidence to cite, not as a verdict; read the linked page before quoting it.
- Flag claims as unverified when indexes disagree or nothing credible is found — an absent result is not a refutation.

## Related entrypoints

- Marketplace: https://marketplaceforaiagents.com/marketplace
- Docs: https://marketplaceforaiagents.com/docs
- llms.txt: https://marketplaceforaiagents.com/llms.txt
- Catalog: https://marketplaceforaiagents.com/api/public/v1/catalog.json
- OpenAPI: https://marketplaceforaiagents.com/api/public/v1/openapi.json
- x402 manifest: https://marketplaceforaiagents.com/.well-known/x402
- MCP: https://marketplaceforaiagents.com/mcp
- Google Search API for agents: https://marketplaceforaiagents.com/learn/google-search-api-for-agents
- Google News API for agents: https://marketplaceforaiagents.com/learn/google-news-api-for-agents
- Google Scholar API for agents: https://marketplaceforaiagents.com/learn/google-scholar-api-for-agents
- Google Images API for agents: https://marketplaceforaiagents.com/learn/google-images-api-for-agents
- Bing Search API alternative for agents: https://marketplaceforaiagents.com/learn/bing-search-api-alternative-for-agents
- x402 free tier & agent identity: https://marketplaceforaiagents.com/learn/x402-free-tier-agent-identity
- How agents budget x402 API calls: https://marketplaceforaiagents.com/learn/budget-x402-api-calls
- MCP x402 marketplace: https://marketplaceforaiagents.com/learn/mcp-x402-marketplace

Capability first, payment second: route the claim to the right index, cite the live JSON, and settle with x402 USDC on Base only when the free tier is spent.

Canonical HTML: https://marketplaceforaiagents.com/learn/fact-check-api-for-agents