Docs / API reference /
Track Grok answers
POST https://api.answerline.dev/v1/monitor/grok
Get structured output from Grok for any prompt in supported regions: the answer and the sources it cites, X/Twitter posts included
From $2.18 per 1,000 Failed requests are free Async task type GROK Grok fields and prices
Body
-
promptstring required -
Prompt submitted to Grok, 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.markdownboolean -
Add a markdown version of the response to the result
-
include.htmlboolean -
A link to the answer's own public page on grok.com, in
html, to check the answer against. No extra cost. -
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 the answer from Grok
-
result.htmlstring -
Present when include.html is true: the link to the answer's public page on grok.com.
-
result.sourcesobject[] -
Sources the response cites, with extra metadata
-
result.searchQueriesstring[] -
Searches Grok ran to collect material for the response
-
result.modelstring -
Identifier of the model that produced the response
-
result.relatedQueriesstring[] -
Follow-up questions Grok suggests under its answer, in its order. Absent when it suggests none.
-
result.markdownstring -
Grok's answer rendered as Markdown (returned if include.markdown is set to 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.screenshotstring -
Present when include.screenshot is true and the answer's public page on grok.com was available: the link to its PNG screenshot.
-
result.citationPillsobject[] -
Kept so every chat engine has the same shape. Grok shows no citation pills, so this is always empty; its citations are in sources.
-
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
- Grok 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