
Introducing Commerce Product
Pass a product page URL from Amazon, Walmart, Sephora, Olive Young, Rakuten, Zalando or 11 more storefronts, and get its price, stock, gallery and description images, specs and options in one shape.

Citation Analysis now shows which pages an AI answer drew on, where your brand stands and what to do, starting with your own site.
queries: the searches the engine ran, each tied to the pages it found.sources: every page the engine retrieved, with cited for the pages it cited, its search position, the passages the engine reported citing, the brands the page names and a channel for who controls it: your site, another brand, a publisher, a retailer, a review platform, a community, video, social, a blog platform or a reference site.brands: your brand, your competitors and every brand the answer names, in the order the answer names them, with the cited and retrieved pages that name each one.visibility: the stage your brand reached, from named in the answer to found on no page we read.actions: what to do, ordered by how much is in your hands: your own pages first, then platforms you can post on, then publishers to pitch. Each comes with concrete steps and the pages behind it.insights: what the cited pages share, such as channel, format, freshness and criteria, and where your brand sits, each naming the pages and links it rests on.The response of POST /v1/citation-analysis now carries version: 4 and these new fields. links keeps its shape, each insight now lists its pages in sourceIds beside linkIds, and results stored before this change keep the shape they were saved with. The product is now called Citation Analysis: /v1/source-influence and /v1/geo-audit, taskTypes SOURCE_INFLUENCE and GEO_AUDIT, and include.sourceInfluence and include.geoAudit keep working, and responses use /v1/citation-analysis, CITATION_ANALYSIS and citationAnalysis.
With a taskId, the searches and retrieved pages come from the answer task itself when the engine exposes them, as ChatGPT and Google AI Overview do. You can also send them yourself in queries and as citations with cited: false. Other engines list cited pages only.
Recommendations mostly come from third-party pages. In ChatGPT answers we studied, the engine retrieved a median of 20 pages and cited 3, and a recommended brand’s own site was retrieved for 16% of them and cited for 6.8%. Actions follow that path, starting with what is in your hands:
improve_page: your page that the engine retrieved and passed over, or cited while the answer leaves your brand out, with what to add so it answers the prompt like the cited pages.publish_page: a brief for a new page on your site for a search where none of your pages was cited, modelled on the pages that were: page type, title pattern, sections, evidence and date.post_on_platform: a retailer, review platform, community, video or social page that names your competitors, with steps such as completing your listing, inviting real customers to review or answering as an identified brand representative.pitch_publisher: a cited editorial page that only its publisher can change, with what to send them.Every match shows which page says what the answer says, and each action points at the exact pages it rests on. A stage of not_found means no page we read names your brand. Send brand to get visibility and actions, and add brandDomains and brandAliases so your own pages and other names count.
Send the request with your API key in the Authorization header.
curl -X POST https://api.querying.ai/v1/citation-analysis \
-H "Authorization: Bearer $QUERYING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taskId": "…",
"brand": "Blueair",
"competitors": ["Coway", "Levoit"],
"brandDomains": ["blueair.com"]
}'taskIdstringRequiredanswer and citations.brandstringvisibility and actions.competitorsarraybrandDomainsarraycoway.com. Pages on them count as own.brandAliasesarraycitations[].citedbooleantrue. Send false for a page the engine retrieved but did not cite, with its position and query if you have them.countrystringUS.webhook.urlstringidempotencyKeystringA finished task looks like this, trimmed for length.
{
"success": true,
"task": {
"id": "…",
"taskType": "CITATION_ANALYSIS",
"status": "COMPLETED",
"createdAt": "…"
},
"credits": { "creditsToCharge": "…", "creditsCharged": "…" },
"response": {
"version": 4,
"answer": "The best-reviewed air purifiers depend on whether you …",
"queries": [
{
"id": "q0",
"text": "best air purifiers 2026 reviews independent testing …",
"sourceIds": ["s0", "s1", "s2", "…", "s20"]
}
],
"sources": [
{
"id": "s13",
"url": "https://www.blueair.com/products/blue-pure-211i-max",
"domain": "blueair.com",
"channel": "own",
"cited": false,
"position": 14,
"queryIds": ["q0"],
"publishedAt": null,
"citedText": [],
"brandIds": ["b0"],
"own": true,
"paragraphs": []
},
{
"id": "s14",
"url": "https://www.target.com/p/levoit-core-300-air-…",
"domain": "target.com",
"channel": "retailer",
"cited": true,
"position": 15,
"queryIds": ["q0"],
"publishedAt": null,
"citedText": [
"A compact, straightforward option with a 4.6/5 rating …"
],
"brandIds": ["b2"],
"own": false,
"paragraphs": [
{
"id": "s14p1",
"text": "Levoit Core 300 Air Purifier White … $99.99 …"
}
]
},
"…"
],
"brands": [
{
"id": "b0",
"name": "Blueair",
"role": "target",
"rank": 2,
"answerRanges": ["…"],
"citedSourceIds": ["s1", "s3", "s11"],
"retrievedSourceIds": ["s5", "s6", "s8", "s9", "s13"],
"ownSourceIds": ["s11", "s13"]
},
{
"id": "b1",
"name": "Coway",
"role": "competitor",
"rank": 1,
"answerRanges": ["…"],
"citedSourceIds": ["s1", "s3", "s4", "s7"],
"retrievedSourceIds": ["s0", "s5", "s6", "s9", "s10", "s18"],
"ownSourceIds": []
},
{
"id": "b2",
"name": "Levoit",
"role": "competitor",
"rank": 3,
"answerRanges": ["…"],
"citedSourceIds": ["s3", "s7", "s14"],
"retrievedSourceIds": ["s6", "s15", "s16"],
"ownSourceIds": []
},
"…"
],
"links": [
{
"id": "l40",
"paragraphId": "s14p1",
"answerRanges": ["…"],
"explanation": "Lists the Levoit Core 300 at $99.99, …"
},
"…"
],
"visibility": {
"brandId": "b0",
"stage": "mentioned",
"rank": 2,
"answerBrands": 5
},
"actions": [
{
"id": "a0",
"type": "improve_page",
"control": "owned",
"priority": 1,
"summary": "Update Blueair’s site with a current, …",
"steps": [
"Add a page on best air purifiers in 2026 that covers …",
"Include Blueair models in direct comparisons using published …",
"…"
],
"sourceIds": ["s13"],
"brandIds": ["b0"],
"queryIds": ["q0"],
"linkIds": []
},
{
"id": "a1",
"type": "post_on_platform",
"control": "platform",
"priority": 2,
"summary": "Improve Blueair’s Target product listing with …",
"steps": [
"Ensure the Blueair listing clearly states the model, current …",
"…",
"Keep product details current and invite genuine purchasers to …"
],
"sourceIds": ["s14"],
"brandIds": ["b2"],
"queryIds": ["q0"],
"linkIds": ["l40"]
},
"…"
],
"insights": [
{
"summary": "Blueair’s second-place position is reflected in …",
"sourceIds": ["s1", "s3", "s11"],
"linkIds": ["l1", "l12", "l36"]
},
"…"
]
}
}task.statusstringQUEUED, PROCESSING, then COMPLETED with the answer or FAILED with error.credits.creditsChargedintegerresponse.versionnumber4 for analyses that list queries, retrieved pages, brands and actions.response.answerstringresponse.queriesarrayid, its text and the sourceIds it found.response.sourcesarraycited tells cited pages from the rest, and channel says who controls the page (own, brand, editorial, retailer, review_platform, community, video, social, blog_platform or reference). Each also has position, queryIds, citedText, brandIds and own. Cited pages carry paragraphs.response.brandsarrayrole, rank in the answer, answerRanges and the cited and retrieved pages that name it.response.linksarrayanswerRanges it matches and a one-sentence explanation.response.visibilityobjectstage is mentioned, on_cited_page, on_retrieved_page or not_found, with its rank and answerBrands. null without brand.response.actionsarraypriority: first owned work on your site (improve_page, publish_page), then platform posts (post_on_platform), then outreach (pitch_publisher). Each has its control, a summary, 1 to 5 steps and the sources, brands, queries and links behind it. Empty without brand.response.insightsarraysourceIds and the links in linkIds.The request returns the task right away with status QUEUED. Poll GET /v1/async/task/{id} until status is COMPLETED or FAILED, or add webhook.url and the finished task arrives at your server with the same task, credits and response. Results stay available for 24 hours after a task finishes.
curl https://api.querying.ai/v1/async/task/$TASK_ID \
-H "Authorization: Bearer $QUERYING_API_KEY"Pricing stays the same: credits are held when the analysis starts and settled when it finishes.

Pass a product page URL from Amazon, Walmart, Sephora, Olive Young, Rakuten, Zalando or 11 more storefronts, and get its price, stock, gallery and description images, specs and options in one shape.

Search Amazon, Walmart, Coupang, Olive Young, Rakuten, Flipkart, Zalando and 13 more storefronts in five countries, and get each one’s product ranking with prices, ratings and review counts in the same shape.
Get new product updates in your inbox.