AnswerLine Start free

Docs / API reference /

Track Gemini answers

POST https://api.answerline.dev/v1/monitor/gemini

Get structured output from Google Gemini for any prompt: the generated answer and the sources it cites, exportable as Markdown

From $1.00 per 1,000 Failed requests are free Async task type GEMINI Gemini fields and prices

Body

prompt string required

Prompt submitted to Gemini, up to 2,000 characters. A longer prompt is refused with a 400 that states its length.

country string required

Code of the country or region used to localize the response

include object

Flags that add extra output formats to the response (optional)

5 properties
include.markdown boolean

Add a markdown version of the response to the result

include.html boolean

A copy of the Gemini page as it was when the answer was captured, stored on our file host and linked in html, to check the answer against. It is free.

include.rawResponse boolean

Return the answer as normalized stream events. For the engine's answer as received, use include.rawWire.

include.rawWire boolean

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.screenshot boolean

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

state string

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.text string

Text of Gemini's reply

result.markdown string

Gemini's reply as Markdown

result.model string

The model Gemini names as the one that answered; null when the answer does not name it.

result.videos object[]

Video cards Gemini shows in its answer, in answer order

result.searchQueries string[]

Searches Gemini ran for the answer, when it shows them

result.html string

Present when include.html is true: the link to the stored copy of the Gemini page.

result.sources object[]

Sources that Gemini cited

result.citationPills object[]

Citation pills that appear inline in the Gemini answer. Every element pairs one chip with one source: a chip backed by N sources (Gemini's equivalent of +N, or a section-summary chip) yields N elements with the same citationPillId, each holding that source's own label, url and domain. Grouping by citationPillId rebuilds the pills. label is always sent; it may be an empty string if the rail gives that source no title. Empty when the answer has no pills.

result.places object[]

Place cards included in lodging and local answers

result.rawResponse object[]

The answer as normalized stream events (present when include.rawResponse is true). For the engine's answer as received, use include.rawWire.

result.shoppingCards object[]

Product cards Gemini shows beside a shopping-related answer, in display order. Absent when the answer has none.

result.entities object[]

The brands and products Gemini's answer shows as entity cards, in answer order. Absent when the answer has none.

result.screenshot string

Present when include.screenshot is true and the answer came from a rendered page: the link to the PNG screenshot of the Gemini page once the answer finished.

result.links object[]

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
Gemini 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 returns Retry-After without any limit headers. RATE_LIMIT_EXCEEDED, with Retry-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

Error codes and retries