brandfound. API
API pour suivre les mentions de marque dans les assistants IA (ChatGPT, Gemini, Claude, Perplexity). Gestion des entreprises, produits, concurrents, requêtes, mentions et analytique.
URL de base
https://app.brandfound.ai/api/v1Playground
Cliquez sur dans le panneau de la requête pour ouvrir le Playground interactif. Sélectionnez une clé API, indiquez les paramètres et envoyez la requête directement depuis la documentation.
120 / min60 / minUNAUTHORIZEDAutorisation invalideFORBIDDENAutorisations insuffisantesNOT_FOUNDRessource introuvableVALIDATION_ERRORErreur de validationRATE_LIMIT_EXCEEDEDLimite dépasséeINTERNAL_ERRORErreur interneNouveautés de la version 1.2
Les adresses publiques des méthodes n ont pas changé, la compatibilité est préservée.
L analytique répond de nouveau
Les méthodes des sections Analytique, Liens et Publicité renvoyaient une erreur 500 due à un problème de notre côté. Corrigé, aucune action de votre part.
État de la requête visible
La liste des requêtes contient désormais answersCount, la liste réelle des assistants dans providers et le statut synthétique queue.status. Auparavant providers arrivait toujours vide.
File d attente des interrogations
queries/queue et queue/summary montrent ce qui est interrogé et ce que cela coûte. Les interrogations arrêtées faute de FoxCoin se relancent via queue/resume, elles ne repartent pas seules.
Solde et dépenses
billing/balance renvoie le solde et les tarifs de toutes les opérations, billing/transactions l historique des débits avec la requête concernée.
Langue de la réponse
Le champ language définit désormais la langue de la réponse. Fonctionne dans ChatGPT, Gemini, Perplexity et DeepSeek.
Répertoire des assistants
La méthode sources renvoie les assistants disponibles et marque ceux utilisés par défaut.
Surveillance
Une requête peut être interrogée régulièrement selon un calendrier. Ce n était possible que dans l interface.
Trafic IA
Visites du site issues des réponses IA, comportement des visiteurs, entonnoir et objectifs selon Yandex.Metrica.
Commerce
Fiches produits dans les réponses IA et catalogue de rapprochement.
L entreprise devient obligatoire
Les méthodes links, links/filter-options, analytics/links/top-domains, analytics/competitors/preview et advertising exigent companyId. Sans lui, la réponse fusionnait toutes les entreprises du compte.
Authentification
Toutes les requêtes API nécessitent une autorisation. Créez une clé API dans la section Paramètres → Clés API. Les clés ont le préfixe gfx_.
Transmettez la clé dans l'en-tête Authorization de chaque requête.
L'application web utilise automatiquement le cookie session-token. Aucune configuration supplémentaire n'est requise.
Espaces de travail
Espaces de travail (workspaces / teams). Un même jeton OAuth peut accéder à tous les espaces accessibles à l’utilisateur : le sien et ceux où il est ACCEPTED TeamMember. L’espace actif est enregistré dans ApiKey.activeAccountId ; le changement persiste et s’applique à tous les clients MCP de cette clé dès leur prochaine requête. Les droits sont vérifiés à chaque requête : si l’utilisateur perd son appartenance, le middleware revient silencieusement au accountId attribué lors d’OAuth, sans erreur 401. Le changement réinitialise preferredCompanyId, lié à l’ancien espace.
Lister les espaces accessibles
/api/v1/workspacesRenvoie tous les workspaces (accountId) accessibles à l’utilisateur actuel : son propre espace et ceux où il est ACCEPTED TeamMember. `isCurrent: true` indique l’espace actuellement utilisé par la clé API, en tenant compte de la substitution activeAccountId.
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/workspacesRéponse réussie
Changer l’espace actif de la clé API
/api/v1/workspaces/switchMet à jour ApiKey.activeAccountId. L’effet persiste pour TOUTES les requêtes suivantes de cette clé, y compris celles d’autres clients MCP. accountId=null supprime la substitution et rétablit le accountId du jeton. preferredCompanyId est réinitialisé à null, car il appartient à l’ancien espace. Uniquement avec l’authentification par clé API.
Corps de la requête
accountIdstringobligatoireUUID du workspace cible. null supprime la substitution active et rétablit le accountId attribué lors d’OAuth.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED403application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/workspaces/switchRéponse réussie
Entreprises
Gestion des entreprises
Lister les entreprises
/api/v1/companiesRenvoie les entreprises de l’utilisateur avec leurs produits, concurrents et mots-clés.
Paramètres de requête
offsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
sortBystring= createdAtcreatedAtupdatedAtnamelastUsedAtsortOrderstring= descOrdre de tri
ascdescsearchstringTexte de recherche, sans distinction de casse
categoryIdstring (uuid)Filtrer par catégorie
countrystringFiltrer par pays
createdAtFromstring (date-time)Début de la plage des dates de création (ISO 8601)
createdAtTostring (date-time)Fin de la plage des dates de création (ISO 8601)
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/companiesRéponse réussie
Créer une entreprise
/api/v1/companiesCrée une entreprise. La limite dépend de l’abonnement.
Corps de la requête
namestringobligatoiredescriptionstringurlstringcategoryIdstringcountrystringISO 3166-1 alpha-2 (« AE »). Les anciens noms (« russia ») sont acceptés et normalisés. Préférez regionTargets : ce champ est hérité.
synonymsstring[]Synonymes/noms alternatifs (20 maximum)
regionTargetsobject[]Pays et villes de mesure. État COMPLET : les anciennes cibles sont recréées. La cible primary définit le pays et la langue de la génération automatique de requêtes.
defaultLanguageIdstringLangue des requêtes générées (GET /api/v1/geo/languages).
defaultResponseLanguageIdstringLangue dans laquelle l’IA doit répondre.
defaultLocalestringBCP-47, par exemple « ar-AE ».
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/companiesRéponse réussie
Obtenir l'entreprise
/api/v1/companies/{id}Renvoie les informations complètes sur l’entreprise, dont ses produits, concurrents et mots-clés.
Paramètres de requête
idstring (uuid)obligatoireID de l’entreprise
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/companies/{id}Réponse réussie
Mettre à jour l'entreprise
/api/v1/companies/{id}Met à jour partiellement une entreprise. Ne transmettez que les champs à modifier. Paramètres régionaux : regionTargets définit les pays et villes de mesure ; la cible primary détermine le pays et la langue des suggestions automatiques de requêtes (POST /api/v1/queries/autogenerate). countryId / cityId proviennent de GET /api/v1/geo/countries et /api/v1/geo/cities, defaultLanguageId de /api/v1/geo/languages. regionTargets représente l’état COMPLET : les anciennes cibles sont recréées. Le champ isAutoGenerationEnabled est obsolète : l’activation (true) est IGNORÉE. Il appartenait à un planificateur supprimé qui générait les requêtes et les envoyait immédiatement dans la file d’exécution payante.
Paramètres de requête
idstring (uuid)obligatoireID de l’entreprise
Corps de la requête
namestringdescriptionstringurlstringcategoryIdstringcountrystringISO 3166-1 alpha-2 (« AE »). Les anciens noms (« russia ») sont acceptés et normalisés. Préférez regionTargets : ce champ est hérité.
synonymsstring[]isAutoGenerationEnabledbooleanOBSOLÈTE et IGNORÉ lorsque sa valeur est true. Ce champ appartenait à un planificateur supprimé qui générait les requêtes et les envoyait immédiatement dans la file d’exécution payante. Pour générer sans exécuter : POST /api/v1/queries/autogenerate.
regionTargetsobject[]Pays et villes de mesure. État COMPLET : les anciennes cibles sont recréées. La cible primary définit le pays et la langue de la génération automatique de requêtes.
defaultLanguageIdstringLangue des requêtes générées (GET /api/v1/geo/languages).
defaultResponseLanguageIdstringLangue dans laquelle l’IA doit répondre.
defaultLocalestringBCP-47, par exemple « ar-AE ».
autogenQueryTypesstring[]Types de requêtes générées automatiquement. Par défaut : commercial, informational, comparative, reputational. Retirer comparative supprime les comparaisons « X vs Y » des requêtes générées.
autogenQueriesPerRunintegerRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/companies/{id}Réponse réussie
Archiver l'entreprise
/api/v1/companies/{id}Archive l’entreprise. Les données sont conservées, mais l’entreprise disparaît des listes.
Paramètres de requête
idstring (uuid)obligatoireID de l’entreprise
Réponses
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/companies/{id}Suppression réussie
Lister les secteurs
/api/v1/companies/categoriesValeurs categoryId autorisées pour créer ou modifier une entreprise.
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/companies/categoriesRéponse réussie
Produits
Gestion des produits
Lister les produits
/api/v1/productsRenvoie les produits avec les entreprises, mots-clés et concurrents associés.
Paramètres de requête
offsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
sortBystring= createdAtcreatedAtupdatedAtnamesortOrderstring= descOrdre de tri
ascdesccompanyIdstring (uuid)Filtrer par entreprise
searchstringTexte de recherche, sans distinction de casse
createdAtFromstring (date-time)Début de la plage des dates de création (ISO 8601)
createdAtTostring (date-time)Fin de la plage des dates de création (ISO 8601)
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/productsRéponse réussie
Créer un produit
/api/v1/productsCrée un produit associé à une entreprise.
Corps de la requête
namestringobligatoirecompanyIdstringobligatoiredescriptionstringurlstringRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/productsRéponse réussie
Obtenir le produit
/api/v1/products/{id}Renvoie les informations complètes sur le produit, dont ses mots-clés et concurrents.
Paramètres de requête
idstring (uuid)obligatoireID du produit
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/products/{id}Réponse réussie
Mettre à jour le produit
/api/v1/products/{id}Met à jour partiellement un produit.
Paramètres de requête
idstring (uuid)obligatoireID du produit
Corps de la requête
namestringdescriptionstringurlstringRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/products/{id}Réponse réussie
Archiver le produit
/api/v1/products/{id}Archive le produit. Les données sont conservées, mais le produit disparaît des listes.
Paramètres de requête
idstring (uuid)obligatoireID du produit
Réponses
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/products/{id}Suppression réussie
Concurrents
Gestion des concurrents
Lister les concurrents
/api/v1/competitorsRenvoie les concurrents avec les entreprises, produits et mots-clés associés.
Paramètres de requête
offsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
sortBystring= createdAtcreatedAtupdatedAtnamesortOrderstring= descOrdre de tri
ascdesccompanyIdstring (uuid)Filtrer par entreprise
productIdstring (uuid)Filtrer par produit
searchstringTexte de recherche, sans distinction de casse
createdAtFromstring (date-time)Début de la plage des dates de création (ISO 8601)
createdAtTostring (date-time)Fin de la plage des dates de création (ISO 8601)
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/competitorsRéponse réussie
Créer un concurrent
/api/v1/competitorsCrée un concurrent, associé soit à une entreprise, soit à un produit précis.
Corps de la requête
namestringobligatoirecompanyIdstringobligatoireproductIdstringurlstringRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/competitorsRéponse réussie
Obtenir le concurrent
/api/v1/competitors/{id}Renvoie les informations complètes sur le concurrent et ses mots-clés.
Paramètres de requête
idstring (uuid)obligatoireID du concurrent
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/competitors/{id}Réponse réussie
Mettre à jour le concurrent
/api/v1/competitors/{id}Met à jour le nom et/ou l’URL du concurrent.
Paramètres de requête
idstring (uuid)obligatoireID du concurrent
Corps de la requête
namestringurlstringRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/competitors/{id}Réponse réussie
Archiver le concurrent
/api/v1/competitors/{id}Archive le concurrent. Les données sont conservées, mais le concurrent disparaît des listes.
Paramètres de requête
idstring (uuid)obligatoireID du concurrent
Réponses
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/competitors/{id}Suppression réussie
Mots-clés
Intentions (keywords) : création, renommage, archivage/suppression, restore, association/dissociation en masse aux entreprises, produits et concurrents
Lister les intentions
/api/v1/keywordsRenvoie les intentions (keywords) du workspace actuel. Le filtre target accepte un seul champ parmi companyId | productId | competitorId. state contrôle l’archivage : active (par défaut), archived ou all.
Paramètres de requête
offsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
sortBystring= createdAtcreatedAtnamesortOrderstring= descOrdre de tri
ascdescstatestring= activeFiltre de cycle de vie : active (non archivés, par défaut), archived (archivés uniquement), all.
activearchivedallsearchstringSous-chaîne de name, sans distinction de casse.
companyIdstring (uuid)Uniquement les intentions ayant une association active avec cette entreprise.
productIdstring (uuid)Uniquement les intentions ayant une association active avec ce produit.
competitorIdstring (uuid)Uniquement les intentions ayant une association active avec ce concurrent.
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/keywordsRéponse réussie
Créer ou réutiliser une intention
/api/v1/keywordsRecherche ou crée selon (name, userId). Une intention existante est réutilisée et restaurée si elle était archivée. Le champ facultatif attach: { companyId | productId | competitorId }, avec exactement une cible, associe l’intention à cette cible dans la même transaction.
Corps de la requête
namestringobligatoireattachobjectCible d’association/dissociation. Doit contenir EXACTEMENT UN des champs.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywordsRéponse réussie
Obtenir une intention
/api/v1/keywords/{id}Renvoie l’intention avec ses associations actives aux entreprises, produits et concurrents.
Paramètres de requête
idstring (uuid)obligatoireRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/keywords/{id}Réponse réussie
Renommer une intention
/api/v1/keywords/{id}Seul name est modifiable. Une intention archivée ne peut pas être renommée : utilisez d’abord restore.
Paramètres de requête
idstring (uuid)obligatoireCorps de la requête
namestringobligatoireRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/{id}Réponse réussie
Archiver ou supprimer une intention
/api/v1/keywords/{id}Par défaut, archive l’intention et toutes ses associations (soft-delete), opération réversible via POST /restore. ?permanent=true la supprime physiquement de la base ; elle doit déjà être archivée ou avoir des associations archivées. ?dryRun=true renvoie un rapport des éléments concernés sans exécuter l’opération.
Paramètres de requête
idstring (uuid)obligatoirepermanentboolean= falsetrue déclenche une suppression irréversible de la base. L’élément doit être archivé.
dryRunboolean= falsetrue renvoie un rapport sans effets de bord.
Réponses
204Suppression réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/{id}Réponse réussie
Restaurer une intention archivée
/api/v1/keywords/{id}/restoreSupprime archivedAt du keyword et de ses associations archivées dont les entités parentes (company / product / competitor) existent encore. Les associations aux cibles supprimées restent archivées.
Paramètres de requête
idstring (uuid)obligatoireRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/{id}/restoreRéponse réussie
Associer des intentions en lot
/api/v1/keywords/attachPour chaque name, recherche ou crée selon (name, userId), puis garantit une association active avec target. Restaure les associations archivées. target exige EXACTEMENT UN champ parmi companyId / productId / competitorId.
Corps de la requête
targetobjectobligatoireCible d’association/dissociation. Doit contenir EXACTEMENT UN des champs.
namesstring[]obligatoireRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/attachRéponse réussie
Dissocier des intentions en lot
/api/v1/keywords/detachArchive les associations actives keyword↔target. L’intention reste disponible et peut être associée à d’autres cibles. target exige EXACTEMENT UN champ parmi companyId / productId / competitorId.
Corps de la requête
targetobjectobligatoireCible d’association/dissociation. Doit contenir EXACTEMENT UN des champs.
keywordIdsstring[]obligatoireRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/detachRéponse réussie
Requêtes
Gestion des requêtes adressées aux assistants IA
Lister les requêtes
/api/v1/queriesRenvoie les requêtes adressées aux assistants IA et leur nombre de réponses. Filtres avancés par sentiment, groupes, régions, favoris, périmètre de recherche et plages de scores de sentiment. Consultez queue.status et answersCount pour connaître l’état de l’exécution. providers indique les IA effectivement interrogées. Détails des exécutions : GET /api/v1/queries/queue.
Paramètres de requête
offsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
sortBystring= createdAtcreatedAttextupdatedAtsortOrderstring= descOrdre de tri
ascdesccompanyIdstring (uuid)Filtrer par entreprise
productIdstring (uuid)Filtrer par produit
typestringType de requête (general, comparative, negative, etc.). Accepte un tableau : ?type=comparative&type=neutral
originstringOrigine de la requête. Accepte un tableau : ?origin=manual&origin=auto
manualautohasAnswersstringPrésence de réponses
truefalselanguagestringLangue de la requête (ru, en, etc.). Accepte un tableau : ?language=ru&language=en
searchTextstringRecherche dans le texte de la requête
providerstringFiltrer par fournisseur IA de la réponse
sourceIdstringFiltrer par ID de source de la réponse. Accepte un tableau : ?sourceId=id1&sourceId=id2
labelSlugstringFiltrer par slug du groupe/de l’étiquette
regionstringRégion de la requête. Accepte un tableau : ?region=RU®ion=US
isFavoritestringUniquement les requêtes favorites
truefalsesentimentstringFiltrer par sentiment des mentions dans les réponses
positiveneutralnegativesearchFieldstring= queryPérimètre de searchText : texte des requêtes, réponses ou sources
queryanswersourceslabelFilterModestring= orLogique du filtre par groupes : any (or) ou all (and)
orandlabelstringSlug du groupe. Accepte un tableau : ?label=slug1&label=slug2
createdAtFromstring (date-time)Début de la plage des dates de création (ISO 8601)
createdAtTostring (date-time)Fin de la plage des dates de création (ISO 8601)
showArchivedstringAfficher les requêtes archivées (par défaut : false)
truefalseRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/queriesRéponse réussie
Créer une requête
/api/v1/queriesCrée une requête et, par défaut, la place immédiatement dans la file d’exécution. Payant : chaque réponse reçue de chaque IA débite des FoxCoin (tarifs : GET /api/v1/billing/balance). Une requête envoyée à 5 IA coûte 5 réponses. Utilisez dispatch: false pour créer la requête sans dépenser de FoxCoin. Le champ providers sélectionne les IA (slugs : GET /api/v1/sources). S’il est absent, les paramètres par défaut du compte sont utilisés ; sans configuration, il s’agit uniquement de ChatGPT. Pour créer des requêtes en masse avec des groupes : POST /api/v1/queries/setup. Les champs region (ISO 3166-1 alpha-2) et language définissent la zone géographique. Sans region, le pays de l’entreprise est utilisé. geoOverride et resolvedGeoSnapshot sont des instantanés READ-ONLY calculés par le serveur pour les requêtes de groupes ayant des cibles géographiques. Ils ne sont pas acceptés dans POST : le corps est strict et tout champ inconnu provoque une erreur 400. Consultez dispatch dans la réponse pour le résultat de mise en file : dispatched=false avec un error non vide signifie que la requête a été créée, mais que l’exécution n’a pas démarré.
Corps de la requête
textstringobligatoirecompanyIdstringobligatoireproductIdstringtypestring= neutralLes anciennes valeurs negative et general sont acceptées : negative → reputational, general → neutral.
neutralcommercialinformationalcomparativereputationalbrandedlanguagestring= ruCode ISO 639-1 de la langue de réponse (ru, en, ar, hi, vi, ms, ...). Définit la langue imposée à l’IA : une instruction explicite avec le nom de la langue issu du répertoire est ajoutée au prompt. Par défaut : ru.
regionstringPays de la requête, ISO 3166-1 alpha-2 (AE, SA, RU). Si absent, utilise le pays de l’entreprise (regionTarget primary), puis RU. Les anciens noms (« russia ») sont acceptés et normalisés. Ne géocible pas les résultats ; sert aux filtres et aux analyses.
providersstring[]IA à interroger. Si absent, utilise les valeurs par défaut du compte ; sans configuration, uniquement ChatGPT.
dispatchboolean= truefalse crée la requête SANS lancer d’exécution payante.
labelsstring[]Noms des groupes : créés ou réutilisés selon le slug.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED402application/jsonSolde FoxCoin insuffisant
HTTP_402404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queriesRéponse réussie
Obtenir la requête
/api/v1/queries/{id}Renvoie la requête, les réponses des assistants IA et les mentions détectées.
Paramètres de requête
idstring (uuid)obligatoireID de la requête
includeAnswersstring= trueInclure les réponses avec leurs mentions (true par défaut)
truefalseRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/queries/{id}Réponse réussie
Archiver la requête
/api/v1/queries/{id}Archive la requête. Les données sont conservées et peuvent être restaurées.
Paramètres de requête
idstring (uuid)obligatoireID de la requête
Réponses
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/{id}Suppression réussie
Modifier une requête
/api/v1/queries/{id}Modifie le texte, le type, la langue, la région, le produit, le statut de favori et les groupes de la requête. Modifier le texte ne relance PAS les IA : les réponses existantes restent associées à la requête. Créez une nouvelle requête pour les interroger à nouveau. Corps strict : champ inconnu → 400.
Paramètres de requête
idstring (uuid)obligatoireCorps de la requête
textstringtypestringneutralcommercialinformationalcomparativereputationalbrandedlanguagestringregionstringISO 3166-1 alpha-2.
productIdstringnull dissocie la requête du produit.
isFavoritebooleanlabelsstring[]Liste COMPLÈTE des groupes : les associations sont recréées.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/{id}Réponse réussie
Lister les exécutions en attente
/api/v1/queries/queueÉtat des exécutions : une par paire requête/IA. Permet de distinguer une requête encore en cours, un échec et une suspension faute de fonds, ce que le seul nombre de réponses ne permet pas.
Paramètres de requête
statusstring= queued,onHold,failedGroupes de statuts séparés par des virgules. Les trois par défaut.
companyIdstring (uuid)Limiter à une entreprise. Sinon, toutes les entreprises du compte.
queryIdstring (uuid)Exécutions d’une requête
providerstringFiltrer par IA
chatgptgeminiperplexitygrokdeepseekgigachatyandex_alicealice_chatgoogle_ai_modeincludeArchivedboolean= falseInclure les exécutions des requêtes archivées
limitinteger= 50Taille de page
offsetinteger= 0Décalage
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/queries/queueRéponse réussie
Résumé de la file et coût estimé
/api/v1/queries/queue/summaryCompteurs d’exécutions, coût de la file actuelle et solde FoxCoin en une requête. Tant que queuedTotal > 0, l’exécution se poursuit. onHold > 0 indique un manque de fonds : ces exécutions ne reprendront pas automatiquement, même après rechargement.
Paramètres de requête
companyIdstring (uuid)Limiter à une entreprise
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/queries/queue/summaryRéponse réussie
Créer des requêtes en lot avec les modèles IA sélectionnés
/api/v1/queries/setupCrée les groupes et les requêtes dans une transaction, puis les met immédiatement en file. providers permet de sélectionner les modèles IA ; si ce champ est omis, les paramètres du compte sont utilisés. Pour une seule requête, utilisez POST /api/v1/queries, qui accepte aussi providers. Payant : chaque réponse reçue de chaque modèle coûte des FoxCoin (voir GET /api/v1/billing/balance). Maximum 500 requêtes par appel.
Corps de la requête
companyIdstringSi absent, utilise preferredCompanyId de la clé (voir GET /api/v1/context)
clusterIdstringGroupe existant dont hériter les paramètres géographiques ; s’applique à tous les éléments de clusters sans clusterId propre
providersstring[]Modèles IA à interroger (slugs de GET /api/v1/sources). Si ce champ est omis, les paramètres du compte sont utilisés ; un compte non configuré utilise ChatGPT. POST /api/v1/queries permet également la sélection via providers.
clustersobject[]obligatoireRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED402application/jsonSolde FoxCoin insuffisant
HTTP_402404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/setupRéponse réussie
Remettre des exécutions en file
/api/v1/queries/queue/resumeReprend les exécutions suspendues. **Pourquoi.** Si le solde FoxCoin est insuffisant, l’exécution passe à ON_HOLD_NO_FUNDS. Les workers ne la prennent pas en charge et un rechargement ne la relance PAS. Elle attend jusqu’à ce que le planificateur la passe à CANCELLED après 45 jours. Cela peut donner l’impression d’avoir payé sans que les requêtes repartent. La reprise doit toujours être déclenchée explicitement avec cette méthode. **Comment cela se produit.** Créez des requêtes avec un solde insuffisant. Le contrôle a lieu à la mise en file puis à l’exécution : certaines exécutions peuvent donc être suspendues même si la requête a partiellement abouti. Vérifiez `GET /api/v1/queries/queue/summary` → `onHold` ou `queue.status` = `on_hold_no_funds`. **402 n’est pas un refus définitif :** le solde ne couvre pas tout le lot. Rechargez-le ou réessayez avec `force: true` : les exécutions couvertes seront traitées et les autres seront de nouveau suspendues.
Corps de la requête
runIdsstring[]Cibler des ID d’exécution précis
scopestringToutes les exécutions suspendues
onHoldcompanyIdstringLimiter scope à une entreprise
forceboolean= falseReprendre même si le solde ne couvre pas tout le lot
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED402application/jsonSolde FoxCoin insuffisant pour tout le lot
HTTP_402404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/queue/resumeRéponse réussie
Retirer des exécutions de la file
/api/v1/queries/queue/cancelAnnule les exécutions qui n’ont pas encore démarré : en attente (PENDING, RETRYING) ou suspendues. Les exécutions RUNNING ne sont jamais modifiées : elles sont déjà traitées par un worker et leur annulation provoquerait une condition de concurrence. **Quand l’utiliser.** Pour arrêter un lot inutile avant qu’il ne consomme des FoxCoin : le débit intervient à la réception d’une réponse, donc une exécution annulée ne coûte rien. Ou pour supprimer une file bloquée que vous ne comptez pas financer. L’annulation est réversible : une exécution peut être remise en file via `POST /api/v1/queries/queue/resume` avec son `runId`.
Corps de la requête
runIdsstring[]queryIdsstring[]Toutes les exécutions annulables de ces requêtes
scopestringonHold : suspensions uniquement ; queued : file active uniquement
onHoldqueuedcompanyIdstringLimiter scope à une entreprise
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/queue/cancelRéponse réussie
Génération de requêtes
Suggestions automatiques de requêtes : génération de brouillons et validation. La génération (1 FoxCoin par requête) et l’interrogation payante des IA (10 FoxCoin par réponse) sont deux étapes distinctes.
Générer des suggestions sans interroger les modèles IA
/api/v1/queries/autogenerateLe service propose des requêtes et les enregistre comme BROUILLONS. Aucune IA n’est interrogée à cette étape. Remplace isAutoGenerationEnabled, qui lançait simultanément la génération et l’exécution payante sans permettre de les séparer. Ici, l’exécution démarre uniquement avec POST /api/v1/query-drafts/approve. Coût : 1 FoxCoin pour CHAQUE requête générée, débité selon les brouillons effectivement livrés. L’exécution est facturée séparément : 10 FoxCoin par réponse (requête × IA). Langue et pays : sans language/region, les paramètres régionaux de l’entreprise sont utilisés (regionTargets, PUT /api/v1/companies/{id}), puis ru/RU. Pour plusieurs pays, transmettez targets : une tâche par pays, avec sa langue officielle par défaut (AE → ar, IN → hi). Types : sans types, utilise Company.autogenQueryTypes, par défaut commercial, informational, comparative, reputational. Les comparaisons « X vs Y » sont générées uniquement si comparative figure dans la liste ET si l’entreprise a des concurrents. Par défaut, renvoie immédiatement 202 et génère en arrière-plan : consultez la progression par GET sur la même adresse avec clientToken. La forme courte (region/language/city/includeDistricts) et targets sont incompatibles : les utiliser ensemble renvoie 400, car hors de targets, une ville ne peut pas être associée à un pays précis.
Corps de la requête
companyIdstringSi absent, utilise preferredCompanyId de la clé.
productIdstringcountintegerobligatoireNombre de requêtes à générer PAR cible. 1 FoxCoin par requête.
typesstring[]Types de requêtes générées ; count est réparti à parts égales. Si absent, utilise Company.autogenQueryTypes, qui inclut comparative par défaut.
clustersstring[]Sujets dans lesquels répartir les requêtes.
userWishesstringnamestringNom de la tâche, visible dans l’interface et dans GET.
languagestringISO 639-1. Si absent, langue de l’entreprise. Uniquement SANS targets.
regionstringISO 3166-1 alpha-2. Si absent, pays primary de l’entreprise (regionTargets), puis RU. Les anciens noms (« russia ») sont acceptés. Uniquement SANS targets.
citystringUniquement SANS targets.
includeDistrictsbooleanUniquement SANS targets.
targetsobject[]Mesure dans plusieurs pays : une tâche par pays. Coût égal à la somme des count de toutes les cibles. INCOMPATIBLE avec la forme courte : region / language / city / includeDistricts à côté de targets → 400. Dans targets, chaque pays possède sa propre ville et langue.
waitboolean= falsetrue attend la fin de la génération. Réservé aux petits lots : à partir de 100 requêtes, le traitement prend plusieurs minutes.
clientTokenstringVotre marqueur de tâche, utilisé ensuite pour suivre sa progression.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED402application/jsonSolde FoxCoin insuffisant : champs required et balance dans le corps de l’erreur
HTTP_402404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED503application/jsonLa génération automatique n’est pas configurée sur le serveur
HTTP_503/api/v1/queries/autogenerateRéponse réussie
État des tâches de génération de requêtes
/api/v1/queries/autogenerateProgression des tâches lancées par POST /api/v1/queries/autogenerate. Interrogez jusqu’à status = OK, puis récupérez les brouillons via GET /api/v1/query-drafts. Les brouillons d’une tâche RUNNING ne peuvent volontairement pas être approuvés, pour éviter de valider un lot incomplet.
Paramètres de requête
runIdstring (uuid)Tâche précise.
clientTokenstringTâche identifiée par le marqueur client renvoyé par POST.
limitinteger= 20Nombre de tâches récentes à renvoyer.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/autogenerateRéponse réussie
Arrêter une tâche de génération
/api/v1/queries/autogenerate/cancelL’annulation est effective : les lots non démarrés ne sont pas exécutés et seuls les brouillons déjà livrés sont facturés. L’exécution passe à CANCELLED ; les brouillons générés sont conservés et peuvent être approuvés.
Corps de la requête
runIdstringobligatoireRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/autogenerate/cancelRéponse réussie
Lister les brouillons de requêtes
/api/v1/query-draftsStocker un brouillon ne coûte rien et ne déclenche aucune interrogation. Il devient une requête uniquement via POST /api/v1/query-drafts/approve.
Paramètres de requête
statusstringPENDING : en attente de décision. Tous les statuts par défaut.
PENDINGAPPROVEDREJECTEDEXPIREDcompanyIdstring (uuid)Filtrer par entreprise.
typestringFiltrer par type de requête.
neutralcommercialinformationalcomparativereputationalbrandedpageinteger= 1Numéro de page, à partir de 1.
limitinteger= 50Taille de page.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/query-draftsRéponse réussie
Valider les brouillons et lancer les requêtes
/api/v1/query-drafts/approveÉTAPE PAYANTE : les brouillons approuvés deviennent des requêtes envoyées aux IA choisies, à 10 FoxCoin par réponse (requête × IA). 50 brouillons × 3 IA = 150 réponses = 1500 FoxCoin. Appelez d’abord avec dryRun: true et présentez l’estimation à l’utilisateur. Idempotent : un nouvel appel avec les mêmes draftIds ne crée pas de doublons et ne relance pas les requêtes. Les brouillons d’une tâche de génération encore en cours sont ignorés (skippedRunning) ; attendez status = OK.
Corps de la requête
draftIdsstring[]obligatoireprovidersstring[]obligatoireIA à interroger. Chaque IA multiplie le coût.
dryRunbooleantrue renvoie uniquement l’estimation, sans création ni débit.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED402application/jsonSolde FoxCoin insuffisant : champs required et balance dans le corps de l’erreur
HTTP_402404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/query-drafts/approveRéponse réussie
Rejeter les brouillons
/api/v1/query-drafts/rejectRejet logique : le brouillon reste en base avec le statut REJECTED pour l’audit de facturation. Aucune IA n’est interrogée. Les FoxCoin de génération ne sont pas remboursés, car les requêtes ont déjà été générées.
Corps de la requête
draftIdsstring[]obligatoireRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/query-drafts/rejectRéponse réussie
Réponses des IA
Réponses des IA par lot : liens, mentions et sentiment.
Récupérer les réponses IA en lot
/api/v1/answersRemplace une boucle GET /api/v1/queries/{id} pour chaque requête : une page contient jusqu’à 200 réponses avec liens, mentions et sentiment. links contient les citations analysées de N’IMPORTE QUELLE IA. À distinguer du champ brut answer.sources, qui contient les données du scraper, n’est renseigné que pour « Recherche avec Alice » et ne constitue pas une liste de citations. brandDomainCited indique si le domaine du site de l’entreprise est cité dans la réponse. Champs de mention : position est le DÉCALAGE EN CARACTÈRES dans le texte de la réponse. Le tableau est trié sur cette valeur ; l’ordre de citation de la marque correspond donc au RANG de la mention dans le tableau, pas à position. sentiment (1 / 0 / -1) et sentimentScore (-1..1) décrivent la réponse ENTIÈRE et sont identiques pour toutes ses mentions. sentimentScore = null si le sentiment n’a pas encore été calculé. isOurs = false désigne un concurrent. Les paramètres de tableau sont répétés : ?companyId=a&companyId=b.
Paramètres de requête
companyIdstring[]Entreprises, plusieurs valeurs acceptées.
productIdstring[]Produits, plusieurs valeurs acceptées.
queryIdstring[]Uniquement les réponses à ces requêtes.
sourceIdstring[]IA par id (GET /api/v1/sources).
providerstring[]IA par slug.
typestring[]Type de requête auquel appartient la réponse.
labelstring[]Slugs des groupes.
regionstring[]Région de la requête, ISO 3166-1 alpha-2. Les anciens noms sont également reconnus.
languagestring[]Langue de la requête.
createdAtFromstring (date-time)Date de création de la RÉPONSE, borne de début (ISO 8601).
createdAtTostring (date-time)Date de création de la RÉPONSE, borne de fin (ISO 8601).
hasLinksbooleantrue : réponses avec liens uniquement ; false : réponses sans liens uniquement.
mentionsOursbooleantrue : uniquement les réponses mentionnant la marque de l’entreprise.
showArchivedboolean= falsetrue : inclure les réponses des requêtes archivées.
includestring= content,tonalityÉléments à inclure, séparés par des virgules : content, links, mentions, tonality.
limitinteger= 50Taille de page.
offsetinteger= 0Décalage.
sortBystring= createdAtChamp de tri.
createdAtdatesortOrderstring= descSens du tri.
ascdescRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/answersRéponse réussie
Géographie
Répertoires des pays, régions, villes et langues.
Lister les pays
/api/v1/geo/countriesLes id du répertoire servent à regionTargets et defaultLanguageId des entreprises et groupes ; iso2 sert au champ region des requêtes et de la génération automatique.
Paramètres de requête
qstringRecherche par nom.
continentstringFiltrer par continent.
EUROPEASIANORTH_AMERICASOUTH_AMERICAAFRICAOCEANIAANTARCTICAlimitinteger= 250Nombre maximal d’enregistrements.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/geo/countriesRéponse réussie
Lister les régions d’un pays
/api/v1/geo/regionsRégions (provinces, États) d’un pays. countryId ou countryIso2 est obligatoire.
Paramètres de requête
countryIso2stringCode pays à deux lettres.
countryIdstring (uuid)UUID du pays.
qstringRecherche par nom.
limitinteger= 100Nombre maximal d’enregistrements.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/geo/regionsRéponse réussie
Lister les villes d’un pays
/api/v1/geo/citiesVilles d’un pays. countryId ou countryIso2 est obligatoire. cityId est utilisé dans regionTargets des entreprises et targets des groupes.
Paramètres de requête
countryIso2stringCode pays à deux lettres.
countryIdstring (uuid)UUID du pays.
regionIdstring (uuid)UUID de la région.
qstringRecherche par nom.
limitinteger= 50Nombre maximal d’enregistrements.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/geo/citiesRéponse réussie
Lister les langues
/api/v1/geo/languagesLes id du répertoire servent à regionTargets et defaultLanguageId des entreprises et groupes ; iso2 sert au champ region des requêtes et de la génération automatique.
Paramètres de requête
qstringRecherche par nom ou code.
limitinteger= 200Nombre maximal d’enregistrements.
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/geo/languagesRéponse réussie
Clusters de requêtes
Étiquettes/groupes de requêtes : liste filtrable par entreprise et création avec paramètres régionaux
Lister les groupes de requêtes
/api/v1/query-labelsRenvoie les étiquettes/groupes de requêtes du workspace actuel avec leur nombre de requêtes. companyId limite les résultats aux groupes contenant des requêtes de cette entreprise ; queryCount ne compte que ses requêtes. lite=true renvoie la forme allégée { items: [{ id, name, slug, queryCount }] }, sans statistiques ni sampleQueries.
Paramètres de requête
companyIdstring (uuid)Filtre par entreprise : uniquement les groupes contenant ses requêtes ; queryCount compte ses requêtes.
litestringlite=true renvoie la forme allégée { items: [{ id, name, slug, queryCount }] }, sans statistiques.
truefalseoffsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
qstringSous-chaîne du nom de l’étiquette, sans distinction de casse.
sortstring= queryCount:descTri au format field:direction.
queryCount:descqueryCount:ascname:ascname:desccreatedAt:desccreatedAt:asclastUsedAt:desclastUsedAt:aschasQueriesstringwith : groupes contenant des requêtes ; without : groupes vides.
withwithoutminCountintegerNombre minimal de requêtes dans le groupe.
maxCountintegerNombre maximal de requêtes dans le groupe.
createdFromstring (date-time)Étiquettes créées à partir de la date indiquée.
createdTostring (date-time)Étiquettes créées au plus tard à la date indiquée.
lastUsedFromstring (date-time)Étiquettes dont lastUsedAt est égal ou postérieur à la date indiquée.
lastUsedTostring (date-time)Étiquettes dont lastUsedAt est égal ou antérieur à la date indiquée.
includestringinclude=targets ajoute les cibles géographiques du groupe (country/city).
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/query-labelsRéponse réussie
Créer ou modifier un groupe régional de requêtes
/api/v1/query-labelsRecherche ou crée selon (slug, userId). Un groupe avec ce slug est mis à jour (nom et paramètres géographiques) et ses targets sont recréées. companyId/productId sont facultatifs et acceptés, mais ne sont pas encore persistés sur QueryLabel.
Corps de la requête
namestringobligatoireslugstringdescriptionstringcompanyIdstringproductIdstringdefaultLanguageIdstringdefaultLocalestringdefaultResponseLanguageIdstringgeoScopestringGLOBALCOUNTRYREGIONCITYinjectLocationModestringNONEAPPEND_PARENSAPPEND_NATURALPREPENDAI_REWRITEautogenStrategystringSHAREDPER_TARGETPER_TARGET_LOCALIZEDtargetsobject[]Réponses
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED409application/jsonConflit : la ressource existe déjà
CONFLICT429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/query-labelsErreur de validation des données d’entrée
Mentions
Consultation des mentions de marque
Lister les mentions
/api/v1/mentionsRenvoie les mentions de marque dans les réponses des assistants IA avec leur contexte complet.
Paramètres de requête
offsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
sortBystring= createdAtcreatedAtpositionsentimentsortOrderstring= descOrdre de tri
ascdesctimeRangestringPériode
24h7d30d90dallcreatedAtFromstring (date-time)Début de la plage des dates de création (ISO 8601)
createdAtTostring (date-time)Fin de la plage des dates de création (ISO 8601)
companyIdstring (uuid)Filtrer par entreprise
productIdstring (uuid)Filtrer par produit
competitorIdstring (uuid)Filtrer par concurrent
answerIdstring (uuid)Filtrer par réponse précise
typestringType de mention
companyproductkeywordcompetitorsentimentstringSentiment
positiveneutralnegativesearchstringTexte de recherche, sans distinction de casse
isOursstringUniquement notre marque (true) ou les concurrents (false)
truefalseRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/mentionsRéponse réussie
Analytique
Analyses : concurrents, sentiment, liens et visibilité de la marque
Analytique des concurrents
/api/v1/analytics/competitorsAnalyse comparative complète de votre entreprise et de ses concurrents selon les mentions dans les assistants IA. Filtres par groupes (slug), fournisseurs IA et période.
Paramètres de requête
timeRangestring= 30dPériode
24h7d30dallfromstring (date-time)Début de la période personnalisée (ISO 8601)
tostring (date-time)Fin de la période personnalisée (ISO 8601)
companyIdstring (uuid)ID de l’entreprise
productIdstring (uuid)ID du produit
sourceIdstring[]ID des fournisseurs IA
labelIdstring[]ID des groupes/étiquettes
labelSlugstringSlug du groupe. Tableau : ?labelSlug=slug1&labelSlug=slug2
labelFilterModestring= orMode de filtrage des étiquettes
orandincludeDemostringInclure les données de démonstration
truefalseRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/competitorsRéponse réussie
Aperçu des mentions
/api/v1/analytics/competitors/previewRenvoie les réponses précises des assistants IA avec les mentions pour une analyse détaillée. Filtres par groupes, données de démonstration, période personnalisée et logique de filtrage des étiquettes. companyId est obligatoire : sans lui, les données de toutes les entreprises du compte seraient regroupées. S’il est absent, preferredCompanyId de la clé est utilisé (voir GET /api/v1/context).
Paramètres de requête
sidestringobligatoirePartie concernée : notre entreprise ou un concurrent
ourcompetitorcompetitorNamestringNom du concurrent (si side=competitor)
mentionTypestring= bothType de mention
brandlinkbothoffsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
timeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)sourceIdstring[]labelIdstring[]includeMentionsstringInclure les mentions dans la réponse
truefalseincludeDemostringInclure les données de démonstration
truefalselabelFilterModestring= orLogique de filtrage par groupes
orandfromstring (date-time)Début de la période (ISO 8601)
tostring (date-time)Fin de la période (ISO 8601)
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/competitors/previewRéponse réussie
Analytique de tonalité
/api/v1/analytics/tonalityAnalyse complète du sentiment des réponses des assistants IA : indicateurs de qualité, évolution temporelle, réponses problématiques et meilleures réponses.
Paramètres de requête
timeRangestring= 30d24h7d30d90dcompanyIdstring (uuid)productIdstring (uuid)queryTypestringType de requête
neutralcomparativenegativesentimentstringFiltrer par sentiment
positiveneutralnegativesourceIdstring[]Fournisseurs IA
labelSlugstring[]Groupes/étiquettes par slug
labelFilterModestring= ororandfromstring (date-time)tostring (date-time)includeDemostringtruefalseRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/tonalityRéponse réussie
Analytique des liens
/api/v1/analytics/linksAnalyse des liens issus des réponses des assistants IA : principaux domaines, citations par fournisseur et évolution temporelle. Filtres par sentiment, groupes, type de requête, seuils Impact/Overall Score et période personnalisée. companyId est obligatoire : sans lui, les données de toutes les entreprises du compte seraient regroupées. S’il est absent, preferredCompanyId de la clé est utilisé (voir GET /api/v1/context).
Paramètres de requête
timeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)includeDemostringtruefalselabelSlugstring[]sortDomainsBystringTri des domaines
sentimentstringFiltrer par sentiment
positiveneutralnegativeminImpactnumberSeuil minimal d’Impact Score
minOverallnumberSeuil minimal d’Overall Score
presetstringPréréglage du filtre
queryTypestringType de requête
neutralnegativecomparativelabelstringSlug du groupe
labelFilterModestring= orLogique de filtrage
orandfromstring (date-time)Début de la période
tostring (date-time)Fin de la période
chartOnlystringUniquement les données du graphique
truefalsecitationModestringMode de citation
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/linksRéponse réussie
Top domaines
/api/v1/analytics/links/top-domainsRenvoie les domaines les plus cités dans les réponses des assistants IA. Filtres par sentiment, type de requête, seuils Impact/Overall Score et données de démonstration. companyId est obligatoire : sans lui, les données de toutes les entreprises du compte seraient regroupées. S’il est absent, preferredCompanyId de la clé est utilisé (voir GET /api/v1/context).
Paramètres de requête
timeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)limitinteger= 10Nombre de domaines
includeDemostringInclure les données de démonstration
truefalsesentimentstringFiltrer par sentiment
positiveneutralnegativeminImpactnumberSeuil minimal d’Impact Score
minOverallnumberSeuil minimal d’Overall Score
queryTypestringType de requête
neutralnegativecomparativeRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/links/top-domainsRéponse réussie
Visibilité de la marque
/api/v1/analytics/brand-visibilityÉvolution de la visibilité de la marque par rapport aux concurrents, avec granularité réglable. Filtres par groupes (ID et slug), fournisseurs IA et logique de filtrage.
Paramètres de requête
granularitystring= dayGranularité de l’axe temporel
dayweekmonthtimeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)includeDemostringtruefalsefromstring (date-time)tostring (date-time)labelIdstringID du groupe. Tableau : ?labelId=id1&labelId=id2
labelSlugstringSlug du groupe
labelFilterModestring= orLogique de filtrage
orandsourceIdstringID de la source IA
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/brand-visibilityRéponse réussie
Évolution des citations
/api/v1/analytics/links/citation-timelinePart quotidienne des réponses qui nous citent par rapport aux concurrents. Calculée à partir d’agrégats journaliers ; seul le mode de citation globale est disponible, car ces agrégats ne distinguent pas les citations par URL et par domaine.
Paramètres de requête
companyIdstring (uuid)Entreprise. Si absente, preferredCompanyId de la clé est utilisé
productIdstringProduit
timeRangestring24h | 7d | 30d | 90d | all
granularitystringDécoupage de l’évolution temporelle
tzstringFuseau horaire
sourceIdstring[]Sources
labelSlugstring[]Groupes
labelFilterModestringAND | OR
includeDemobooleanInclure les données de démonstration
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/analytics/links/citation-timelineRéponse réussie
Entreprises et produits pour les filtres
/api/v1/analytics/companies-productsEntreprises du compte et leurs produits, pour le sélecteur « entreprise → produit ». companyId n’est PAS obligatoire ici : sans lui, toutes les entreprises sont renvoyées, conformément à l’objectif de cette méthode.
Paramètres de requête
companyIdstring (uuid)Limiter à une entreprise
includeDemobooleanInclure les données de démonstration
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/companies-productsRéponse réussie
Liens
Domaines et liens issus des réponses des IA
Domaines et liens
/api/v1/linksTableau à deux niveaux des domaines et liens issus des réponses des assistants IA, avec tri et filtres. companyId est obligatoire : sans lui, les données de toutes les entreprises du compte seraient regroupées. S’il est absent, preferredCompanyId de la clé est utilisé (voir GET /api/v1/context).
Paramètres de requête
pageinteger= 1Numéro de page
pageSizeinteger= 50Taille de page
sortBystring= lastMentionedlastMentionedmentionCountanswerCountourMentionCountcompetitorMentionCountdomaintrustRankdomainLinkssortDirstring= descascdescsearchstringTexte de recherche, sans distinction de casse
searchFieldstringChamp de recherche
domainurltitletimeRangestring24h7d30dfromstring (date-time)tostring (date-time)companyIdstring (uuid)productIdstring (uuid)sentimentstringpositiveneutralnegativequeryTypestringneutralnegativecomparativeproviderstring[]Fournisseurs IA
activestringUniquement les liens actifs
truefalsedomainsOnlystringUniquement les domaines, sans liens secondaires
truefalsedomainstringLiens secondaires d’un domaine précis
labelstring[]Groupes/étiquettes
includeDemostringtruefalseRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/linksRéponse réussie
Options de filtre
/api/v1/links/filter-optionsRenvoie les valeurs disponibles pour les filtres du tableau des liens : fournisseurs et étiquettes. companyId est obligatoire : sans lui, les données de toutes les entreprises du compte seraient regroupées. S’il est absent, preferredCompanyId de la clé est utilisé (voir GET /api/v1/context).
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/links/filter-optionsRéponse réussie
Publicité
Données publicitaires issues des réponses des IA
Données publicitaires
/api/v1/advertisingAnalyse des blocs publicitaires et promotionnels dans les réponses des assistants IA. Pagination, recherche par domaine/URL, filtres par groupes, type de promotion, période et tri. companyId est obligatoire : sans lui, les données de toutes les entreprises du compte seraient regroupées. S’il est absent, preferredCompanyId de la clé est utilisé (voir GET /api/v1/context).
Paramètres de requête
timeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)includeDemostringtruefalsepageinteger= 1Numéro de page
pageSizeinteger= 50Taille de page
searchstringRecherche par domaine ou URL
searchFieldstringChamp de recherche
domainurltitlelabelstringSlug du groupe. Tableau : ?label=slug1&label=slug2
promoTypestringType de bloc promotionnel
sortBystringChamp de tri
sortDirstringSens du tri
ascdescfromstring (date-time)Début de la période (ISO 8601)
tostring (date-time)Fin de la période (ISO 8601)
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/advertisingRéponse réussie
Aperçu des blocs publicitaires
/api/v1/advertising/previewDétail de la synthèse /api/v1/advertising : promotions affichées et réponses concernées.
Paramètres de requête
domainstringobligatoireDomaine de la promotion. OBLIGATOIRE, sinon erreur 400
companyIdstring (uuid)Entreprise. Si absente, preferredCompanyId de la clé est utilisé
productIdstringProduit
promoTypestringours | competitor | other
ourscompetitorothertimeRangestring24h | 7d | 30d | 90d | all
labelstring[]Groupes
labelFilterModestringAND | OR
limitinteger= 201..50
offsetinteger= 0Décalage
includeDemobooleanInclure les données de démonstration
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/advertising/previewRéponse réussie
Fabrique de contenu
Fabrique de contenu : tâches, étiquettes, enrichissement, génération de plans et d’articles, détection d’insights
Lister les tâches
/api/v1/factory/tasksRenvoie les tâches de la fabrique de contenu avec filtres, pagination et tri.
Paramètres de requête
companyIdstring (uuid)Filtrer par entreprise
statusstring[]Filtrer par statut ; plusieurs valeurs acceptées : ?status=TODO&status=IN_PROGRESS
typestring[]Filtrer par type de tâche ; plusieurs valeurs acceptées
prioritystring[]Filtrer par priorité ; plusieurs valeurs acceptées
searchstringRecherche dans le titre et la description de la tâche
tagIdstring (uuid)Filtrer par étiquette
aiGeneratedbooleanFiltre : uniquement les tâches générées par IA
sortBystring= createdAtcreatedAtupdatedAtprioritystatuspositionsortOrderstring= descOrdre de tri
ascdescoffsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/factory/tasksRéponse réussie
Créer une tâche
/api/v1/factory/tasksCrée une tâche dans la fabrique de contenu.
Corps de la requête
titlestringobligatoireTitre de la tâche
companyIdstringobligatoireID de l’entreprise
typestringobligatoireType de tâche
NEW_ARTICLEOPTIMIZE_PAGECREATE_FAQCOMPARISONGUIDECASE_STUDYprioritystring= MEDIUMPriorité
CRITICALHIGHMEDIUMLOWdescriptionstringDescription de la tâche
targetKeywordsstring[]Mots-clés cibles (20 maximum)
targetProvidersstring[]Fournisseurs IA cibles
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasksRéponse réussie
Obtenir la tâche
/api/v1/factory/tasks/{id}Renvoie les informations complètes sur une tâche de la fabrique de contenu.
Paramètres de requête
idstring (uuid)obligatoireID de la tâche
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/factory/tasks/{id}Réponse réussie
Mettre à jour la tâche
/api/v1/factory/tasks/{id}Met à jour partiellement une tâche de la fabrique de contenu.
Paramètres de requête
idstring (uuid)obligatoireID de la tâche
Corps de la requête
statusstringIDEABACKLOGTODOIN_PROGRESSREVIEWDONEDISMISSEDprioritystringCRITICALHIGHMEDIUMLOWtitlestringdescriptionstringtagIdsstring[]Tableau des ID d’étiquettes à associer
targetKeywordsstring[]targetProvidersstring[]dueDatestringÉchéance de la tâche
metadataobjectMétadonnées libres de la tâche
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}Réponse réussie
Archiver la tâche
/api/v1/factory/tasks/{id}Archive la tâche. Les données sont conservées, mais son statut devient DISMISSED.
Paramètres de requête
idstring (uuid)obligatoireID de la tâche
Réponses
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}Suppression réussie
Enrichir la tâche
/api/v1/factory/tasks/{id}/enrichRecherche RAG dans la base de sources, analyse des concurrents et recommandations IA.
Paramètres de requête
idstring (uuid)obligatoireID de la tâche
Corps de la requête
topicstringobligatoireSujet à enrichir
descriptionstringDescription complémentaire
keywordsstring[]Mots-clés de la recherche RAG
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}/enrichRéponse réussie
Générer un plan
/api/v1/factory/tasks/{id}/planGénère un plan d’article à partir des données enrichies : structure, titres, idées principales et ton.
Paramètres de requête
idstring (uuid)obligatoireID de la tâche
Corps de la requête
promptstringInstructions complémentaires pour générer le plan
topicIdstringID du sujet sélectionné parmi les suggestions
topicTitlestringTitre du sujet
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}/planRéponse réussie
Générer un article
/api/v1/factory/tasks/{id}/articleGénère un article à partir d’un plan, avec streaming SSE. Content-Type: text/event-stream.
Paramètres de requête
idstring (uuid)obligatoireID de la tâche
Corps de la requête
planIdstringID du plan utilisé pour générer l’article
articleLengthstring= mediumLongueur de l’article : short (~1000 mots), medium (~2000), long (~3500)
shortmediumlongRéponses
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}/articleNon authentifié : jeton absent ou invalide
Versions de contenu
/api/v1/factory/tasks/{id}/versionsRenvoie les versions de contenu de la tâche : plans, articles et briefs.
Paramètres de requête
idstring (uuid)obligatoireID de la tâche
typestringFiltrer par type de contenu
planarticlebriefplanIdstringFiltrer par ID du plan
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/factory/tasks/{id}/versionsRéponse réussie
Analytique de la tâche
/api/v1/factory/tasks/{id}/analyticsRenvoie les analyses de la tâche : statistiques d’enrichissement, de génération et de publication.
Paramètres de requête
idstring (uuid)obligatoireID de la tâche
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/factory/tasks/{id}/analyticsRéponse réussie
Suggérer des sujets
/api/v1/factory/tasks/{id}/topicsGénère 10 sujets à partir des données de la tâche.
Paramètres de requête
idstring (uuid)obligatoireID de la tâche
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}/topicsRéponse réussie
Lister les publications
/api/v1/factory/publicationsRenvoie la liste paginée des publications de la fabrique de contenu.
Paramètres de requête
companyIdstring (uuid)Filtrer par entreprise
offsetinteger= 0Décalage de pagination
limitinteger= 20Nombre d’enregistrements par page
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/factory/publicationsRéponse réussie
Détecter les insights
/api/v1/factory/insightsLance les détecteurs (15 types) : lacunes de contenu, succès des concurrents, opportunités inexploitées, risques de réputation, etc.
Corps de la requête
companyIdstringobligatoireID de l’entreprise
insightTypestringType d’insight ; s’il est absent, tous les détecteurs sont lancés
CONTENT_GAPCOMPETITOR_WINWHITE_SPACEREPUTATION_RISKKEYWORD_OPPORTUNITYTRENDING_TOPICPROVIDER_BIASSEASONAL_OPPORTUNITYFAQ_OPPORTUNITYCOMPARISON_OPPORTUNITYGUIDE_OPPORTUNITYCASE_STUDY_OPPORTUNITYOPTIMIZATION_NEEDEDAUTHORITY_BUILDINGlimitintegerNombre maximal d’insights
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/insightsRéponse réussie
Paramètres Factory
/api/v1/factory/settingsRenvoie les paramètres actuels de la fabrique de contenu de l’utilisateur.
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/factory/settingsRéponse réussie
Mettre à jour les paramètres
/api/v1/factory/settingsMet à jour les paramètres de la fabrique de contenu par fusion récursive (deep merge).
Corps de la requête
settingsobjectobligatoireParamètres à fusionner récursivement avec les paramètres actuels
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/settingsRéponse réussie
Obtenir la fiche de marque
/api/v1/factory/brand-cardLit la fiche de marque, arborescence de documents Markdown de l’entreprise contenant les connaissances utilisées pour générer le contenu. Trois modes : sans paramètre supplémentaire, toute la fiche en un document Markdown (manifeste → fichiers core → fichiers liés → autres ; blocs privés ```private retirés ; limite d’environ 12 000 caractères) ; mode=index renvoie le manifeste et les fichiers avec path, id, isCore et liens sortants ; path=... renvoie un fichier : content, avec les liens [Nom](brandcard://id) conservés tels quels, et links avec le chemin résolu de chaque lien.
Paramètres de requête
companyIdstring (uuid)obligatoireID de l’entreprise
modestringindex renvoie le manifeste et la liste des fichiers au lieu de la fiche complète
indexpathstringChemin du fichier tel qu’il apparaît dans l’index, par exemple "main / settings.md", pour renvoyer un fichier. Insensible à la casse
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/factory/brand-cardRéponse réussie
Créer ou modifier un fichier de la fiche de marque
/api/v1/factory/brand-cardCrée ou remplace entièrement un fichier de la fiche de marque à partir de son chemin. Les dossiers manquants sont créés et l’extension .md est ajoutée si elle manque. Pour référencer un autre fichier, insérez un lien Markdown [Nom](brandcard://<id de l’index>) : il repose sur l’id, résiste aux renommages/déplacements et augmente la priorité du fichier cible lors de la génération. Conservez tels quels les liens brandcard:// existants lors des modifications. Placez les notes personnelles et options dans un bloc ```private : elles ne seront pas envoyées aux IA.
Corps de la requête
companyIdstringobligatoireID de l’entreprise
pathstringobligatoireChemin du fichier, segments séparés par "/", par exemple "products / pricing.md"
contentstringobligatoireMarkdown complet du fichier ; remplace son contenu actuel
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/brand-cardRéponse réussie
Supprimer un fichier ou dossier de la fiche de marque
/api/v1/factory/brand-cardSupprime un fichier ou un dossier de la fiche de marque par son chemin ; un dossier et tout son contenu sont supprimés en cascade. Les fichiers structurels instruction.md, README.md et core ne peuvent pas être supprimés : modifiez-les via POST. Les liens vers un fichier supprimé deviennent orphelins : ils disparaissent de links dans l’index et sont renvoyés avec path=null à la lecture d’un fichier.
Paramètres de requête
companyIdstring (uuid)obligatoireID de l’entreprise
pathstringobligatoireChemin du fichier ou dossier, tel que dans l’index
Réponses
204Suppression réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/brand-cardRéponse réussie
Solde et dépenses
Solde FoxCoin et historique des opérations
Solde FoxCoin et tarifs
/api/v1/billing/balanceSolde, mouvements et tarifs des opérations. Le portefeuille est partagé au niveau du compte : les membres de l’équipe utilisent le solde du propriétaire. Les tarifs sont fournis ici pour éviter de les coder en dur dans l’intégration.
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/billing/balanceRéponse réussie
Historique des transactions
/api/v1/billing/transactionsHistorique des opérations du portefeuille. Pour les débits liés aux réponses, query identifie la requête facturée.
Paramètres de requête
typestringFiltrer par type d’opération
ANSWER_CHARGEQUERY_GENERATIONBRAND_CARD_GENERATIONTASK_ENRICHMENTARTICLE_GENERATIONCONTENT_PLANTOPIC_SUGGESTIONFACT_CHECKTOPUPBONUSREFUNDMANUAL_ADJUSTMENTSUBSCRIPTION_CREDITAPI_CALL_FREEfromstring (date-time)Début de la période, date ISO incluse
tostring (date-time)Fin de la période, date ISO incluse
limitinteger= 50Taille de page
offsetinteger= 0Décalage
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/billing/transactionsRéponse réussie
Référentiels
Répertoires et contexte de la clé
Lister les modèles IA
/api/v1/sourcesAssistants disponibles pour les exécutions et assistants utilisés par défaut. value correspond à la valeur acceptée par providers dans POST /api/v1/queries/setup. Les noms absents de cette liste sont ignorés silencieusement lors de la mise en file.
Paramètres de requête
includeUnpollableboolean= falseAjouter claude, file historique non interrogée dans ce système
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/sourcesRéponse réussie
Obtenir le contexte de la clé API
/api/v1/contextPoint de départ conseillé pour l’intégration : compte de la clé, droits, entreprises et produits accessibles, et entreprise utilisée par défaut.
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/contextRéponse réussie
Trafic IA
Visites du site depuis les réponses des IA (Yandex Metrica)
Trafic IA
/api/v1/analytics/metrika/ai-trafficVisites du site depuis les réponses des IA : nombre de visites par IA et évolution. Périmètre du compte : tout integrationId externe est ignoré. Un résultat vide signifie généralement que Metrica n’est pas connecté ; vérifiez /api/v1/integrations/metrika/status.
Paramètres de requête
integrationIdstring (uuid)Compteur Metrica. Sinon, tous les compteurs connectés au compte
timeRangestring24h | 7d | 30d | 90d | all
fromstringDébut de la période, date ISO
tostringFin de la période, date ISO
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/metrika/ai-trafficRéponse réussie
Visiteurs issus des modèles IA
/api/v1/analytics/metrika/visitorsVisites issues des IA et comportement sur le site : profondeur de navigation, objectifs et visites répétées. Périmètre du compte : tout integrationId externe est ignoré. Un résultat vide signifie généralement que Metrica n’est pas connecté ; vérifiez /api/v1/integrations/metrika/status.
Paramètres de requête
integrationIdstring (uuid)Compteur Metrica. Sinon, tous les compteurs connectés au compte
timeRangestring24h | 7d | 30d | 90d | all
fromstringDébut de la période, date ISO
tostringFin de la période, date ISO
hasGoalsbooleanUniquement les visites ayant atteint des objectifs
includeSyntheticbooleanInclure le trafic synthétique
pvMinintegerNombre minimal de pages vues
pvMaxintegerNombre maximal de pages vues
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/metrika/visitorsRéponse réussie
Entonnoir du trafic IA
/api/v1/analytics/metrika/traffic-funnelParcours entre une visite issue d’une réponse IA et l’action cible. Périmètre du compte : tout integrationId externe est ignoré. Un résultat vide signifie généralement que Metrica n’est pas connecté ; vérifiez /api/v1/integrations/metrika/status.
Paramètres de requête
integrationIdstring (uuid)Compteur Metrica. Sinon, tous les compteurs connectés au compte
timeRangestring24h | 7d | 30d | 90d | all
fromstringDébut de la période, date ISO
tostringFin de la période, date ISO
hasGoalsbooleanUniquement les visites ayant atteint des objectifs
includeSyntheticbooleanInclure le trafic synthétique
pvMinintegerNombre minimal de pages vues
pvMaxintegerNombre maximal de pages vues
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/metrika/traffic-funnelRéponse réussie
Corrélation entre mentions et trafic
/api/v1/analytics/metrika/correlationCompare l’évolution des mentions de marque aux visites réelles pour déterminer si une meilleure visibilité apporte davantage de trafic. Périmètre du compte : tout integrationId externe est ignoré. Un résultat vide signifie généralement que Metrica n’est pas connecté ; vérifiez /api/v1/integrations/metrika/status.
Paramètres de requête
companyIdstring (uuid)Entreprise. Si absente, preferredCompanyId de la clé est utilisé
integrationIdstring (uuid)Compteur Metrica. Sinon, tous les compteurs connectés au compte
timeRangestring24h | 7d | 30d | 90d | all
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/metrika/correlationRéponse réussie
Objectifs Metrika
/api/v1/analytics/metrika/goalsRépertoire des objectifs du compteur : précise ce que représente hasGoals dans les autres méthodes. Périmètre du compte : tout integrationId externe est ignoré. Un résultat vide signifie généralement que Metrica n’est pas connecté ; vérifiez /api/v1/integrations/metrika/status.
Paramètres de requête
integrationIdstring (uuid)Compteur Metrica. Sinon, tous les compteurs connectés au compte
includeInactivebooleanInclure les objectifs inactifs
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/metrika/goalsRéponse réussie
Résumé du trafic synthétique
/api/v1/analytics/metrika/synthetic/summaryPart des visites de robots et non organiques, afin qu’elles ne faussent pas l’analyse du trafic IA. Périmètre du compte : tout integrationId externe est ignoré. Un résultat vide signifie généralement que Metrica n’est pas connecté ; vérifiez /api/v1/integrations/metrika/status.
Paramètres de requête
integrationIdstring (uuid)Compteur Metrica. Sinon, tous les compteurs connectés au compte
timeRangestring24h | 7d | 30d | 90d | all
fromstringDébut de la période, date ISO
tostringFin de la période, date ISO
filterstringFiltre de classification
hasGoalsbooleanUniquement les visites ayant atteint des objectifs
pvMinintegerNombre minimal de pages vues
pvMaxintegerNombre maximal de pages vues
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/metrika/synthetic/summaryRéponse réussie
Lister les visites synthétiques
/api/v1/analytics/metrika/synthetic/listDétail paginé de la synthèse : visites présentant des signes de trafic synthétique. Périmètre du compte : tout integrationId externe est ignoré. Un résultat vide signifie généralement que Metrica n’est pas connecté ; vérifiez /api/v1/integrations/metrika/status.
Paramètres de requête
integrationIdstring (uuid)Compteur Metrica. Sinon, tous les compteurs connectés au compte
timeRangestring24h | 7d | 30d | 90d | all
fromstringDébut de la période, date ISO
tostringFin de la période, date ISO
filterstringFiltre de classification
qstringRecherche
qScopestringPérimètre de recherche
hasRevenuebooleanUniquement avec des revenus
returningOnlybooleanUniquement les visiteurs récurrents
pageintegerPage
pageSizeintegerTaille de page
sortBystringChamp de tri
sortOrderstringasc | desc
hasGoalsbooleanUniquement les visites ayant atteint des objectifs
pvMinintegerNombre minimal de pages vues
pvMaxintegerNombre maximal de pages vues
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/analytics/metrika/synthetic/listRéponse réussie
Compteurs connectés
/api/v1/integrations/metrika/listPoint de départ pour le trafic IA : renvoie integrationId pour les autres méthodes de cette rubrique.
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/integrations/metrika/listRéponse réussie
État de l’intégration
/api/v1/integrations/metrika/statusIndique si Metrica est connecté, la dernière synchronisation et si l’accès a expiré. Permet d’expliquer les résultats vides des méthodes de cette rubrique.
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/integrations/metrika/statusRéponse réussie
Commerce
Fiches produit dans les réponses des IA
Analyse commerciale
/api/v1/analytics/commerceFiches produit affichées par les IA avec le texte de la réponse. view=summary : part des réponses contenant des fiches et évolution par IA ; sellers : principaux vendeurs et domaines ; brands : fiches de notre marque face aux concurrents ; cards : liste paginée.
Paramètres de requête
viewstring= summarysummary | sellers | brands | cards
summarysellersbrandscardscompanyIdstring (uuid)Entreprise. Si absente, preferredCompanyId de la clé est utilisé
productIdstring[]Plusieurs valeurs acceptées
timeRangestring24h | 7d | 30d | 90d | all
granularitystringDécoupage de l’évolution temporelle
tzstringFuseau horaire
labelIdstring[]Groupes
labelSlugstring[]Groupes par slug
labelFilterModestringAND | OR
sourceIdstring[]Sources
queryTypestring[]Types de requêtes
includeDemobooleanInclure les données de démonstration
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/analytics/commerceRéponse réussie
Produits suivis
/api/v1/commerce/productsCatalogue utilisé pour identifier les produits dans les fiches des réponses. Sans lui, la rubrique Commerce affiche les vendeurs et domaines, mais ne distingue pas nos produits de ceux des concurrents.
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/commerce/productsRéponse réussie
Ajouter un produit
/api/v1/commerce/productsRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/commerce/productsRéponse réussie
Surveillance
Exécution périodique des requêtes selon un calendrier
Lister les requêtes suivies
/api/v1/favorite-queriesListe des requêtes configurées pour une exécution régulière.
Paramètres de requête
searchstringRecherche textuelle
activebooleanUniquement les éléments activés
Réponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED/api/v1/favorite-queriesRéponse réussie
Commencer le suivi d’une requête
/api/v1/favorite-queriesPOST /api/v1/queries interroge normalement les IA UNE seule fois. Le suivi régulier est une entité distincte, créée ici. Créer l’enregistrement ne lance pas encore l’exécution : définissez ensuite le calendrier via POST /api/v1/favorite-queries/{id}/assignments. Chaque exécution planifiée est payante : 10 FoxCoin par réponse de CHAQUE IA. Un intervalle de 60 minutes sur trois IA représente 72 réponses par jour. En cas de fonds insuffisants, les exécutions sont suspendues sans reprise automatique (POST /api/v1/queries/queue/resume).
Corps de la requête
textstringobligatoiretypestringobligatoirecompanyIdstringproductIdstringlanguagestring= ruregionstring= RUisActiveboolean= truetagsstring[]Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queriesRéponse réussie
Obtenir une entrée de suivi
/api/v1/favorite-queries/{id}Paramètres de requête
idstring (uuid)obligatoireRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/favorite-queries/{id}Réponse réussie
Modifier une entrée de suivi
/api/v1/favorite-queries/{id}Texte, entreprise, étiquettes et isActive. Pour suspendre sans supprimer : isActive: false.
Paramètres de requête
idstring (uuid)obligatoireRéponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queries/{id}Réponse réussie
Arrêter le suivi d’une requête
/api/v1/favorite-queries/{id}Supprime l’enregistrement et son calendrier : aucune nouvelle exécution n’aura lieu. Les réponses et mentions déjà obtenues sont conservées, car elles appartiennent à la requête et non à l’abonnement.
Paramètres de requête
idstring (uuid)obligatoireRéponses
204Suppression réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queries/{id}Réponse réussie
Obtenir le calendrier des requêtes
/api/v1/favorite-queries/{id}/assignmentsParamètres de requête
idstring (uuid)obligatoireRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND/api/v1/favorite-queries/{id}/assignmentsRéponse réussie
Définir le calendrier des requêtes
/api/v1/favorite-queries/{id}/assignmentsC’est ici que le suivi régulier démarre : un enregistrement sans calendrier n’exécute rien. Un seul calendrier par enregistrement ; un nouvel appel le remplace. Chaque exécution planifiée est payante : 10 FoxCoin par réponse de CHAQUE IA. Un intervalle de 60 minutes sur trois IA représente 72 réponses par jour. En cas de fonds insuffisants, les exécutions sont suspendues sans reprise automatique (POST /api/v1/queries/queue/resume).
Paramètres de requête
idstring (uuid)obligatoireCorps de la requête
providersstring[]obligatoireListe : GET /api/v1/sources
frequencyMinutesintegerobligatoireIntervalle entre les exécutions
isEnabledboolean= trueSuspendre sans supprimer le calendrier
timezonestring= Europe/MoscowFuseau utilisé pour daysOfWeek et hoursWindow
daysOfWeekinteger[]1..7 ; vide = tous les jours
hoursWindowobjectPlage horaire en dehors de laquelle aucune exécution n’a lieu
modelobjectCorrespondance « IA → modèle »
Réponses
200Réponse réussie
400application/jsonErreur de validation des données d’entrée
VALIDATION_ERROR401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queries/{id}/assignmentsRéponse réussie
Exécuter une requête maintenant
/api/v1/favorite-queries/{id}/run-nowExécution immédiate, sans attendre ni modifier le calendrier. Facturée selon les tarifs habituels.
Paramètres de requête
idstring (uuid)obligatoireRéponses
200Réponse réussie
401application/jsonNon authentifié : jeton absent ou invalide
UNAUTHORIZED404application/jsonRessource introuvable
NOT_FOUND429application/jsonLimite de requêtes dépassée (IP : 120 req/min, par utilisateur : 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queries/{id}/run-nowRéponse réussie