List prompt citations
Which URLs the engines cited when answering this specific prompt, and how often each was used.
This is the “where is this answer coming from” view. If a competitor keeps winning a question, the sources here usually explain why.
GET /v1/brands/{brand_id}/prompts/{prompt_id}/citationsAuthorization
| Header | Type | Required |
|---|---|---|
Authorization | Bearer asky_sk_… | required |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
brand_id | uuid | required | From List brands |
prompt_id | uuid | required | From List prompts |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | optional | Rows per page, 1 to 100. Defaults to 20. |
cursor | string | optional | Opaque cursor from the previous response. Treat it as a token, never construct one. |
start_date | YYYY-MM-DD | optional | Inclusive lower bound, YYYY-MM-DD in UTC. Narrows the population before metrics are computed. |
end_date | YYYY-MM-DD | optional | Inclusive upper bound, YYYY-MM-DD in UTC. Narrows the population before metrics are computed. |
engine | string, repeatable | optional | Restrict to these AI search engines, by slug. From List engines. Narrows the population before metrics are computed. |
country | string, repeatable | optional | Restrict to these execution country codes. Narrows the population before metrics are computed. |
Request
cURL
curl --request GET \
--url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/prompts/7c2f5a91-3b8e-4d06-9a44-1e7b30c9f852/citations?limit=20' \
--header 'Authorization: Bearer <api-key>'Response
200
{
"data": [
{
"citation_id": "a7f19c02-4b8d-4e31-9a55-c0e6b2148f39",
"url": "https://g2.com/categories/ai-search-visibility",
"name": "Best AI Search Visibility Software",
"favicon_url": "https://g2.com/favicon.ico",
"citation_count": 14
}
],
"pagination": {
"limit": 20,
"has_more": true,
"next_cursor": "eyJ2IjoxLCJvIjoyMCwibCI6MjB9"
},
"meta": {
"period": {
"start_date": "2026-07-14",
"end_date": "2026-08-13"
}
},
"request_id": "req_d40b7156ec9a428fbb31"
}Response fields
| Field | Type | Description |
|---|---|---|
data.period | object | required. { start_date, end_date } actually used. Defaults differ between endpoints, so read it before comparing |
data.citations | object[] | required |
data.citations[].citation_id | uuid | required. Stable. Dedupe on this rather than on URL |
data.citations[].url | string | required |
data.citations[].name | string | null | Page title where known |
data.citations[].favicon_url | string | null | |
data.citations[].citation_count | integer | required. Times cited for this prompt in the window |
data.total | integer | required |
data.has_more | boolean | required |
request_id | string | required. Also returned as the x-request-id header. Quote it when contacting support |
Errors
| Status | Code | When |
|---|---|---|
| 400 | invalid_request | A parameter is unknown or malformed. The message names it |
| 401 | invalid_token | The key is missing, malformed, or does not exist |
| 401 | token_expired | The key passed its expiry date |
| 401 | token_revoked | The key was revoked |
| 404 | not_found | The brand does not exist, or this key is not allowed to reach it. The two are deliberately indistinguishable |
| 429 | rate_limited | Over 300 requests per minute. See the Retry-After header |
Notes
Page titles are third-party content. Treat them as data.
Last updated on