Get competitor
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/competitors/{competitorId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/competitors/{competitorId}"
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}/competitors/{competitorId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Competitors
Get competitor
Retrieve detailed competitor info with breakdowns by provider and topic, including Share of Voice against SELF and DIRECT mention occurrences.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
competitors
/
{competitorId}
Get competitor
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/competitors/{competitorId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/competitors/{competitorId}"
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}/competitors/{competitorId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Returns one competitor’s metrics for the selected answer scope. Share of Voice divides this competitor’s mention occurrences by SELF and DIRECT mention occurrences in that scope.
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/competitors/COMPETITOR_ID?period=30" \
-H "Authorization: Bearer $QWAIRY_API_TOKEN"
Synthetic response
{
"success": true,
"competitor": {
"id": "competitor_01",
"name": "Rival Labs",
"domain": "rival.example",
"relationship": "DIRECT",
"totalMentions": 104,
"shareOfVoice": 8.13,
"avgPosition": 2.1,
"avgSentiment": 78.1,
"byProvider": [
{ "provider": "ChatGPT", "mentions": 62, "avgPosition": 2.0 },
{ "provider": "Perplexity", "mentions": 42, "avgPosition": 2.3 }
],
"byTopic": [
{ "topic": "Product Reviews", "mentions": 45 },
{ "topic": "Comparisons", "mentions": 38 }
]
}
}
avgSentiment is the average sentiment for this competitor’s mentions on a 0 to 100 scale, or null. byProvider groups stored model IDs under their provider display name.
Errors
| Status | Meaning |
|---|---|
401 | Missing or invalid API token |
404 | Brand or competitor not found |
429 | Rate limit exceeded; honor Retry-After |

