Source domain evolution
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId}/evolution \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId}/evolution"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId}/evolution', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Sources
Source domain evolution
Track how a source domain’s citation metrics change over time, with daily citation occurrences and average citation position for each day in the period.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
source-domains
/
{sourceId}
/
evolution
Source domain evolution
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId}/evolution \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId}/evolution"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.qwairy.co/api/v1/brands/{brandId}/source-domains/{sourceId}/evolution', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Returns daily citation occurrences and average citation position for one source domain.
See Rate limits for retry behavior.
Path parameters
Query parameters
Start date in
YYYY-MM-DD. Provide it with endDate; a lone boundary is currently ignored. Choose either period or the complete date pair.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 request
curl "https://www.qwairy.co/api/v1/brands/YOUR_BRAND_ID/source-domains/SOURCE_ID/evolution?period=7" \
-H "Authorization: Bearer $QWAIRY_API_TOKEN"
Synthetic response
{
"success": true,
"source": {
"id": "source_01",
"domain": "publisher.example",
"isSelf": false
},
"evolution": [
{
"date": "2026-07-01",
"mentions": 5,
"avgPosition": 3.1
},
{
"date": "2026-07-02",
"mentions": 8,
"avgPosition": 2.9
}
]
}
Errors
| Status | Code | Description |
|---|---|---|
| 401 | gateway error | Missing or invalid API token |
| 404 | BRAND_NOT_FOUND | Brand doesn’t exist or not accessible |
| 404 | SOURCE_NOT_FOUND | Source doesn’t exist |
| 429 | gateway error | Rate limit exceeded; honor Retry-After |

