Analyze answer claims and cited sources
Analyzes an answer against its cited pages and returns a version 4 result: the searches the engine ran, the pages it retrieved and cited and who controls each, the brands the answer names and the pages naming them, the brand’s visibility stage and prioritized actions with steps (with brand), the paragraphs of each cited page mapped to UTF-16 answer ranges with explanations, and short summaries of what the pages add up to. Post-hoc correspondence, not causal attribution. The retired analysis.version=1 opt-in is rejected with 400 because insights are automatic. Tasks stored with the older v2 result stay readable as-is. Size is not a failure mode: anything the request contract accepts (an answer up to 200,000 characters with up to 100 citations) is analyzed, with long answers, large source sets and very long pages handled by splitting the work. Depth follows the answer rather than the page, so a large or repetitive page yields its strongest corresponding passages instead of every occurrence, and markup-only pages such as sitemaps or link indexes contribute no links.
{
"success": true,
"task": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"taskType": "CHATGPT",
"status": "QUEUED",
"priority": 123,
"createdAt": "2023-11-07T05:31:56Z",
"idempotencyKey": "<string>"
},
"credits": {
"creditsToCharge": 123,
"creditsCharged": 123
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}Authorizations
Your API key, sent as Authorization: Bearer <key>.
Body
- Option 1
- Option 2
Required unless taskId is sent. The AI answer to analyze, as raw markdown (keep link fragments intact). 1-200,000 characters at submission; the analysis itself has a smaller per-answer processing budget, and an answer above it fails explicitly instead of being truncated.
1 - 200000Required unless taskId is sent. Cited pages (1-100, at least one) plus optional retrieved-but-not-cited pages (cited: false, at most 50); at most 10 discussion-thread URLs. Total HTTP body <=1 MiB.
150Show child attributes
Show child attributes
Instead of answer and citations: the id of one of your COMPLETED answer tasks that is still readable through GET /v1/async/task/{id}. Its answer Markdown (text when there is none) becomes answer, and its cited URLs become citations in the engine's order (first 100, at most 10 discussion threads). Its prompt, country and engine are used unless you send them. Sending taskId together with answer or citations is a 400; an unknown or expired id is a 404. For CHATGPT the task's searches become queries and every retrieved page becomes a citation with cited, position, citedText, publishedAt and query; for Google AI Overview, organic results outside the overview's sources are added as non-cited pages. include.citationAnalysis fills them the same way.
128The original question.
200000The AI engine that produced the answer.
64Your brand name. With it, the result adds visibility and actions.
200Up to 25 competitor names, reported in brands with role competitor.
25200Hostnames of your brand's own sites (e.g. coway.com): bare hostnames without scheme or path. Requires brand; sent without it, the request is rejected with 422. Without brandDomains, a host whose name contains the brand name counts as the brand's own site.
10253^[a-zA-Z0-9.-]{1,253}$Other names of your brand (product lines, local spellings). Requires brand; sent without it, the request is rejected with 422.
10200Searches the engine ran for this answer.
20500Show child attributes
Show child attributes
Response
Queued; poll /v1/async/task/{id}. Its response follows CitationAnalysisResult.
Show child attributes
Show child attributes
Credits, with up to two decimals (for example 1.25). The submit response always shows 0: a hold is placed on your balance, but nothing is charged yet. Polling shows 0 until the task is terminal, then the settled charge: the task's price for COMPLETED, 0 for FAILED. A task webhook reports the same charge in creditsCharged; on a FAILED task it reports the task's price in creditsToCharge and 0 in creditsCharged. CITATION_ANALYSIS and WEB_CRAWL are charged by usage, up to the hold placed at submit.
Show child attributes
Show child attributes
{
"success": true,
"task": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"taskType": "CHATGPT",
"status": "QUEUED",
"priority": 123,
"createdAt": "2023-11-07T05:31:56Z",
"idempotencyKey": "<string>"
},
"credits": {
"creditsToCharge": 123,
"creditsCharged": 123
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>"
}
],
"timestamp": "2023-11-07T05:31:56Z"
}
}