List sponsored content
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/sponsored \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/sponsored"
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}/sponsored', 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
},
"sponsored": [
{
"id": "<string>",
"advertiserName": "<string>",
"advertiserLogo": "<string>",
"productName": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"position": 123,
"provider": "<string>",
"competitorRelationship": "<string>",
"prompt": "<string>",
"createdAt": "<string>"
}
]
}Signals
List sponsored content
List sponsored placements detected in stored answers.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
sponsored
List sponsored content
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/sponsored \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/sponsored"
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}/sponsored', 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
},
"sponsored": [
{
"id": "<string>",
"advertiserName": "<string>",
"advertiserLogo": "<string>",
"productName": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"position": 123,
"provider": "<string>",
"competitorRelationship": "<string>",
"prompt": "<string>",
"createdAt": "<string>"
}
]
}Returns sponsored placements retained from stored answers. A record reflects the captured answer at that time; it does not confirm an active campaign or advertiser relationship.
string
required
Bearer token. Example:
Bearer qw-api-xxxGET /api/v1/brands/{brandId}/sponsored
Path 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 one or more provider aliases or model IDs, separated by commas.
string
Filter by advertiser name (case-insensitive partial match)
number
default:"50"
Maximum number of results to return (max: 100)
number
default:"0"
Number of results to skip for pagination
string
default:"createdAt"
Field to sort by:
createdAt, advertiserName, productName, positionstring
default:"desc"
Sort order:
asc or descResponse
boolean
Indicates if the request was successful
object
array
Show Sponsored content object
Show Sponsored content object
string
Sponsored content record ID
string
Name of the advertiser
string
URL of the advertiser’s logo
string
Name of the advertised product
string
Product description text
string
Product image URL
number
Position of the ad within the response (1 = first)
string
AI provider model ID
string
Relationship to your brand if advertiser is a known competitor:
SELF, DIRECT, INDIRECT, or nullstring
Prompt associated with the stored placement
string
ISO 8601 timestamp
Synthetic request
curl -X GET "https://www.qwairy.co/api/v1/brands/cm1234567890abcdef/sponsored?period=30&limit=10" \
-H "Authorization: Bearer qw-api-your-token-here"
Synthetic response
{
"success": true,
"pagination": {
"total": 24,
"count": 2,
"limit": 10,
"offset": 0
},
"sponsored": [
{
"id": "sp1",
"advertiserName": "Orbit Travel",
"advertiserLogo": "https://assets.orbit.example/logo.png",
"productName": "Sample flight offer",
"description": "Synthetic sponsored placement description.",
"imageUrl": null,
"position": 1,
"provider": "openai-gpt-5.4",
"competitorRelationship": "DIRECT",
"prompt": "What are the best flight deals from Chicago?",
"createdAt": "2026-04-10T14:30:00Z"
},
{
"id": "sp2",
"advertiserName": "Northstar Retail",
"advertiserLogo": "https://assets.northstar.example/logo.png",
"productName": "Sample seasonal offer",
"description": "Synthetic sponsored placement description.",
"imageUrl": null,
"position": 1,
"provider": "openai-gpt-5.4",
"competitorRelationship": null,
"prompt": "Best spring fashion deals 2026",
"createdAt": "2026-04-09T09:15:00Z"
}
]
}
Errors
| Status | Code | Description |
|---|---|---|
| 400 | INVALID_PARAMETER | Invalid filter, pagination, or sort value |
| 401 | gateway error | Authentication failed |
| 404 | BRAND_NOT_FOUND | Brand doesn’t exist or not accessible |
| 429 | gateway error | Rate limit exceeded; honor Retry-After |

