curl -X POST https://api.tryprofound.com/v2/reports/factcheck \
-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",
"group_by": ["model"]
}'
{
"info": {
"total_results": 9,
"count": 9,
"next_cursor": null,
"models": ["ChatGPT", "Google Gemini", "Perplexity", "Claude", "..."],
"group_by": ["model"],
"start_date": "2026-06-09",
"end_date": "2026-06-15",
"filter": null
},
"data": [
{ "model": { "id": "a1c9…", "name": "ChatGPT" }, "accuracy": 0.986, "accurate": 1980, "inaccurate": 28 },
{ "model": { "id": "b7f2…", "name": "Microsoft Copilot" }, "accuracy": 0.831, "accurate": 1360, "inaccurate": 276 }
]
}
FactCheck
FactCheck
POST
/
v2
/
reports
/
factcheck
curl -X POST https://api.tryprofound.com/v2/reports/factcheck \
-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",
"group_by": ["model"]
}'
{
"info": {
"total_results": 9,
"count": 9,
"next_cursor": null,
"models": ["ChatGPT", "Google Gemini", "Perplexity", "Claude", "..."],
"group_by": ["model"],
"start_date": "2026-06-09",
"end_date": "2026-06-15",
"filter": null
},
"data": [
{ "model": { "id": "a1c9…", "name": "ChatGPT" }, "accuracy": 0.986, "accurate": 1980, "inaccurate": 28 },
{ "model": { "id": "b7f2…", "name": "Microsoft Copilot" }, "accuracy": 0.831, "accurate": 1360, "inaccurate": 276 }
]
}
Accuracy scores for your category’s fact-checked claims: the numbers behind
the platform’s FactCheck (Accuracy) tab.
group_by picks the slice; accuracy
is a ratio 0–1 (accurate / (accurate + inaccurate)). Per-category, so there
is no asset or scope.
- Metrics (every row):
accuracy(0–1),accurate,inaccurate. group_by: 0–2 ofdate,model,region,persona,prompt,topic,tag,theme— or onecitation(citation can’t be combined with another dimension). Empty → one headline score;["date"]→ the daily accuracy series; two dims (for example,["model", "date"]) → one row per combination, in a single query.- Row shape follows
group_by: a value dimension →{ <dim>: { id, name }, … };["citation"]→{ citation: { url, citation_category }, … }(a citation is a URL, not an id/name);["date"]→{ date, … }. filter: scopes which responses are counted: a top-levelandof single-field leaves overmodel,topic,region,persona,prompt,tag. One leaf per field (useinfor OR within a field); onlytopicmay be negated. This is a narrower grammar than the other v2 reports (noor/notnesting).
New to the v2 reports? See Filtering & concepts for the shared
{ info, data } shape, grouping, and pagination. FactCheck uses that envelope but has no scope/assets/metrics params and a constrained filter (above). For the inaccurate claims themselves, see FactCheck Claims.Streaming (SSE) variant (same body, /stream)
Streaming (SSE) variant (same body, /stream)
POST /v2/reports/factcheck/stream takes the same request body and
returns Server-Sent Events:
one summary event (the info block), then one result event per row.
limit/cursor are ignored; it returns everything by default. Pass
max_results to cap.Response (text/event-stream)
event: summary
data: { ...the info block... }
event: result ← one per row, same shape as data[] above
data: {"model": {"id": "a1c9…", "name": "ChatGPT"}, "accuracy": 0.986, "accurate": 1980, "inaccurate": 28}
curl -X POST https://api.tryprofound.com/v2/reports/factcheck \
-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",
"group_by": ["model"]
}'
{
"info": {
"total_results": 9,
"count": 9,
"next_cursor": null,
"models": ["ChatGPT", "Google Gemini", "Perplexity", "Claude", "..."],
"group_by": ["model"],
"start_date": "2026-06-09",
"end_date": "2026-06-15",
"filter": null
},
"data": [
{ "model": { "id": "a1c9…", "name": "ChatGPT" }, "accuracy": 0.986, "accurate": 1980, "inaccurate": 28 },
{ "model": { "id": "b7f2…", "name": "Microsoft Copilot" }, "accuracy": 0.831, "accurate": 1360, "inaccurate": 276 }
]
}
Authorizations
APIKeyHeaderBearerAuth
Body
application/json
Accuracy scores. group_by picks the slice (one or two dimensions); empty → the headline score.
YYYY-MM-DD, ET, inclusive
YYYY-MM-DD, ET, inclusive
Up to two dimensions to slice by; empty returns the headline score. citation must be alone.
Maximum array length:
2Available options:
date, model, region, persona, prompt, topic, tag, citation, theme Scope which responses count (see Filtering).
Show child attributes
Show child attributes
Rows per page; default 100.
Required range:
0 < x <= 100Stream only: cap rows returned.
Required range:
x > 0Was this page helpful?