AI Result Tracker
AI Result Tracker API (AIRT) enables tracking of brand visibility across AI search engines. It covers three resource groups:
- Brands — Configure which brand name to track for a site
- LLM engines — Add and manage which AI engines to track (ChatGPT, Perplexity, Gemini, Google AI Overview, Google AI Mode)
- Prompts — Manage keywords (prompts) per engine and retrieve rankings data
Typical workflow
{id} while prompt endpoints use {llm_id}. Both refer to the same LLM engine ID.- Set a brand →
POST /sites/{site_id}/airt/brands - Add an LLM engine →
POST /sites/{site_id}/airt/llm - Add prompts →
POST /sites/{site_id}/airt/llm/{llm_id}/prompts - Check status →
GET /sites/{site_id}/airt/llm/{id}/status - Retrieve statistics →
GET /sites/{site_id}/airt/llm/{id}/statistics - Retrieve rankings →
GET /sites/{site_id}/airt/llm/{llm_id}/prompts/rankings
Supported LLM engines
base_name | Display name |
|---|---|
chatgpt | ChatGPT |
google_ai_overview | Google AI Overview |
google_ai_mode | Google AI Mode |
perplexity | Perplexity |
gemini | Gemini |
Get site brand
GET https://api4.seranking.com/sites/{site_id}/airt/brands
Returns the brand configured for the specified site.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Site ID (path parameter). |
Request example
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/brands' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
If the site is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| site_id | Integer | Site ID. |
| brand | String | Configured brand. null if not set. |
Response example
{
"site_id": 11270054,
"brand": "SE Ranking"
}Save site brand
POST https://api4.seranking.com/sites/{site_id}/airt/brands
Configures or overwrites the brand for a site. The brand is shared across all AI search engines.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Site ID (path parameter). |
| brand | String | Yes | Brand name (non-empty, max 255 characters). |
Request example
curl -X POST 'https://api4.seranking.com/sites/11270054/airt/brands' \
-H 'Authorization: Token YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"brand": "SE Ranking"}'Response parameters
| Parameter | Type | Description |
|---|---|---|
| site_id | Integer | Site ID. |
| brand | String | Configured brand. |
Response example
{
"site_id": 11270054,
"brand": "SE Ranking"
}List LLM engines
GET https://api4.seranking.com/sites/{site_id}/airt/llm
Returns all LLM engines configured for the specified site.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Site ID (path parameter). |
Request example
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/llm' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
Returns an array of LLM engine objects.
| Parameter | Type | Description |
|---|---|---|
| id | Integer | LLM engine ID. |
| site_id | Integer | Site ID. |
| base_name | String | LLM engine base name (e.g., chatgpt, google_ai_overview). |
| country_code | String | ISO 3166-1 alpha-2 country code. |
| region_name | String | Specific region or locality name. |
| lang_code | String | ISO 639-1 language code. |
| region_settings | Object/Array | Engine-specific region settings. Object with lat, lng, uule, radius for geo-targeted engines; empty array [] for engines without region settings. |
Response example
[
{
"id": 151216,
"site_id": 11270054,
"base_name": "google_ai_overview",
"country_code": "us",
"region_name": "Washburn County, Wisconsin, United States",
"lang_code": "en",
"region_settings": {
"lat": 45.965719,
"lng": -91.814895,
"uule": "",
"radius": 25000
}
},
{
"id": 151294,
"site_id": 11270054,
"base_name": "chatgpt",
"country_code": "us",
"region_name": null,
"lang_code": "en",
"region_settings": []
}
]Get LLM engine
GET https://api4.seranking.com/sites/{site_id}/airt/llm/{id}
Returns details of a specific LLM engine.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Site ID (path parameter). |
| id | Integer | Yes | LLM engine ID (path parameter). |
Request example
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/llm/151216' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
If the LLM engine is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| id | Integer | LLM engine ID. |
| site_id | Integer | Site ID. |
| base_name | String | LLM engine base name (e.g., chatgpt, google_ai_overview). |
| country_code | String | ISO 3166-1 alpha-2 country code. |
| region_name | String | Specific region or locality name. |
| lang_code | String | ISO 639-1 language code. |
| region_settings | Object/Array | Engine-specific region settings. Object with lat, lng, uule, radius for geo-targeted engines; empty array [] for engines without region settings. |
Response example
{
"id": 151216,
"site_id": 11270054,
"base_name": "google_ai_overview",
"country_code": "us",
"region_name": "Washburn County, Wisconsin, United States",
"lang_code": "en",
"region_settings": {
"lat": 45.965719,
"lng": -91.814895,
"uule": "",
"radius": 25000
}
}Create LLM engine
POST https://api4.seranking.com/sites/{site_id}/airt/llm
Adds a new LLM engine to a site.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| site_id | Integer | Yes | N/A | Site ID (path parameter). |
| base_name | String | Yes | N/A | LLM engine base name. Must be one of: chatgpt, google_ai_overview, google_ai_mode, perplexity, gemini. |
| country_code | String | Yes | N/A | ISO 3166-1 alpha-2 country code (e.g., us). |
| region_name | String | No | N/A | Specific region or locality. For location-aware engines (google_ai_overview, google_ai_mode, gemini), must be a canonical SERP location name that matches the specified country_code. chatgpt and perplexity ignore this field and always return region_name: null. |
| lang_code | String | No | N/A | ISO 639-1 language code (e.g., en). Must be a valid language code supported by Google. |
Request example
curl -X POST 'https://api4.seranking.com/sites/11270054/airt/llm' \
-H 'Authorization: Token YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"base_name": "perplexity",
"country_code": "us",
"lang_code": "en"
}'Response parameters
Returns the created LLM engine object. If the site is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| id | Integer | LLM engine ID. |
| site_id | Integer | Site ID. |
| base_name | String | LLM engine base name (e.g., chatgpt, google_ai_overview). |
| country_code | String | ISO 3166-1 alpha-2 country code. |
| region_name | String | Specific region or locality name. |
| lang_code | String | ISO 639-1 language code. |
| region_settings | Object/Array | Engine-specific region settings. Object with lat, lng, uule, radius for geo-targeted engines; empty array [] for engines without region settings. |
Response example
{
"id": 160000,
"site_id": 11270054,
"base_name": "perplexity",
"country_code": "us",
"region_name": null,
"lang_code": "en",
"region_settings": []
}Update LLM engine
PATCH https://api4.seranking.com/sites/{site_id}/airt/llm/{id}
Partially updates the configuration of an LLM engine (region_name and/or lang_code).
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Site ID (path parameter). |
| id | Integer | Yes | LLM engine ID (path parameter). |
| region_name | String | No | New region or locality name. Canonical form required. Set to null to clear. Only honored by google_ai_overview, google_ai_mode, and gemini. chatgpt and perplexity silently ignore this field and always return region_name: null. |
| lang_code | String | No | New language code. Set to null to clear. |
Request example
curl -X PATCH 'https://api4.seranking.com/sites/11270054/airt/llm/151216' \
-H 'Authorization: Token YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"region_name": "Los Angeles, California, United States",
"lang_code": "es"
}'Response parameters
Returns the updated LLM engine object. If the LLM engine is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| id | Integer | LLM engine ID. |
| site_id | Integer | Site ID. |
| base_name | String | LLM engine base name (e.g., chatgpt, google_ai_overview). |
| country_code | String | ISO 3166-1 alpha-2 country code. |
| region_name | String | Specific region or locality name. |
| lang_code | String | ISO 639-1 language code. |
| region_settings | Object/Array | Engine-specific region settings. Object with lat, lng, uule, radius for geo-targeted engines; empty array [] for engines without region settings. |
Response example
{
"id": 151216,
"site_id": 11270054,
"base_name": "google_ai_overview",
"country_code": "us",
"region_name": "Los Angeles, California, United States",
"lang_code": "es",
"region_settings": {
"lat": 34.052235,
"lng": -118.243683,
"uule": "",
"radius": 25000
}
}Delete LLM engine
DELETE https://api4.seranking.com/sites/{site_id}/airt/llm/{id}
Removes the specified LLM engine from the site.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Site ID (path parameter). |
| id | Integer | Yes | LLM engine ID (path parameter). |
Request example
curl -X DELETE 'https://api4.seranking.com/sites/11270054/airt/llm/151216' \
-H 'Authorization: Token YOUR_API_KEY'Response
204 — No content. If the LLM engine is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
Get LLM status
GET https://api4.seranking.com/sites/{site_id}/airt/llm/{id}/status
Returns tracking status for the specified LLM engine, including progress and check statistics.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Site ID (path parameter). |
| id | Integer | Yes | LLM engine ID (path parameter). |
Request example
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/llm/151216/status' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
If the LLM engine is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| llm_id | Integer | LLM engine ID. |
| site_id | Integer | Site ID. |
| progress | Integer | Percentage of prompts checked today (0–100). |
| prompts_count | Integer | Total number of prompts for this LLM engine. |
| prompts_checked | Integer | Number of prompts checked on the site’s current date. |
| last_update_date | String | Date of the last check. If progress is 100%, returns the current date. Otherwise, returns the latest historical check date. null if no checks have been performed yet. |
Response examples
All prompts checked today (Google AI Overview)
{
"llm_id": 151216,
"site_id": 11270054,
"progress": 100,
"prompts_count": 5,
"prompts_checked": 5,
"last_update_date": "2026-02-19"
}All prompts checked today (ChatGPT)
{
"llm_id": 151294,
"site_id": 11270054,
"progress": 100,
"prompts_count": 5,
"prompts_checked": 5,
"last_update_date": "2026-02-19"
}No prompts configured
{
"llm_id": 160000,
"site_id": 11270054,
"progress": 0,
"prompts_count": 0,
"prompts_checked": 0,
"last_update_date": null
}Get LLM statistics
GET https://api4.seranking.com/sites/{site_id}/airt/llm/{id}/statistics
Returns statistics for the specified LLM engine, including presence stats, AIO presence, mentions/links, and organic overlap (AI Overview only).
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| site_id | Integer | Yes | N/A | Site ID (path parameter). |
| id | Integer | Yes | N/A | LLM engine ID (path parameter). |
| from | String | No | Current date | Start date for date range (YYYY-MM-DD format). If not provided, defaults to the current date. |
| to | String | No | Current date | End date for date range (YYYY-MM-DD format). If not provided, defaults to the current date. |
| top | Integer | No | 0 (all positions) | Top N positions to analyze (0–100): • 0 – all positions (default when omitted)• 3 – only the top 3 positions• 10 – only top 10 positions |
Request examples
Current date only (default)
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/llm/151216/statistics' \
-H 'Authorization: Token YOUR_API_KEY'With date range and top 3
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/llm/151216/statistics?from=2026-02-01&to=2026-02-19&top=3' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
If the LLM engine is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
Top-level response
| Parameter | Type | Description |
|---|---|---|
| llm_id | Integer | LLM engine ID. |
| site_id | Integer | Site ID. |
| top | Integer | top value used for this query (0 = all positions). |
stats object: Basic tracking stats
| Parameter | Type | Description |
|---|---|---|
| stats.indexed_percent | Number | Percentage of prompts that have been indexed (0–100). |
| stats.keywords_count | Integer | Total number of keywords/prompts. |
| stats.last_update | String | Date of the last check (YYYY-MM-DD). |
presence object: Link and mention presence in Top N positions
| Parameter | Type | Description |
|---|---|---|
| presence.link_percent_in_top | Number | Percentage of keywords with site link in Top N (0–100). |
| presence.link_diff | Number | Change in link percentage from first to last date (percentage points). |
| presence.mention_percent_in_top | Number | Percentage of keywords with brand mention in Top N (0–100). |
| presence.mention_diff | Number | Change in mention percentage from first to last date (percentage points). |
aio_presence object: Google AI Overview only
| Parameter | Type | Description |
|---|---|---|
| aio_presence.keywords_with_aio | Number | Percentage of keywords that show AI Overview (0–100). |
| aio_presence.keywords_with_aio_diff | Number | Change in keywords_with_aio from first to last date (percentage points). |
organic_overlap object: Google AI Overview only
| Parameter | Type | Description |
|---|---|---|
| organic_overlap.overlap_count | Integer | Number of overlapping URLs from the Top 20 organic and AIO. |
| organic_overlap.overlap_count_diff | Integer | Change in overlap count from first to last date. |
| organic_overlap.overlap_percent | Number | Percentage of overlap (0–100). |
sources_presence object: Non-Google-AI-Overview engines only (ChatGPT, AI Mode, Gemini, Perplexity)
| Parameter | Type | Description |
|---|---|---|
| sources_presence.answers_with_sources | Number | Percentage of answers that have source links (0–100). |
| sources_presence.answers_with_sources_diff | Number | Change in answers_with_sources from first to last date (percentage points). |
LLM-specific response shape
| Engine | Fields returned |
|---|---|
| Google AI Overview | stats + presence + aio_presence + organic_overlap |
| ChatGPT, AI Mode, Gemini, Perplexity | stats + presence + sources_presence |
Response examples
Google AI Overview with date range and top=3
{
"llm_id": 151216,
"site_id": 11270054,
"top": 3,
"stats": {
"keywords_count": 5,
"last_update": "2026-02-19",
"indexed_percent": 100
},
"presence": {
"link_percent_in_top": 0,
"link_diff": 0,
"mention_percent_in_top": 0,
"mention_diff": 0
},
"aio_presence": {
"keywords_with_aio": 80,
"keywords_with_aio_diff": 0
},
"organic_overlap": {
"overlap_count": 4,
"overlap_count_diff": 0,
"overlap_percent": 20
}
}ChatGPT with date range (all positions)
{
"llm_id": 151294,
"site_id": 11270054,
"top": 0,
"stats": {
"keywords_count": 5,
"last_update": "2026-02-19",
"indexed_percent": 100
},
"presence": {
"link_percent_in_top": 0,
"link_diff": 0,
"mention_percent_in_top": 20,
"mention_diff": 0
},
"sources_presence": {
"answers_with_sources": 60,
"answers_with_sources_diff": 0
}
}List prompts
GET https://api4.seranking.com/sites/{site_id}/airt/llm/{llm_id}/prompts
Retrieves the list of prompts (keywords) tracked by a specific LLM engine with pagination support.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID (path parameter). |
llm_id | Integer | Yes | N/A | LLM engine ID (path parameter). |
limit | Integer | No | 100 | Number of items per page (1–1,000). |
offset | Integer | No | 0 | Offset from the beginning of the list. |
group_ids[] | Array of integers | No | N/A | Filter by prompt group IDs (repeatable). See AIRT Groups. |
Request example
List all prompts
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/llm/151294/prompts?limit=5&offset=0' \
-H 'Authorization: Token YOUR_API_KEY'Filter by prompt groups (repeat group_ids[])
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/llm/151294/prompts?group_ids[]=12&group_ids[]=18' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
If the site or LLM engine is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| site_llm_id | Integer | LLM engine ID. |
| site_id | Integer | Site ID. |
| items | Array | List of prompt objects (see below). |
| total | Integer | Total number of prompts for this LLM. |
| limit | Integer | Number of items per page. |
| offset | Integer | Offset from the beginning. |
Each item in the items array has the following structure:
| Parameter | Type | Description |
|---|---|---|
| k2site_llm_id | Integer | Keyword-LLM link ID. Use for DELETE and as the path ID in Get prompt answer. |
| site_llm_id | Integer | LLM engine ID. |
| keyword_id | Integer | Keyword ID. |
group_id | Integer | Prompt group ID. |
| keyword | String | Keyword text. |
| search_volume | Integer | Search volume (if available). |
| intent | Integer | Keyword intent (if set). |
| intent_meaning | Array of strings | Intent letters: I, N, L, C, T. null when unset. |
keyword_id, site_llm_id, k2site_llm_id, search_volume) may be returned as JSON strings. Consumers should coerce them to integers.Response example
{
"site_llm_id": 151294,
"site_id": 11270054,
"items": [
{
"k2site_llm_id": "1411621",
"site_llm_id": "151294",
"keyword_id": "1021954",
"group_id": "26377",
"keyword": "best seo tool",
"search_volume": "0",
"intent": "1",
"intent_meaning": ["I"]
}
],
"total": 5,
"limit": 5,
"offset": 0
}If the site or LLM engine is not found, the API returns the 404 HTTP status code.
Add prompts
POST https://api4.seranking.com/sites/{site_id}/airt/llm/{llm_id}/prompts
Adds new prompts (keywords) to the specified LLM engine. Duplicate keywords for the same LLM engine are automatically skipped.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Site ID (path parameter). |
| llm_id | Integer | Yes | LLM engine ID (path parameter). |
| prompts | Array of strings | Yes | Keywords to add. Minimum 1 item. Each item non-empty (whitespace-only rejected), max 255 characters. |
| group_id | Integer | No | Target prompt group ID. Defaults to the site’s default group. |
Request example
Add to the default group
curl -X POST 'https://api4.seranking.com/sites/11270054/airt/llm/151294/prompts' \
-H 'Authorization: Token YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"prompts": [
"best seo tool",
"seo rank tracker",
"website audit tool"
]
}'Add to a specific prompt group
curl -X POST 'https://api4.seranking.com/sites/11270054/airt/llm/151294/prompts' \
-H 'Authorization: Token YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"prompts": ["best seo tool", "seo rank tracker"],
"group_id": 12
}'Response parameters
Returns the count of actually added keywords (excluding duplicates) in the HTTP status 201. If the site or LLM engine is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| site_llm_id | Integer | LLM engine ID. |
| site_id | Integer | Site ID. |
| added | Integer | Number of keywords actually added (excluding duplicates). |
| prompts | Array\<Integer> | Array of k2site_llm_id values for added keywords. |
Response example
{
"site_llm_id": 151294,
"site_id": 11270054,
"added": 3,
"prompts": [1411621, 1411624, 1411627]
}Delete prompts
DELETE https://api4.seranking.com/sites/{site_id}/airt/llm/{llm_id}/prompts
Deletes prompts (keywords) from the specified LLM engine by their k2site_llm_id.
k2site_llm_id values for keywords you want to delete.Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | Integer | Yes | Site ID (path parameter). |
| llm_id | Integer | Yes | LLM engine ID (path parameter). |
| k2site_llm_ids | Array | Yes | Array of keyword-LLM link IDs to delete (min 1 item). |
Request example
curl -X DELETE 'https://api4.seranking.com/sites/11270054/airt/llm/151294/prompts' \
-H 'Authorization: Token YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"k2site_llm_ids": [1411621, 1411624]}'Response
204 No content — prompts deleted successfully. If the site or LLM engine is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
Get prompt answer
GET
https://api4.seranking.com/sites/{site_id}/airt/llm/{llm_id}/prompts/{k2site_llm_id}/answer
Cost: 0. Retrieving prompt answers does not consume API credits or subscription quota.
Returns the full AI answer text, cited source URLs, detected brand mentions, and, for Google AI Overview engines, the top organic URLs for the tracked prompt on the requested date. Use this endpoint to retrieve the evidence behind the presence and position metrics from /prompts/rankings.
- Pass the
k2site_llm_idvalue from List prompts. Thekeyword_idfield returned by List prompts or Get prompt rankings is a different value and returns404 Prompt not found for this LLM engine. The same value is echoed back in the response under a third name,prompt_llm_id. - Get prompt rankings does not expose
k2site_llm_id. If rankings is your discovery source, cross-reference with List prompts to obtain a usable ID.
- Answer data is stored per day. To follow answer drift over time, call the endpoint once per date.
- Available dates come from the
/prompts/rankingsendpoint. - The
organic_urlsfield is returned only for Google AI Overview engines. For other engines (ChatGPT, Perplexity, Gemini), the field is omitted from the response.
- The full
textfield is retained for 30 days. - Presence metrics (
sources,brands,organic_urls) are retained for one year. - For dates between 30 days and one year old, the endpoint returns the presence metrics with
textas an empty string. - Dates older than one year return HTTP
400.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. Path parameter. |
llm_id | Integer | Yes | N/A | LLM engine ID. Path parameter. |
| Integer | Yes | N/A | Prompt-LLM link ID from List prompts. Path parameter. |
date | String | No | Current date | Date of the cached answer, in YYYY-MM-DD format. |
Request example
curl -X GET "https://api4.seranking.com/sites/72193/airt/llm/630/prompts/6739/answer?date=2026-04-01" \
-H "Authorization: Token YOUR_API_TOKEN"
Response parameters
| Parameter | Type | Description |
|---|---|---|
prompt_llm_id | Integer | Prompt ID. Same value as the k2site_llm_id path parameter. |
prompt | String | Prompt text. |
site_llm_id | Integer | Site LLM association ID. |
site_id | Integer | Site ID. |
date | String | Date of the cached answer, in YYYY-MM-DD format. |
text | String | Full AI answer text cached on the requested date. Empty for dates older than 30 days. |
sources | Array of Object | Source URLs cited in the answer, ordered by position. |
sources[].url | String | Cited source URL. |
sources[].position | Integer | Position of the source in the answer, starting at 1. |
brands | Array of Object | Brands detected in the answer, including the tracked brand and competitors. |
brands[].name | String | Detected brand name. |
brands[].position | Integer | Position of the brand in the answer, starting at 1. |
organic_urls | Array of Object | Top organic URLs alongside the AI answer. Returned for Google AI Overview engines, up to 20 items. |
organic_urls[].url | String | Organic result URL. |
organic_urls[].position | Integer | Organic result position, starting at 1. |
Response example
{
"prompt_llm_id": 6739,
"prompt": "What are the top fashion trends for Fall/Winter 2025?",
"site_llm_id": 630,
"site_id": 72193,
"date": "2026-04-01",
"text": "Fall/Winter 2025 fashion trends embrace dramatic, oversized silhouettes and textured luxury, featuring long coats, rich suede, leather blazers, and strong \"collegiate\" preppy styles...",
"sources": [
{ "url": "https://www.whowhatwear.com/fashion/fall/fashion-week-trends-fall-winter-2025", "position": 1 },
{ "url": "https://facesmag.com/fashion-en/faces-trend-report-the-top-13-trends-for-fall-winter-2025-26/", "position": 2 },
{ "url": "https://www.vogue.com/article/fall-winter-2025-fashion-trends", "position": 3 }
],
"brands": [
{ "name": "Vogue", "position": 1 },
{ "name": "Who What Wear", "position": 2 },
{ "name": "Glamour", "position": 3 }
],
"organic_urls": [
{ "url": "https://www.vogue.com/article/fall-winter-2025-fashion-trends", "position": 1 },
{ "url": "https://www.whowhatwear.com/fashion/trends/elegant-fall-winter-trends-2025", "position": 2 },
{ "url": "https://www.pinterest.com/ideas/fall-2025-fashion-trends/923550151023/", "position": 3 }
]
}
Get prompt rankings
GET https://api4.seranking.com/sites/{site_id}/airt/llm/{llm_id}/prompts/rankings
Retrieves ranking data for all prompts tracked by the specified LLM engine within a date range. Returns positions, URLs, search volume, search intent, and organic-AI overlap data for each keyword.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| site_id | Integer | Yes | N/A | Site ID (path parameter). |
| llm_id | Integer | Yes | N/A | LLM engine ID (path parameter). |
| date_from | String | No | Current date | Start date for rankings data (YYYY-MM-DD format). |
| date_to | String | No | Current date | End date for rankings data (YYYY-MM-DD format). |
| limit | Integer | No | 100 | Number of items per page (1–1000). |
| offset | Integer | No | 0 | Offset from the beginning of the list. |
| group_ids[] | Integer | No | N/A | Filter by prompt group IDs (repeatable). |
Request example
Rankings for a date range
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/llm/151216/prompts/rankings?date_from=2026-02-17&date_to=2026-02-19&limit=2&offset=0' \
-H 'Authorization: Token YOUR_API_KEY'Filter by prompt groups (repeat group_ids[])
curl -X GET 'https://api4.seranking.com/sites/11270054/airt/llm/151216/prompts/rankings?date_from=2026-02-17&date_to=2026-02-19&group_ids[]=12&group_ids[]=18' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
If the site or LLM engine is not found, the API returns the 404 HTTP status code (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| site_llm_id | Integer | LLM engine ID. |
| site_id | Integer | Site ID. |
| date_from | String | Start date of the data range. |
| date_to | String | End date of the data range. |
| items | Array | Rankings data grouped by keyword (see below). |
| total | Integer | Total number of keywords. |
| limit | Integer | Number of items per page. |
| offset | Integer | Offset from the beginning. |
Each item in the items array has the following structure:
| Parameter | Type | Description |
|---|---|---|
| keyword_id | Integer | Keyword ID (distinct from k2site_llm_id; this value is not accepted by Get prompt answer). |
| keyword | String | Keyword text. |
| search_volume | Integer | Monthly search volume for the keyword. |
| search_intent | Array | Search intent codes: • I – informational• N – navigational• L – local• C – commercial• T – transactional |
| positions | Array | Daily position data (see below). |
Each item in the positions array has the following structure:
| Parameter | Type | Description |
|---|---|---|
| date | String | Check date. |
| url_position | Integer | Position of the site’s URL in AI results: • null – no AI result block on that date• 0 – URL not found in results• 1+ – position in results |
| urls_count | Integer | Total number of URLs present in AI results. null when no AI result block. |
| mention_position | Integer | Position of brand mention in AI results: • null – no AI result block on that date• 0 – brand not mentioned• 1+ – position of mention |
| mentions_count | Integer | Total number of brand mentions in AI results. null when no AI result block. |
| organic_overlap | Integer | Organic-AI overlap metric (0–100). null when no AI result block. |
| organic_overlap_percent | Integer | Organic overlap as percentage (0–100). null when no AI result block. |
null, it means there was no AI result block on that date — not that the brand wasn’t found.Response examples
Google AI Overview rankings
{
"site_llm_id": 151216,
"site_id": 11270054,
"date_from": "2026-02-17",
"date_to": "2026-02-19",
"items": [
{
"keyword_id": 1021696,
"keyword": "What are the best tools for monitoring backlinks currently on the market?",
"search_volume": 0,
"search_intent": ["I"],
"positions": [
{
"date": "2026-02-19",
"url_position": 0,
"urls_count": 10,
"mention_position": 6,
"mentions_count": 8,
"organic_overlap": 3,
"organic_overlap_percent": 15
}
]
}
],
"total": 5,
"limit": 2,
"offset": 0
}ChatGPT rankings
{
"site_llm_id": 151294,
"site_id": 11270054,
"date_from": "2026-02-17",
"date_to": "2026-02-19",
"items": [
{
"keyword_id": 1021954,
"keyword": "best seo tool",
"search_volume": null,
"search_intent": null,
"positions": [
{
"date": "2026-02-19",
"url_position": 0,
"urls_count": 25,
"mention_position": 5,
"mentions_count": 10,
"organic_overlap": null,
"organic_overlap_percent": null
}
]
}
],
"total": 5,
"limit": 2,
"offset": 0
}If the site or LLM engine is not found, the API returns the 404 HTTP status code.
