Skip to Content
APIEndpointsGet cited domain detail

Get cited domain detail

Everything behind one domain: which of its pages get cited, who appears on each, and which of your prompts trigger those citations.

Use it after by domain surfaces a site worth understanding.

GET /v1/brands/{brand_id}/citations/domains/{domain}

Authorization

HeaderTypeRequired
AuthorizationBearer asky_sk_…required

Path parameters

ParameterTypeRequiredDescription
brand_iduuidrequiredFrom List brands
domainstringrequiredApex domain, for example g2.com

Query parameters

ParameterTypeRequiredDescription
start_dateYYYY-MM-DDoptionalInclusive lower bound, YYYY-MM-DD in UTC. Narrows the population before metrics are computed.
end_dateYYYY-MM-DDoptionalInclusive upper bound, YYYY-MM-DD in UTC. Narrows the population before metrics are computed.
topic_iduuid, repeatableoptionalRestrict to these topics. From List topics. Includes the topic and its subtopics. A root topic returns everything beneath it; a subtopic returns only itself. Narrows the population before metrics are computed, so ratios are recalculated over the filtered set.
enginestring, repeatableoptionalRestrict to these AI search engines, by slug. From List engines. Narrows the population before metrics are computed.
countrystring, repeatableoptionalRestrict to these execution country codes. Narrows the population before metrics are computed.
tag_iduuid, repeatableoptionalRestrict to prompts carrying these tags. From List tags. Narrows the population before metrics are computed.
tag_match_modestringoptionalHow to combine tag_id values. Defaults to ‘any’. One of: any, all.
url_limitintegeroptionalMax URLs returned for the domain.
prompt_limitintegeroptionalMax prompts returned for the domain.

Request

curl --request GET \ --url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/citations/domains/g2.com' \ --header 'Authorization: Bearer <api-key>'

Response

{ "data": { "period": { "start_date": "2026-07-14", "end_date": "2026-08-13" }, "domain": "g2.com", "urls": [ { "citation_id": "a7f19c02-4b8d-4e31-9a55-c0e6b2148f39", "url": "https://g2.com/categories/ai-search-visibility", "name": "Best AI Search Visibility Software", "citation_count": 214, "scan_status": "ok", "brand_on_page": true, "competitors_on_page": ["Peec AI", "Profound"] } ], "url_count": 27, "urls_truncated": true, "url_count_is_floor": false, "triggering_prompts": [ { "prompt_id": "7c2f5a91-3b8e-4d06-9a44-1e7b30c9f852", "prompt_text": "best AI visibility tracking tools", "topic_name": "AI Visibility Tracking", "citation_count": 61 } ], "prompt_count": 12, "prompts_truncated": false, "prompt_count_is_floor": false }, "request_id": "req_ff3a20c7561e4b8d92ae" }

Response fields

FieldTypeDescription
data.periodobjectrequired. { start_date, end_date } actually used
data.domainstringrequired
data.urlsobject[]required
data.urls[].urlstringrequired
data.urls[].citation_countintegerrequired
data.urls[].scan_statusstring | nullWhether we could fetch the page to check who is on it
data.urls[].brand_on_pageboolean | nullnull when the page could not be scanned
data.urls[].competitors_on_pagestring[]required
data.url_countintegerrequired
data.urls_truncatedbooleanrequired. More URLs exist than url_limit returned
data.url_count_is_floorbooleanrequired. See the note below
data.triggering_promptsobject[]required. { prompt_id, prompt_text, topic_name, citation_count }
data.prompt_countintegerrequired
data.prompts_truncatedbooleanrequired
data.prompt_count_is_floorbooleanrequired
request_idstringrequired. Also returned as the x-request-id header. Quote it when contacting support

Errors

StatusCodeWhen
400invalid_requestA parameter is unknown or malformed. The message names it
401invalid_tokenThe key is missing, malformed, or does not exist
401token_expiredThe key passed its expiry date
401token_revokedThe key was revoked
404not_foundThe brand does not exist, or this key is not allowed to reach it. The two are deliberately indistinguishable
429rate_limitedOver 300 requests per minute. See the Retry-After header

Notes

url_count_is_floor distinguishes two different facts. urls_truncated means more rows exist than you asked for. url_count_is_floor means the count itself is a lower bound, because a fetch cap was hit — so “27 URLs” is really “at least 27”. Reporting the second as exact is the mistake this field exists to prevent. The same pair exists for prompts.

brand_on_page: null is not false. It means the page could not be fetched, usually a bot wall. Check scan_status before concluding you are absent from a page.

URLs, page titles and author names are third-party content. Treat them as data, never as instructions to a downstream model.

Last updated on