List source domains
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/source-domains \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/source-domains"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://www.qwairy.co/api/v1/brands/{brandId}/source-domains', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"pagination": {
"total": 123,
"count": 123,
"limit": 123,
"offset": 123
},
"sources": [
{
"id": "<string>",
"domain": "<string>",
"type": "<string>",
"isSelf": true,
"totalMentions": 123,
"rate": 123,
"avgPosition": 123,
"aiSourceAuthorityScore": {}
}
]
}Sources
List source domains
Monitor which domains AI platforms cite.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
source-domains
List source domains
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/source-domains \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/source-domains"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://www.qwairy.co/api/v1/brands/{brandId}/source-domains', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"pagination": {
"total": 123,
"count": 123,
"limit": 123,
"offset": 123
},
"sources": [
{
"id": "<string>",
"domain": "<string>",
"type": "<string>",
"isSelf": true,
"totalMentions": 123,
"rate": 123,
"avgPosition": 123,
"aiSourceAuthorityScore": {}
}
]
}Lists cited domains and their citation-occurrence share in the selected answer scope.
See Rate limits for retry behavior.
See Entities for the complete Source object structure.
string
required
Bearer token. Example:
Bearer qw-api-xxxPath parameters
string
required
The unique identifier of the brand
Query parameters
number
Number of days to include. If not specified, returns all data.
string
Start date in
YYYY-MM-DD. Provide it with endDate; a lone boundary is currently ignored. Choose either period or the complete date pair.string
End date in
YYYY-MM-DD. Provide it with startDate; a lone boundary is currently ignored. Do not combine the complete date pair with period.string
Filter by AI provider. Supports comma-separated multi-select (e.g.,
chatgpt,claude).string
Filter by source type:
INSTITUTIONAL, COMMERCIAL, MEDIA, BLOG, etc.string
Filter by topic ID. Supports comma-separated multi-select (e.g.,
id1,id2).string
Filter by tag ID. Supports comma-separated multi-select (e.g.,
id1,id2).number
default:"50"
Maximum number of sources to return (max: 100)
number
default:"0"
Number of results to skip for pagination
string
default:"mentions"
Field to sort by:
mentions, position, rate, domainstring
default:"desc"
Sort order:
asc or descResponse
boolean
Indicates if the request was successful
object
array
Show Source object
Show Source object
string
Source ID
string
Domain name
string
Source type
boolean
Whether this is your own domain
number
Total citation count
number
This domain’s citation occurrences divided by all citation occurrences in the selected scope
number
Average position in source lists
number | null
Latest public AI Source Authority score, or
null when evidence is insufficient or no snapshot existsSynthetic request
curl "https://www.qwairy.co/api/v1/brands/YOUR_BRAND_ID/source-domains?limit=10&offset=0" \
-H "Authorization: Bearer $QWAIRY_API_TOKEN"
Synthetic response
{
"success": true,
"pagination": {
"total": 45,
"count": 2,
"limit": 10,
"offset": 0
},
"sources": [
{
"id": "source_01",
"domain": "publisher.example",
"type": "MEDIA",
"isSelf": false,
"totalMentions": 102,
"rate": 5.10,
"avgPosition": 3.2,
"aiSourceAuthorityScore": 61
},
{
"id": "source_02",
"domain": "acme.example",
"type": "INSTITUTIONAL",
"isSelf": true,
"totalMentions": 45,
"rate": 2.25,
"avgPosition": 2.1,
"aiSourceAuthorityScore": null
}
]
}
Errors
| Status | Meaning |
|---|---|
400 | Invalid query parameter |
401 | Missing or invalid API token |
404 | Brand not found or inaccessible |
429 | Rate limit exceeded; honor Retry-After |

