List query fan-out records
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/search \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/search"
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}/search', 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
},
"searches": [
{
"query": "<string>",
"occurrences": 123,
"priority": "<string>",
"brandPresence": 123,
"competitorPresence": 123,
"competitors": [
{}
],
"uniquePrompts": 123,
"prompts": [
{}
],
"uniqueAnswers": 123,
"uniqueModels": 123,
"models": [
{}
],
"topics": [
{}
],
"tags": [
{}
],
"firstSeen": "<string>",
"lastSeen": "<string>"
}
]
}Signals
List query fan-out records
List aggregated web-search queries recorded while providers generated answers.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
search
List query fan-out records
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/search \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/search"
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}/search', 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
},
"searches": [
{
"query": "<string>",
"occurrences": 123,
"priority": "<string>",
"brandPresence": 123,
"competitorPresence": 123,
"competitors": [
{}
],
"uniquePrompts": 123,
"prompts": [
{}
],
"uniqueAnswers": 123,
"uniqueModels": 123,
"models": [
{}
],
"topics": [
{}
],
"tags": [
{}
],
"firstSeen": "<string>",
"lastSeen": "<string>"
}
]
}Returns retained web-search queries associated with stored answers. Results are grouped by normalized query text and include presence counts plus an API-defined priority label.
Results are aggregated by query (case-insensitive, trimmed). Each row represents a unique search query across all responses and providers.
string
required
Bearer token. Example:
Bearer qw-api-xxxGET /api/v1/brands/{brandId}/search
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.
number
default:"50"
Maximum number of queries to return (max: 100)
number
default:"0"
Number of results to skip for pagination
string
default:"occurrences"
Field to sort by:
occurrences, priority, brandPresence, query, createdAtstring
default:"desc"
Sort order:
asc or descResponse
boolean
Indicates if the request was successful
object
array
Show Search insight object
Show Search insight object
string
The search query used by the AI
number
Number of times this query appeared across all responses
string
Priority level:
very-high (competitors present, brand absent), high (both present), medium (brand only), low (neither)number
Number of responses where the brand’s domain was cited as source
number
Number of responses where direct competitors were mentioned
array
Distinct direct competitor names
number
Number of distinct prompts associated with this query
array
Associated prompt objects with
id and textnumber
Number of distinct AI responses containing this query
number
Number of distinct AI models that generated this query
array
Model IDs associated with the query
array
Associated topic names
array
Associated tag names
string
First occurrence (ISO 8601 timestamp)
string
Most recent occurrence (ISO 8601 timestamp)
Synthetic request
curl -X GET "https://www.qwairy.co/api/v1/brands/cm1234567890abcdef/search?limit=10&sort=priority" \
-H "Authorization: Bearer qw-api-your-token-here"
Synthetic response
{
"success": true,
"pagination": {
"total": 142,
"count": 2,
"limit": 10,
"offset": 0
},
"searches": [
{
"query": "enterprise analytics platforms comparison",
"occurrences": 12,
"priority": "very-high",
"brandPresence": 0,
"competitorPresence": 8,
"competitors": ["Orbit Systems"],
"uniquePrompts": 5,
"prompts": [{ "id": "prompt_analytics", "text": "Which analytics platforms are commonly compared?" }],
"uniqueAnswers": 12,
"uniqueModels": 3,
"models": ["openai-gpt-5.4", "anthropic-claude-4.6-sonnet", "google-gemini-3-pro"],
"topics": ["Analytics"],
"tags": ["Comparison"],
"firstSeen": "2026-07-01T10:30:00.000Z",
"lastSeen": "2026-07-15T10:30:00.000Z"
},
{
"query": "northstar analytics pricing",
"occurrences": 5,
"priority": "medium",
"brandPresence": 3,
"competitorPresence": 0,
"competitors": [],
"uniquePrompts": 2,
"prompts": [{ "id": "prompt_pricing", "text": "What pricing information is available?" }],
"uniqueAnswers": 5,
"uniqueModels": 2,
"models": ["openai-gpt-5.4", "google-gemini-3-pro"],
"topics": ["Pricing"],
"tags": [],
"firstSeen": "2026-07-05T09:15:00.000Z",
"lastSeen": "2026-07-14T09:15:00.000Z"
}
]
}
priority is a deterministic classification from brandPresence and competitorPresence. Treat it as a triage input, not as a business-impact forecast.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 |

