AI Results Tracker – Sources
AIRT Sources API, part of the AI Results Tracker (AIRT), provides programmatic access to project-level AI-search visibility across a date range. This includes domains and pages are cited as sources in AI answers, how often the project’s brand and its competitors are mentioned, and where mention opportunities exist.
Unlike the Competitors endpoints (which are scoped to a single LLM engine), Sources data is aggregated across all the project’s LLM engines by default. Use site_llm_ids[] to narrow the scope to specific engines.
Using the API, you can:
- get a project-level summary of mention opportunities and per-competitor mention counts
- list the source domains cited across your tracked prompts, with authority and mention metrics
- list the individual source pages (URLs) cited, with per-page metrics
- get outreach recommendations — high-impact sources and per-domain suggestions where your project is cited but not yet mentioned
Shared filters
All four endpoints accept the same core filter set:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. |
date_from | String | No | 30 days before date_to | Range start (YYYY-MM-DD format). |
date_to | String | No | Current date | Range end (YYYY-MM-DD format). Cannot exceed the current date. |
site_llm_ids[] | Array of integers | No | All the project’s engines | Narrow aggregation to specific LLM engines (repeatable). |
prompt_ids[] | Array of integers | No | N/A | Filter by tracked prompt IDs (repeatable). |
group_ids[] | Array of integers | No | N/A | Filter by prompt group IDs (repeatable). See AIRT Groups. |
Get sources summary
GET https://api.seranking.com/v1/project-management/airt/sources/summary
Cost: 0. Retrieving sources data does not consume API credits or subscription quota.
Project-level AI-search visibility for a date range. Returns the four opportunity tiles plus the per-competitor bubble-chart data (two counts per brand: mentions in AI answers and mentions in cited source URLs).
Note: Homepage and product pages are excluded from the tile counts, mirroring the UI.
Request parameters
The shared filters: site_id, date_from, date_to, site_llm_ids[], prompt_ids[], group_ids[].
Request example
curl 'https://api.seranking.com/v1/project-management/airt/sources/summary?site_id=11270054&date_from=2026-06-09&date_to=2026-07-08' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
| Parameter | Type | Description |
|---|---|---|
site_id | Integer | Site ID. |
site_llm_ids | Array of integers | LLM engine IDs included in the aggregation. |
date_from | String | Start date of the data range. |
date_to | String | End date of the data range. |
summary | Object | Opportunity tiles (see below). |
competitors | Array | Per-competitor mention counts (see below). |
summary object:
| Parameter | Type | Description |
|---|---|---|
summary.mention_opportunities | Integer | Sources mentioning 2 or more brands but not the project (total opportunity). |
summary.competitor_only_mentions | Integer | Opportunity sources that mention a competitor but not the project. |
summary.new_opportunities | Integer | Opportunity sources first seen within the last 30 days. |
summary.mentions_without_backlinks | Integer | Sources that mention the project but do not link to it. |
Each item in the competitors array:
| Parameter | Type | Description |
|---|---|---|
name | String | Competitor brand name. |
count_in_ai_answers | Integer | Mentions of the brand in AI answers. |
count_in_sources | Integer | Mentions of the brand in cited source URLs. |
Response example
{
"site_id": 11270054,
"site_llm_ids": [151216, 151294],
"date_from": "2026-06-09",
"date_to": "2026-07-08",
"summary": {
"mention_opportunities": 119,
"competitor_only_mentions": 99,
"new_opportunities": 23,
"mentions_without_backlinks": 168
},
"competitors": [
{ "name": "Semrush", "count_in_ai_answers": 653, "count_in_sources": 564 },
{ "name": "Ahrefs", "count_in_ai_answers": 641, "count_in_sources": 364 },
{ "name": "SE Ranking", "count_in_ai_answers": 489, "count_in_sources": 290 }
]
}Error responses
| Code | Scenario |
|---|---|
400 | Invalid query parameters. |
404 | Site not found. |
List source domains
GET https://api.seranking.com/v1/project-management/airt/sources/domains
Cost: 0. Retrieving sources data does not consume API credits or subscription quota.
Outreach target list: domains cited as sources in LLM answers, default sort by AI answers descending. Each row carries the Domains-tab columns: status, pages/AI-answers/prompts counts, coverage %, brand mention rate %, mentioned brands, Domain Trust, backlinks, referring domains, and a per-engine usage breakdown (usage_count_by_llm).
Request parameters
The shared filters, plus:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
competitor_ids[] | Array of integers | No | N/A | Filter to sources where the given competitor brands appear (repeatable). |
is_brand_mentioned | Integer | No | N/A | Restrict to sources where the project’s brand is (1) or is not (0) mentioned. |
has_link | Integer | No | N/A | Restrict to sources that link (1) or do not link (0) to the project. |
search | String | No | N/A | Substring match on the source domain. |
limit | Integer | No | 100 | Number of items per page (1–100). |
offset | Integer | No | 0 | Offset from the beginning of the list. |
sort | String | No | ai_answers_total | Sort field: domain, pages_total, ai_answers_total, prompts_total, prompts, coverage_percent, brand_mentions_total, mention_rate_percent, dt, backlinks_total, referring_domains_total. |
sort_order | String | No | desc | Sort direction: asc or desc. |
Request example
curl 'https://api.seranking.com/v1/project-management/airt/sources/domains?site_id=11270054&date_from=2026-06-09&date_to=2026-07-08&is_brand_mentioned=0&limit=10' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
Envelope: site_id, site_llm_ids, date_from, date_to, limit, offset, total, items.
Each item in the items array:
| Parameter | Type | Description |
|---|---|---|
domain_id | Integer | Domain ID. Use as domain_id in List source pages to restrict to this domain. |
domain | String | Domain name. |
status | String | Parsing status: parsed, in_progress, not_parsed, or not_available. |
pages_total | Integer | Number of this domain’s pages cited as sources. |
ai_answers_total | Integer | Number of AI answers citing the domain. |
prompts | Integer | Number of prompts whose answers cite the domain. |
prompts_total | Integer | Same value as prompts. |
total_answers | Integer | Total AI answers in scope for the range. |
coverage_percent | Number | Share of tracked prompts whose answers cite the domain (0–100). |
brand_mentions_total | Integer | Mentions of the project’s brand on the domain’s cited pages. |
mention_rate_percent | Number | Brand mention rate across the domain’s cited pages (0–100). |
first_seen | String | First date the domain was seen as a source (YYYY-MM-DD). |
last_seen | String | Most recent date the domain was seen as a source (YYYY-MM-DD). |
dt | Integer or null | Domain Trust. |
backlinks_total | Integer or null | Total backlinks to the project from this domain. |
referring_domains_total | Integer or null | Referring domains. |
is_project | Integer | 1 when the domain is the project’s own domain, 0 otherwise. |
is_competitor | Integer | 1 when the domain belongs to a tracked competitor, 0 otherwise. |
mentions | Array of objects | Brands mentioned on the domain’s cited pages. Each object: name, domain, and competitor_id — competitor_id is present only for tracked competitors, omitted otherwise. |
usage_count_by_llm | Array of objects | Per-engine usage breakdown. Each object: site_llm_id (integer), usage_count (numeric string). |
Warning: usage_count values are returned as JSON strings. Coerce them to integers before arithmetic.
Response example
{
"site_id": 11270054,
"site_llm_ids": [151216, 151294],
"date_from": "2026-06-09",
"date_to": "2026-07-08",
"limit": 1,
"offset": 0,
"total": 343,
"items": [
{
"domain_id": 5008,
"domain": "techradar.com",
"pages_total": 16,
"ai_answers_total": 67,
"prompts": 19,
"brand_mentions_total": 3,
"first_seen": "2026-02-20",
"last_seen": "2026-07-09",
"dt": 61,
"backlinks_total": 17246330,
"referring_domains_total": 161528,
"coverage_percent": 8.9,
"mention_rate_percent": 18.8,
"is_project": 0,
"is_competitor": 0,
"total_answers": 750,
"prompts_total": 19,
"status": "parsed",
"usage_count_by_llm": [
{ "site_llm_id": 151216, "usage_count": "0" },
{ "site_llm_id": 151294, "usage_count": "67" }
],
"mentions": [
{ "name": "seranking.com", "domain": "seranking.com" },
{ "name": "ahrefs.com", "domain": "ahrefs.com", "competitor_id": 1043944 },
{ "name": "moz.com", "domain": "moz.com", "competitor_id": 1043947 }
]
}
]
}Error responses
| Code | Scenario |
|---|---|
400 | Invalid query parameters. |
404 | Site not found. |
List source pages
GET https://api.seranking.com/v1/project-management/airt/sources/pages
Cost: 0. Retrieving sources data does not consume API credits or subscription quota.
URL-level twin of List source domains: individual source URLs cited in LLM answers, with the parent domain, page type, and the same metric columns. Default sort by usage descending.
Request parameters
The shared filters, plus the same competitor_ids[], is_brand_mentioned, has_link, search, limit, offset, and sort_order parameters as List source domains, and:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
domain_id | Integer | No | N/A | Restrict to a single domain’s pages (domain_id from the List source domains response). |
sort | String | No | count_usage | Sort field: url, dt, count_usage, prompts, mention, link, brands_num, competitors_num, prompt_coverage, answers_coverage. |
Request example
curl 'https://api.seranking.com/v1/project-management/airt/sources/pages?site_id=11270054&date_from=2026-06-09&date_to=2026-07-08&domain_id=12345&limit=10' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
Envelope: site_id, site_llm_ids, date_from, date_to, limit, offset, total, items.
Each item in the items array:
| Parameter | Type | Description |
|---|---|---|
id | Integer | Page ID. |
domain_id | Integer | Parent domain ID. |
url | String | Source URL. |
title | String | Page title. |
http_status | String | HTTP status of the page, encoded as a string. |
content_updated | String | Timestamp of the last content parse (YYYY-MM-DD HH:MM:SS). |
page_type | String | Page type (for example forum, other). |
count_usage | String | Times this URL was cited as a source. Numeric string. |
prompts | String | Number of prompts whose answers cite the URL. Numeric string. |
answers_coverage | Number | Share of AI answers citing the URL (0–100). |
prompt_coverage | Number | Share of tracked prompts whose answers cite the URL (0–100). |
total_answers | Integer | Total AI answers in scope. |
total_prompts | Integer | Total prompts in scope. |
first_seen | String | First date the URL was seen as a source (YYYY-MM-DD). |
last_seen | String | Most recent date the URL was seen as a source (YYYY-MM-DD). |
dt | String or null | Domain Trust of the parent domain. Numeric string. |
traffic | Integer | Traffic estimate for the page. |
mention | String | "1" when the project’s brand is mentioned on the page, "0" otherwise. |
link | String | "1" when the page links to the project, "0" otherwise. |
nofollow | Integer or null | Whether the link to the project is nofollow. |
brands_num | String | Number of brands mentioned on the page. Numeric string. |
competitors_num | String | Number of tracked competitors mentioned on the page. Numeric string. |
is_project | Integer | 1 when the URL belongs to the project’s own domain, 0 otherwise. |
is_competitor | Integer | 1 when the URL belongs to a tracked competitor, 0 otherwise. |
mentions | Array of objects | Brands mentioned on the page. Each object: name, domain, and competitor_id — competitor_id is present only for tracked competitors, omitted otherwise. |
usage_count_by_llm | Array of objects | Per-engine usage breakdown. Each object: site_llm_id (integer), usage_count (numeric string). |
Warning: Several numeric fields (count_usage, prompts, dt, mention, link, brands_num, competitors_num, usage_count, http_status) are returned as JSON strings. Coerce them before arithmetic.
Response example
{
"site_id": 11270054,
"site_llm_ids": [151216, 151294],
"date_from": "2026-06-09",
"date_to": "2026-07-08",
"limit": 1,
"offset": 0,
"total": 560,
"items": [
{
"id": 1542589,
"url": "https://www.techradar.com/pro/software-services/se-ranking",
"title": "SE Ranking review | TechRadar",
"domain_id": 5008,
"http_status": "200",
"content_updated": "2026-07-07 06:26:17",
"page_type": "other",
"dt": "61",
"mention": "1",
"link": "1",
"nofollow": 1,
"brands_num": "7",
"competitors_num": "0",
"mentions": [
{ "name": "seranking.com", "domain": "seranking.com" }
],
"count_usage": "54",
"prompts": "19",
"first_seen": "2026-02-23",
"last_seen": "2026-07-09",
"prompt_coverage": 76,
"answers_coverage": 7.2,
"traffic": 40,
"usage_count_by_llm": [
{ "site_llm_id": 151216, "usage_count": "0" },
{ "site_llm_id": 151294, "usage_count": "54" }
],
"is_project": 0,
"is_competitor": 0,
"total_answers": 750,
"total_prompts": 25
}
]
}Error responses
| Code | Scenario |
|---|---|
400 | Invalid query parameters. |
404 | Site not found. |
Get sources recommendations
GET https://api.seranking.com/v1/project-management/airt/sources/recommendations
Cost: 0. Retrieving sources data does not consume API credits or subscription quota.
Ordered list from the Recommendations panel — for example “Secure Brand Mentions on High-Impact Sources” and per-domain outreach suggestions (Reddit, YouTube, Wikipedia, and others) where the project is cited but not yet mentioned.
Request parameters
The shared filters: site_id, date_from, date_to, site_llm_ids[], prompt_ids[], group_ids[].
Request example
curl 'https://api.seranking.com/v1/project-management/airt/sources/recommendations?site_id=11270054&date_from=2026-06-09&date_to=2026-07-08' \
-H 'Authorization: Token YOUR_API_KEY'Response parameters
Envelope: site_id, site_llm_ids, date_from, date_to, items.
Each item in the items array:
| Parameter | Type | Description |
|---|---|---|
type | String | Recommendation type: most_cited_sources or one_domain. |
code | String | Recommendation code: secure_mentions for the most-cited-sources recommendation; the domain slug for one_domain (for example reddit, youtube, quora). |
data | Object or array | Recommendation payload. For one_domain: domain and count (numeric string). Empty array for most_cited_sources. |
Response example
{
"site_id": 11270054,
"site_llm_ids": [151216, 151294],
"date_from": "2026-06-09",
"date_to": "2026-07-08",
"items": [
{ "type": "most_cited_sources", "code": "secure_mentions", "data": [] },
{ "type": "one_domain", "code": "reddit", "data": { "domain": "reddit.com", "count": "45" } },
{ "type": "one_domain", "code": "youtube", "data": { "domain": "youtube.com", "count": "20" } }
]
}Error responses
| Code | Scenario |
|---|---|
400 | Invalid query parameters. |
404 | Site not found. |
