Skip to main content
POST
/
v2
/
reports
/
factcheck
/
claims
curl -X POST https://api.tryprofound.com/v2/reports/factcheck/claims \
  -H "X-API-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "category_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "start_date": "2026-06-09",
    "end_date": "2026-06-15",
    "include": ["reasoning", "citation_sources"]
  }'
{
  "info": {
    "total_results": 41,
    "count": 25,
    "next_cursor": "eyJ…",
    "models": ["ChatGPT", "Google Gemini", "Perplexity", "Claude", "..."],
    "group_by": [],
    "start_date": "2026-06-09",
    "end_date": "2026-06-15",
    "filter": null,
    "include": ["reasoning", "citation_sources"]
  },
  "data": [
    {
      "cluster_id": "7a576…",
      "claim": "Profound covers more than 10 AI engines.",
      "occurrence": 6.6,
      "reasoning": "Conflates GEO tooling with the engines Profound actually tracks.",
      "citation_sources": [
        {
          "href": "tryprofound.com/blog/best-geo-tools",
          "hostname": "tryprofound.com",
          "citation_category": "owned",
          "domain_category": "owned",
          "snippet": "Profound tracks ten answer engines…",
          "citation_share": 14.2
        }
      ]
    }
  ]
}
The inaccurate claims behind your accuracy score — the false statements AI answers made about your category, from the platform’s FactCheck tab. Returns a flat, paginated list, or group_by one dimension to section them. A claim is { cluster_id, claim, occurrence } plus whatever include adds.
  • occurrence: the % of scoped responses that carry the claim.
  • include: any of theme, reasoning, models, evidence, citation_sources.
    • models[] — which models make the claim: { id, name, occurrence }.
    • evidence[] — refuting knowledge-base snippets: { id, kb_path, kb_snippet, source_updated_at }.
    • citation_sources[] — the cited pages driving the claim: { href, hostname, citation_category, domain_category, snippet, citation_share }. citation_share is a percentage, model-balanced, matching the Citations tab.
  • group_by: 0 or 1 of model, region, persona, prompt, topic, tag, theme (no citation or date — those are scores dimensions). Empty → one flat paginated list; a dimension → one section per value: { <dim>: { id, name }, accuracy, accurate, inaccurate, total_claims, claims: […] }, each carrying all its claims.
  • filter: the same constrained tree as scores — a top-level and of single-field leaves over model/topic/region/persona/prompt/tag (only topic negatable).
A few guardrails return 422 (with a message): citation_sources isn’t available with group_by (its share is scope-sensitive) — request it on the flat list; group_by: ["tag"] can’t be combined with a tag filter (tags are multi-valued, so co-tag sections would escape the filter); and sectioning by model over an unusually large scope (>~2000 inaccurate clusters) — narrow the range or filter.
POST /v2/reports/factcheck/claims/stream takes the same request body and returns Server-Sent Events: one summary event (the info block), then one result event per claim. limit/cursor are ignored; it returns everything by default. Pass max_results to cap.The stream is the flat list onlygroup_by and the per-claim evidence/citation_sources lookups return 422; use the non-stream endpoint for sectioned or enriched claims.
Response (text/event-stream)
event: summary
data: { ...the info block... }

event: result    ← one per claim, same shape as data[] above
data: {"cluster_id": "7a5…", "claim": "Profound covers more than 10 AI engines.", "occurrence": 6.6}
curl -X POST https://api.tryprofound.com/v2/reports/factcheck/claims \
  -H "X-API-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "category_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "start_date": "2026-06-09",
    "end_date": "2026-06-15",
    "include": ["reasoning", "citation_sources"]
  }'
{
  "info": {
    "total_results": 41,
    "count": 25,
    "next_cursor": "eyJ…",
    "models": ["ChatGPT", "Google Gemini", "Perplexity", "Claude", "..."],
    "group_by": [],
    "start_date": "2026-06-09",
    "end_date": "2026-06-15",
    "filter": null,
    "include": ["reasoning", "citation_sources"]
  },
  "data": [
    {
      "cluster_id": "7a576…",
      "claim": "Profound covers more than 10 AI engines.",
      "occurrence": 6.6,
      "reasoning": "Conflates GEO tooling with the engines Profound actually tracks.",
      "citation_sources": [
        {
          "href": "tryprofound.com/blog/best-geo-tools",
          "hostname": "tryprofound.com",
          "citation_category": "owned",
          "domain_category": "owned",
          "snippet": "Profound tracks ten answer engines…",
          "citation_share": 14.2
        }
      ]
    }
  ]
}

Authorizations

X-API-Key
string
header
required

Body

application/json

The inaccurate claims — flat + paginated, or group_by one dim to section them (all claims per section).

category_id
string
required
start_date
string
required

YYYY-MM-DD, ET, inclusive

end_date
string
required

YYYY-MM-DD, ET, inclusive

group_by
enum<string>[]

Optional single dim to section the claims (e.g. per model). Empty → one flat claim list.

Maximum array length: 1
Available options:
model,
region,
persona,
prompt,
topic,
tag,
theme
filter
FilterNode · object | null

Scope which responses count (see Filtering).

include
enum<string>[] | null

Claim detail: theme, reasoning, models, evidence, citation_sources.

Available options:
theme,
reasoning,
models,
evidence,
citation_sources
limit
integer | null

Claims (or sections) per page; default 25.

Required range: 0 < x <= 100
max_results
integer | null

Stream only: cap entries returned.

Required range: x > 0
cursor
string | null

Response

Successful Response

The response is of type Response Query Claims V2 Reports Factcheck Claims Post · object.