Docs / API reference /
Track Copilot answers
POST https://api.answerline.dev/v1/monitor/copilot
Get structured output from Copilot on your brand, your products or any other topic, in many regions
From $2.74 per 1,000 Failed requests are free Async task type COPILOT Copilot fields and prices
Body
-
promptstring required -
Prompt submitted to Copilot, up to 2,000 characters. A longer prompt is refused with a 400 that states its length.
-
countrystring required -
Code of the country or region used to localize the response
-
includeobject -
Flags that add extra output formats to the response (optional)
5 properties
-
include.htmlboolean -
Not available on Copilot: its answer is read without a page to copy.
trueis refused with a 400 before anything runs, uncharged;falseis accepted and changes nothing. -
include.markdownboolean -
Add a markdown version of the response to the result
-
include.rawResponseboolean -
Return the answer as normalized stream events. For the engine's answer as received, use
include.rawWire. -
include.rawWireboolean -
Return the engine's own response as received in result.rawWire: the answer stream, the rendered results pages or the RSS feed, without Gemini's detected location or ChatGPT's session tokens; null where it was not captured. Free. See https://answerline.dev/docs/output-formats#raw-wire
-
include.screenshotboolean -
Return a full-page PNG screenshot of the engine's page as it showed the finished answer, in result.screenshot: a link, or one link per results page on Google Search. On ChatGPT, Gemini, AI Mode, Google Search, Perplexity and Grok; other engines refuse it with a 400. Absent when the answer was read without a rendered page or its page was not available. Free. See https://answerline.dev/docs/output-formats#screenshots
-
-
statestring -
US state code (e.g. "CA", "DC" included). Sent without a country, the request asks for the US; sent with any country other than "US", it is refused with a 400, uncharged. ChatGPT and Gemini answer as a person in that state sees it; every other engine accepts it and answers for the whole US, at the price of a request without it. provenance.requestedState reports the state asked. See https://answerline.dev/docs/coverage#states
-
answerDepth"any" | "full" | "quick" -
Accepted so existing requests stay valid; it does not change the answer or the price. Every engine writes one depth: Perplexity answers every request with its Quick Search answer, and provenance.answerDepth says quick. See https://answerline.dev/docs/engine-features/#answer-depth
Returns
-
result.textstring -
Text of Copilot's reply
-
result.htmlstring -
Never present: include.html is refused for Copilot.
-
result.sourcesobject[] -
Sources the response cites
-
result.citationPillsobject[] -
Citation pills that appear inline in the Copilot answer. Every element pairs one pill with one source: a pill backed by N sources (a chip made from consecutive citation events) yields N elements with the same
citationPillId, each holding that source's ownlabel,urlanddomain. Grouping bycitationPillIdrebuilds the pills. Empty when the answer has no pills. -
result.shoppingCardsobject[] -
Shopping/product cards parsed from the response (if any)
-
result.mapobject[] -
Map entries for businesses or places parsed from the response (if any)
-
result.searchQueriesstring[] -
Query fan-out: the web searches Copilot performed as it wrote the response. Returned automatically whenever there is at least one, at no extra cost.
-
result.markdownstring -
Copilot's reply as Markdown; returned only if include.markdown is true
-
result.rawResponseobject[] -
The answer as normalized stream events (present when include.rawResponse is true). For the engine's answer as received, use include.rawWire.
-
result.linksobject[] -
The links in the answer's text, in the order a reader meets them: one entry per web (http or https) link the answer shows, images and code aside, with the words it shows (text), where it goes (url), its domain and its 1-based position. Sources cited by pills are in citationPills; links to the same page appear in both when the answer does both. Empty when the text links nowhere.
Responses
- 200
- Copilot monitoring result (success)
- 400
- Bad Request - the request failed validation
- 401
- Unauthorized - authentication failed
- 403
- Forbidden - INSUFFICIENT_CREDITS: the balance does not cover this request
- 404
- Not Found - No such route, or the engine is paused
- 409
- Conflict - the resource is in a conflicting state
- 429
- Too Many Requests - the call could not start now (
CONCURRENT_LIMIT_EXCEEDED), or the service dropped the request because it was overloaded (SERVICE_OVERLOADED); that case returnsRetry-Afterwithout any limit headers.RATE_LIMIT_EXCEEDED, withRetry-After, is sent only when one address presented too many unknown keys - 499
- Client Closed Request - the client cancelled the request
- 500
- Internal Server Error
- 502
- Bad Gateway - the engine failed