List follow-ups
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/follow-ups \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/follow-ups"
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}/follow-ups', 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,
"hasMore": true
},
"followUps": [
{
"id": "<string>",
"text": "<string>",
"kind": "<string>",
"position": 123,
"types": [
{}
],
"isMonitored": true,
"question": {},
"answer": {},
"createdAt": "<string>"
}
]
}Signals
List follow-ups
List the next questions AI providers suggested after monitored answers, with their source prompt, answer, and monitoring status.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
follow-ups
List follow-ups
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/follow-ups \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/follow-ups"
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}/follow-ups', 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,
"hasMore": true
},
"followUps": [
{
"id": "<string>",
"text": "<string>",
"kind": "<string>",
"position": 123,
"types": [
{}
],
"isMonitored": true,
"question": {},
"answer": {},
"createdAt": "<string>"
}
]
}Returns the Follow-Ups that providers suggested after stored answers, newest first. Each row keeps the suggested question, its position in the provider’s list, its intent types, the source prompt and answer, and whether the same question is already a monitored prompt.
string
required
Bearer token. Example:
Bearer qw-api-xxxGET /api/v1/brands/{brandId}/follow-ups
Path parameters
string
required
The unique identifier of the brand
Query parameters
number
Number of days to include, based on the answer date. If not specified, returns all data.
string
Start date in
YYYY-MM-DD, inclusive. Takes precedence over period.string
End date in
YYYY-MM-DD, inclusive.string
Filter by one or more provider aliases or model IDs, separated by commas.
string
Filter by topic ID (keywordId). Supports comma-separated multi-select (e.g.,
id1,id2).string
Filter by tag ID. Supports comma-separated multi-select (e.g.,
id1,id2).string
Filter by prompt type:
TOFU, MOFU, BOFU, or POST_PURCHASEstring
Comma-separated persona UUIDs recorded on the source answer. Use
default for answers generated without a persona, or all for no filter.string
Comma-separated ISO 3166-1 alpha-2 codes of the country recorded on the source answer (for example,
FR,BE). Up to 50 codes; an invalid code returns 400.number
default:"50"
Maximum number of Follow-Ups to return (max: 100)
number
default:"0"
Number of results to skip for pagination
Response
boolean
Indicates if the request was successful
object
array
Show Follow-Up object
Show Follow-Up object
string
Follow-Up ID
string
The suggested question, or the guided-continuation message
string
SUGGESTION for a prompt the engine offers as is; GUIDED_CONTINUATION for the message ChatGPT sends once the user fills in the form it displays, with each form field written as a {placeholder}number
Position of the suggestion in the provider’s list
array
Intent types such as
COMPARISON or HOW_TO; empty until the question is classifiedboolean
Whether the same question is already a monitored prompt
object
Source prompt with
id and textobject
Source answer with
id, raw modelId, providerId, and createdAtstring
When the Follow-Up was recorded (ISO 8601 timestamp)
Synthetic request
curl -X GET "https://www.qwairy.co/api/v1/brands/cm1234567890abcdef/follow-ups?period=30&limit=1" \
-H "Authorization: Bearer qw-api-your-token-here"
Synthetic response
{
"success": true,
"pagination": {
"total": 38,
"count": 1,
"limit": 1,
"offset": 0,
"hasMore": true
},
"followUps": [
{
"id": "followup_01",
"text": "How do warehouse exports compare across analytics platforms?",
"kind": "SUGGESTION",
"position": 1,
"types": ["COMPARISON"],
"isMonitored": false,
"question": {
"id": "prompt_01",
"text": "Which analytics platforms support warehouse exports?"
},
"answer": {
"id": "answer_01",
"modelId": "openai-chatgpt-core",
"providerId": "openai",
"createdAt": "2026-07-19T10:00:00.000Z"
},
"createdAt": "2026-07-19T10:00:02.000Z"
}
]
}
Errors
| Status | Code | Description |
|---|---|---|
| 400 | INVALID_PARAMETER | Invalid filter or pagination 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 |

