Base URL https://api.answerline.dev. Generated from the OpenAPI document; field names and error codes here are the contract.
POST/v1/monitor/chatgpt
Get structured output from ChatGPT for any prompt in supported regions: the answer, its cited sources, ads, shopping cards and brand entities
Body
Field
Type
Description
prompt *
string
Prompt submitted to ChatGPT. ChatGPT takes up to 2,000 characters; a longer prompt is refused with a 400.
country *
string
Code of the country or region used to localize the response
include
object
Flags that add extra output formats to the response (optional)
include.html
boolean
Return a link to the complete HTML of the response
include.markdown
boolean
Add a markdown version of the response to the result
include.rawResponse
boolean
Return the unprocessed response payload from ChatGPT
include.searchQueries
boolean
Return the fan-out queries ChatGPT issued while producing the response
include.ads
boolean
Return ads that ChatGPT shows in its response
include.shopping
boolean
Return shopping cards plus products shown inline, with their prices and offers. Adds an add-on charge to the base cost, the same one rawResponse adds: one flag or both, it is charged once. searchQueries and ads cost nothing.
legacy
boolean
Accepted for compatibility with clients that ask for ChatGPT's older desktop interface. Not served yet: the answer arrives in the same shape whatever its value. Default: false.
disableWebSearch
boolean
Leave ChatGPT's web search unforced. Answerline then returns whatever ChatGPT answers by itself, searching the web only if ChatGPT chooses to, so `result.sources`, `result.citationPills` and `result.searchQueries` are frequently empty. Default is false, meaning every request forces web search.
state
string
State code for targeting below the country level (e.g., "CA"; "DC" included). Allowed only when country is "US". Served for Gemini; on a model that cannot place a state yet, a request that includes it is rejected as a validation error and is not charged.
Responses
200
ChatGPT monitoring result (success)
400
Bad Request - the request failed validation
401
Unauthorized - authentication failed
403
Forbidden - missing permissions or not enough credits
404
Not Found - No such route
409
Conflict - the resource is in a conflicting state
429
Too Many Requests - the request went over a rate limit or concurrency limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
499
Client Closed Request - the client cancelled the request
500
Internal Server Error
502
Bad Gateway - an upstream service failed
POST/v1/monitor/gemini
Get structured output from Google Gemini for any prompt: the generated answer and the sources it cites, exportable as Markdown
Body
Field
Type
Description
prompt *
string
Prompt submitted to Gemini. Gemini takes up to 2,000 characters; a longer prompt is refused with a 400.
country *
string
Code of the country or region used to localize the response
include
object
Flags that add extra output formats to the response (optional)
include.markdown
boolean
Add a markdown version of the response to the result
include.html
boolean
Not available for Gemini: its answer is read without a page to snapshot, so `true` is refused with a validation error.
include.rawResponse
boolean
Return the unprocessed stream of response events
state
string
State code for targeting below the country level (e.g., "CA"; "DC" included). Allowed only when country is "US". Served for Gemini; on a model that cannot place a state yet, a request that includes it is rejected as a validation error and is not charged.
Responses
200
Gemini monitoring result (success)
400
Bad Request - the request failed validation
401
Unauthorized - authentication failed
403
Forbidden - missing permissions or not enough credits
404
Not Found - No such route
409
Conflict - the resource is in a conflicting state
429
Too Many Requests - the request went over a rate limit or concurrency limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
499
Client Closed Request - the client cancelled the request
500
Internal Server Error
502
Bad Gateway - an upstream service failed
POST/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
Body
Field
Type
Description
prompt *
string
Prompt submitted to Grok
country *
string
Code of the country or region used to localize the response
include
object
Flags that add extra output formats to the response (optional)
include.markdown
boolean
Add a markdown version of the response to the result
include.html
boolean
Add an HTML version of the response to the result
include.rawResponse
boolean
Return the unprocessed stream of response events
state
string
State code for targeting below the country level (e.g., "CA"; "DC" included). Allowed only when country is "US". Served for Gemini; on a model that cannot place a state yet, a request that includes it is rejected as a validation error and is not charged.
Responses
200
Grok monitoring result (success)
400
Bad Request - the request failed validation
401
Unauthorized - authentication failed
403
Forbidden - missing permissions or not enough credits
404
Not Found - No such route
409
Conflict - the resource is in a conflicting state
429
Too Many Requests - the request went over a rate limit or concurrency limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
499
Client Closed Request - the client cancelled the request
500
Internal Server Error
502
Bad Gateway - an upstream service failed
POST/v1/monitor/google
Get structured output from Google Search: organic listings, related searches, People Also Ask and, optionally, the AI Overview
Body
Field
Type
Description
query
string
Query to run on Google. Mandatory when 'url' is not given; send one or the other, never both.
url
string
A full URL of a Google web search, executed as-is in place of a request assembled from 'query' plus the targeting fields. It has to be absolute and http(s), hosted on one of Google's web search domains (google.com, google.co.uk, www.google.de, ...), with '/search' as its path and a 'q' that is not empty. Cannot be combined with 'query', 'location', 'uule' or 'pages', since the URL already determines them. It may carry only these query parameters: 'q', 'gl', 'num' (treated as result depth), 'hl' and 'uule'; a URL with any other (such as 'start', 'tbs' or 'safe') is refused with a 400. A URL containing 'tbm' is refused: it points at a Google vertical that has a separate endpoint and price (for tbm=nws, call POST /v1/monitor/google/news).
country
string
Country for localized search results, as an ISO 3166-1 alpha-2 code. Mandatory in the standard request form. If you send 'url' instead, the country is taken from the URL's 'gl' parameter — set it yourself to override that value, or when the URL carries no 'gl'.
gl
string
Google's own name for the result-geography parameter, usable in place of `country`. Takes ISO 3166-1 alpha-2 codes, as `country` does, in upper or lower case (`us` or `US`), and the country has to be one this endpoint supports (list them with `GET /v1/countries`). Send either `country` or `gl`; if both are sent with differing values, the request fails with `400`.
hl
string
Interface language, in the format of Google's `hl` parameter (for example `en`, `de`, `pt-BR`). Case-insensitive free text; Google defines which codes exist. Takes precedence over the language Answerline infers from the country, which lets interface language and result geography differ.
location
string
Location name in Google's canonical comma-separated form 'City,Region,Country' (roughly 100,000 accepted locations are listed at https://developers.google.com/google-ads/api/reference/data/geotargets). Combine with 'country' to target a specific city. Cannot be sent together with 'uule' — choose one of the two. Not allowed when 'url' is set.
uule
string
A ready-made Google UULE string for exact geo-targeting, in the location-name form (starting w+CAIQICI); the coordinate form (a+) is refused with a 400. Supply it when you already have an encoded UULE rather than a location name. Cannot be sent together with 'location' — pass only one of the two. Not allowed together with 'url'; in that case add 'uule' to the URL's query string.
device
"desktop" | "mobile" | "ios" | "android"
Device to run the search on. 'desktop' gives the desktop SERP, while 'ios' (Safari on an iPhone), 'android' (Chrome on an Android phone) and 'mobile' (same as 'android') each give the mobile SERP.
pages
integer
How many pages of search results to retrieve (1-10). Not allowed together with 'url' — when 'url' is given, depth is taken from the URL's 'num' parameter (rounded up to full 10-result pages, at most 10 pages).
include
object
Flags that add extra data to the response (optional)
include.html
boolean
Return the unprocessed HTML page from Google Search
include.aioverview
object
Add Google's AI Overview to the response
include.paaAioverview
boolean
Fill People Also Ask items of the AI Overview type with markdown content and their sources. Charges nothing past the AI Overview add-on; every hydrated item needs one more fetch (usually 1-2 on a page), which makes responses slower.
include.googleGoto
boolean
Has had no effect since 8th September 2026. Each redirect link is now always returned as `redirectLink` next to its target, so you get both without setting this flag. Requests that still include it are handled as though it were omitted.
Responses
200
Google monitoring result (success)
400
Bad Request - one or more parameters are not valid
401
Unauthorized - API key absent or not valid
403
Forbidden - not enough credits, or access was refused
404
Not Found - No such route
409
Conflict - the resource is in a conflicting state
429
Too Many Requests - the request went over a rate limit or concurrency limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
499
Client Closed Request - the client cancelled the request
500
Internal Server Error
502
Bad Gateway - an upstream service failed
POST/v1/monitor/google/goto
Returns the destination URL of a single Google redirect link. Pass the `redirectLink` value that accompanies each resolved link in a Google Search, Google News or AI Mode response; the reply contains the URL it leads to.
Free of credit charges and takes no concurrency slot, but it counts toward the per-second rate limit the same way other calls do. One link is resolved per request, and Google is given up to 10 seconds to respond.
Body
Field
Type
Description
url *
string
Absolute URL of a Google redirect link that you want resolved. It must point to `google.com` or `www.google.com` and use a path of `/goto` or `/url`, which is the form returned as `redirectLink` alongside each resolved link in AI Mode, Google Search and Google News responses.
Responses
200
Target URL that the redirect link leads to
400
Bad Request - url is absent, badly formed, or not a /goto or /url link on google.com
401
Unauthorized - API key absent or not valid
429
Too Many Requests - the request went over a rate limit or concurrency limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
500
Internal Server Error
502
Bad Gateway - Google's reply was not a redirect, or calling Google failed
POST/v1/monitor/google/news
Get structured articles from Google News: title, link, snippet, source, date and thumbnail for each
Body
Field
Type
Description
query *
string
Query to run on Google News
country
string
Country for localized news, as an ISO 3166-1 alpha-2 code. Google News publishes an edition in 71 countries, listed at https://answerline.dev/docs/coverage#countries; a request for another country is refused with a 400.
gl
string
Google's own name for the result-geography parameter, usable in place of `country`. Takes ISO 3166-1 alpha-2 codes, as `country` does, in upper or lower case (`us` or `US`), and the country has to be one this endpoint supports (list them with `GET /v1/countries`). Send either `country` or `gl`; if both are sent with differing values, the request fails with `400`.
hl
string
Interface language, in the format of Google's `hl` parameter (for example `en`, `de`, `pt-BR`). Case-insensitive free text; Google defines which codes exist. Takes precedence over the language Answerline infers from the country, which lets interface language and result geography differ.
device
"desktop" | "mobile" | "ios" | "android"
Device to run the search on. Not served for Google News yet: its results are read without a device, and a request that sets one is refused with a 400.
pages
integer
How many pages of news results to retrieve (1-10)
include
object
Flags that add extra data to the response (optional)
include.html
boolean
Not available for Google News: results are read from the news feed, with no page to snapshot, so `true` is refused with a validation error.
Responses
200
Google News monitoring result (success)
400
Bad Request - one or more parameters are not valid
401
Unauthorized - API key absent or not valid
403
Forbidden - not enough credits, or access was refused
404
Not Found - No such route
409
Conflict - the resource is in a conflicting state
429
Too Many Requests - the request went over a rate limit or concurrency limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
499
Client Closed Request - the client cancelled the request
500
Internal Server Error
502
Bad Gateway - an upstream service failed
POST/v1/monitor/copilot
Get structured output from Microsoft Copilot on your brand, your products or any other topic, in many regions
Body
Field
Type
Description
prompt *
string
Prompt submitted to Copilot
country *
string
Code of the country or region used to localize the response
include
object
Flags that add extra output formats to the response (optional)
include.html
boolean
Return a link to the complete HTML of the response
include.markdown
boolean
Add a markdown version of the response to the result
include.rawResponse
boolean
Return the unprocessed stream of response events
state
string
State code for targeting below the country level (e.g., "CA"; "DC" included). Allowed only when country is "US". Served for Gemini; on a model that cannot place a state yet, a request that includes it is rejected as a validation error and is not charged.
Responses
200
Copilot monitoring result (success)
400
Bad Request - the request failed validation
401
Unauthorized - authentication failed
403
Forbidden - missing permissions or not enough credits
404
Not Found - No such route
409
Conflict - the resource is in a conflicting state
429
Too Many Requests - the request went over a rate limit or concurrency limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
499
Client Closed Request - the client cancelled the request
500
Internal Server Error
502
Bad Gateway - an upstream service failed
POST/v1/monitor/perplexity
Get structured output from Perplexity AI on your brand, your products or any other topic, in many regions
Body
Field
Type
Description
prompt *
string
Prompt submitted to Perplexity
country *
string
Code of the country or region used to localize the response
include
object
Flags that add extra output formats to the response (optional)
include.html
boolean
Return a link to the complete HTML of the response
include.markdown
boolean
Add a markdown version of the response to the result
include.rawResponse
boolean
Return the unprocessed stream of response events
state
string
State code for targeting below the country level (e.g., "CA"; "DC" included). Allowed only when country is "US". Served for Gemini; on a model that cannot place a state yet, a request that includes it is rejected as a validation error and is not charged.
Responses
200
Perplexity monitoring result (success)
400
Bad Request - the request failed validation
401
Unauthorized - authentication failed
403
Forbidden - missing permissions or not enough credits
404
Not Found - No such route
409
Conflict - the resource is in a conflicting state
429
Too Many Requests - the request went over a rate limit or concurrency limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
499
Client Closed Request - the client cancelled the request
500
Internal Server Error
502
Bad Gateway - an upstream service failed
POST/v1/monitor/aimode
Get structured output from AI Mode on your brand, your products or any other topic, in many regions
Body
Field
Type
Description
prompt *
string
Prompt submitted to AI Mode
country
string
Code of the country or region used to localize the response
gl
string
Google's own name for the result-geography parameter, usable in place of `country`. Takes ISO 3166-1 alpha-2 codes, as `country` does, in upper or lower case (`us` or `US`), and the country has to be one this endpoint supports (list them with `GET /v1/countries`). Send either `country` or `gl`; if both are sent with differing values, the request fails with `400`.
hl
string
Interface language, in the format of Google's `hl` parameter (for example `en`, `de`, `pt-BR`). Case-insensitive free text; Google defines which codes exist. Takes precedence over the language Answerline infers from the country, which lets interface language and result geography differ.
location
string
Location name in Google's canonical form, used for geo-targeted results, written comma-separated as 'City,Region,Country' (https://developers.google.com/google-ads/api/reference/data/geotargets lists every supported location, ~100,000 in all). Combine it with 'country' to target a specific city. Cannot be combined with 'uule'; send only one of the two.
uule
string
A ready-made Google UULE string for exact geo-targeting, in the location-name form (starting w+CAIQICI); the coordinate form (a+) is refused with a 400. Supply it when you already have an encoded UULE rather than a location name. Cannot be sent together with 'location' — pass only one of the two.
device
"desktop" | "mobile"
Type of device the results are fetched for
include
object
Flags that add extra output formats to the response (optional)
include.html
boolean
Return a link to the complete HTML of the response
include.markdown
boolean
Add a markdown version of the response to the result
include.expandProducts
boolean
Look up merchant offers for the response's product clusters and return them in 'result.productResults'. Clusters found in both inline products and shopping cards count once, and no more than 6 are expanded per request. Each returned cluster adds a per-cluster charge. Disabled by default.
include.googleGoto
boolean
Has had no effect since 8th September 2026. Each redirect link is now always returned as `redirectLink` next to its target, so you get both without setting this flag. Requests that still include it are handled as though it were omitted.
Responses
200
AI Mode monitoring result (success)
400
Bad Request - the request failed validation
401
Unauthorized - authentication failed
403
Forbidden - missing permissions or not enough credits
404
Not Found - No such route
409
Conflict - the resource is in a conflicting state
429
Too Many Requests - the request went over a rate limit or concurrency limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
499
Client Closed Request - the client cancelled the request
500
Internal Server Error
502
Bad Gateway - an upstream service failed
GET/v1/countries
Lists every supported country code in ISO 3166-1 alpha-2 format. Filter by model to see which countries a given AI provider supports.
Limit the list to countries a given model supports
Responses
200
Country codes that are supported
400
Bad Request - the model parameter is not valid
401
Unauthorized - authentication failed
404
Not Found - No such route
429
Too Many Requests - the API key went over its rate limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
500
Internal Server Error
POST/v1/async/task
Queue a task to run asynchronously in the background. The response contains a task ID you can poll for the result, or the result can be delivered by webhook.
Request body specific to the provider. Needs at least `prompt` (`query` for Google Search).
priority
integer
Priority of the task, from 1 to 10; tasks with higher numbers run first. Default: 1.
idempotencyKey
string
Distinct string that stops the same task from being created twice. No two tasks in your account may share it.
webhook
object
Settings for the webhook that reports a finished task.
webhook.url *
string
Endpoint that gets the webhook POST request once the task finishes.
Responses
200
Task created. The response includes its ID and starting status.
401
Unauthorized - authentication failed
403
Forbidden - missing permissions, or too few credits left to pay for this task
409
Conflict - a task already uses this idempotencyKey
422
Validation Error - the body of the request is invalid
429
Queue Limit Exceeded - your organization already has the maximum number of queued tasks. This status is also returned when the API key's rate limit is hit and when the API sheds load (`SERVICE_OVERLOADED`, sent with `Retry-After` and without limit headers)
500
Internal Server Error
POST/v1/async/task/batch
Create as many as 500 async tasks in a single request. Tasks are validated one by one, so an invalid task does not stop the others from being accepted. The response lists a result for each task.
Responses
200
The batch was processed. See the summary and each task's result to learn which tasks succeeded or failed.
401
Unauthorized - authentication failed
422
Validation Error - the body of the request is empty or not a proper array
429
Queue Limit Exceeded - no task in the batch is accepted, because together they would take your organization beyond its queue capacity. This status is also returned when the API key's rate limit is hit and when the API sheds load (`SERVICE_OVERLOADED`, sent with `Retry-After` and without limit headers)
500
Internal Server Error
GET/v1/async/task/{taskId}
Look up an asynchronous task by ID and get its state, plus the complete structured result payload once it finishes.
Parameter
In
Type
Description
taskId *
path
string
Identifier of the task you want to retrieve.
Responses
200
Success: the task's status, plus its result once finished.
401
Unauthorized - authentication failed
404
Not Found - No such task
429
Too Many Requests - the API key went over its rate limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
500
Internal Server Error
GET/v1/async/status
Returns async queue metrics for the whole organization: how many tasks are queued and processing, plus concurrency in use.
Responses
200
Success: queue metrics returned.
401
Unauthorized - authentication failed
429
Too Many Requests - the API key went over its rate limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
500
Internal Server Error
DELETE/v1/async/queue
Removes all of the authenticated organization's tasks that are still `QUEUED`, so a pending backlog can be emptied with a single request rather than through support. `PROCESSING` tasks are already running and stay as they are, and so do `COMPLETED` and `FAILED` ones. No credits were charged for queued tasks, so removing them leaves your credit balance unchanged. Repeating the call is harmless: with nothing queued it returns `cleared: 0`.
Responses
200
Queue emptied. The response reports how many queued tasks were deleted.
401
Unauthorized - authentication failed
429
Too Many Requests - the API key went over its rate limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
500
Internal Server Error
GET/v1/credits
Get the credit balance and billing cycle currently on your organization's account. This lets you check the balance from code — even for workloads that only use async — without sending a sync /v1/monitor/* request merely to read the X-Credits-Remaining header. The definitive check still happens at the time each task is billed.
Responses
200
The credit balance as of now, with the billing cycle.
401
Unauthorized - authentication failed
429
Too Many Requests - the API key went over its rate limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers
500
Internal Server Error
GET/v1/states
Lists US state codes usable for state-level geo-targeting. That feature is not available yet: until it launches, a request that includes a state is rejected as a validation error. States exist only for the US; any other country value yields an empty array.
Parameter
In
Type
Description
country *
query
string
Country as an ISO 3166-1 alpha-2 code. Results are available only for "US".
Responses
200
States that are supported
400
Bad Request — country parameter absent or not valid
401
Unauthorized - authentication failed
429
Too Many Requests - the API key went over its rate limit, or the service dropped the request because it was overloaded (`SERVICE_OVERLOADED`); that case returns `Retry-After` without any limit headers