Lister les enregistrements Query Fan-Out
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>"
}
]
}Signaux
Lister les enregistrements Query Fan-Out
Listez les requêtes de recherche web agrégées, enregistrées pendant que les fournisseurs généraient leurs réponses.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
search
Lister les enregistrements Query Fan-Out
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>"
}
]
}Renvoie les requêtes de recherche web conservées et associées aux réponses enregistrées. Les résultats sont regroupés par texte de requête normalisé et incluent des compteurs de présence ainsi qu’un libellé de priorité défini par l’API.
Les résultats sont agrégés par requête (sans tenir compte de la casse ni des espaces de début et de fin). Chaque ligne représente une requête unique, tous fournisseurs et réponses confondus.
string
requis
Jeton bearer. Exemple :
Bearer qw-api-xxxGET /api/v1/brands/{brandId}/search
Paramètres de chemin
string
requis
L’identifiant unique de la marque
Paramètres de requête
number
Nombre de jours à inclure. Sans valeur, toutes les données sont renvoyées.
string
Date de début au format
YYYY-MM-DD. Fournissez-la avec endDate ; une borne seule est actuellement ignorée. Choisissez soit period, soit la paire de dates complète.string
Date de fin au format
YYYY-MM-DD. Fournissez-la avec startDate ; une borne seule est actuellement ignorée. Ne combinez pas la paire de dates complète avec period.string
Filtre par un ou plusieurs alias de fournisseurs ou identifiants de modèles, séparés par des virgules.
number
défaut:"50"
Nombre maximal de requêtes renvoyées (maximum : 100)
number
défaut:"0"
Nombre de résultats à ignorer pour la pagination
string
défaut:"occurrences"
Champ de tri :
occurrences, priority, brandPresence, query, createdAtstring
défaut:"desc"
Ordre de tri :
asc ou descRéponse
boolean
Indique si la requête a réussi
object
array
Afficher Objet de requête
Afficher Objet de requête
string
La requête de recherche utilisée par l’IA
number
Nombre d’apparitions de cette requête dans l’ensemble des réponses
string
Niveau de priorité :
very-high (concurrents présents, marque absente), high (les deux présents), medium (marque seule), low (aucun des deux)number
Nombre de réponses où le domaine de la marque est cité comme source
number
Nombre de réponses où des concurrents directs sont mentionnés
array
Noms des concurrents directs distincts
number
Nombre de prompts distincts associés à cette requête
array
Objets prompt associés, avec
id et textnumber
Nombre de réponses IA distinctes contenant cette requête
number
Nombre de modèles IA distincts ayant généré cette requête
array
Identifiants des modèles associés à la requête
array
Noms des Topics associés
array
Noms des Tags associés
string
Première occurrence (horodatage ISO 8601)
string
Occurrence la plus récente (horodatage ISO 8601)
Exemple de requête
curl -X GET "https://www.qwairy.co/api/v1/brands/cm1234567890abcdef/search?limit=10&sort=priority" \
-H "Authorization: Bearer qw-api-your-token-here"
Exemple de réponse
{
"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-6.1-sol", "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-6.1-sol", "google-gemini-3-pro"],
"topics": ["Pricing"],
"tags": [],
"firstSeen": "2026-07-05T09:15:00.000Z",
"lastSeen": "2026-07-14T09:15:00.000Z"
}
]
}
priority est un classement déterministe fondé sur brandPresence et competitorPresence. Considérez-le comme une aide au tri, pas comme une prévision d’impact métier.Erreurs
| Statut | Code | Description |
|---|---|---|
| 400 | INVALID_PARAMETER | Valeur de filtre, de pagination ou de tri invalide |
| 401 | erreur de passerelle | Échec de l’authentification |
| 404 | BRAND_NOT_FOUND | Marque inexistante ou inaccessible |
| 429 | erreur de passerelle | Limite de débit dépassée ; respectez Retry-After |

