Get source domain
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId} \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId}"
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/{sourceId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Sources
Get source domain
Retrieve detailed source info with breakdowns by provider and topic.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
source-domains
/
{sourceId}
Get source domain
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId} \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId}"
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/{sourceId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Returns one cited domain with date-scoped metrics, provider and topic breakdowns, and the latest public AI Source Authority score.
See Rate limits for retry behavior.
string
required
Bearer token. Example:
Bearer qw-api-xxxPath parameters
string
required
The unique identifier of the brand
Synthetic request
curl "https://www.qwairy.co/api/v1/brands/YOUR_BRAND_ID/source-domains/SOURCE_ID?period=30" \
-H "Authorization: Bearer $QWAIRY_API_TOKEN"
string
required
The unique identifier of the source
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.Synthetic response
{
"success": true,
"source": {
"id": "source_01",
"domain": "publisher.example",
"type": "MEDIA",
"status": "ACTIVE",
"isSelf": false,
"totalMentions": 102,
"rate": 5.10,
"avgPosition": 3.2,
"aiSourceAuthorityScore": 61,
"byProvider": [
{ "provider": "ChatGPT", "mentions": 60, "avgPosition": 3.1 },
{ "provider": "Perplexity", "mentions": 42, "avgPosition": 3.4 }
],
"byTopic": [
{ "topic": "Product Reviews", "mentions": 55, "avgPosition": 2.8 },
{ "topic": "Comparisons", "mentions": 30, "avgPosition": 3.5 }
]
}
}
rate is this domain’s citation occurrences divided by every citation occurrence in the selected date scope. aiSourceAuthorityScore can be null independently of that date filter because it comes from the latest authority snapshot.
Errors
| Status | Meaning |
|---|---|
401 | Missing or invalid API token |
404 | Brand or source domain not found |
429 | Rate limit exceeded; honor Retry-After |

