Audience & SEO
23 routes. Chemins relatifs à https://api.nexus-engine.eu/api/v1.
GET
/audience/resume
Combien de comptes (Google, Semrush) l’entreprise a reliés, quels projets et sites portent au moins une propriété rattachée, et quels projets ont installé un module d’audience — parmi ceux que vous voyez.
GET
/audience/connexions
Les comptes reliés : adresse du compte Google ou préfixe de la clé Semrush, droits accordés par service (lecture, création), état, solde d’unités Semrush daté.
RéponseAudienceConnexionDto[]
NoteAucun jeton ni aucune clé ne sort : on remplace une clé, on ne la consulte pas.
GET
/audience/connexions/:id
Un compte relié.
RéponseAudienceConnexionDto
POST
/audience/connexions/:id/verifier
Réessaie le compte : un jeton Google neuf, ou le solde d’unités Semrush (gratuit).
RéponseAudienceConnexionDto
GET
/audience/connexions/:id/inventaire
session de l’application seulement
Ce que le compte voit chez le fournisseur : propriétés GA4 par compte Analytics, sites Search Console (vérifiés ou non), projets Semrush — et où chacun est déjà rattaché.
Requêteservice (GOOGLE_ANALYTICS, SEARCH_CONSOLE, SEMRUSH), frais (1 : ignorer la mémoire de deux minutes)
RéponseAudienceInventaireDto
NoteRéservé à qui a relié ce compte, ou à une personne administratrice : l’inventaire nomme les propriétés de TOUS les clients du compte. La liste des projets Semrush coûte 100 unités.
PATCH
/audience/connexions/:id
session de l’application seulement
Renomme un compte, ou remplace la clé Semrush (essayée avant d’être gardée).
Corpslibelle, cleApi (Semrush)
RéponseAudienceConnexionDto
DELETE
/audience/connexions/:id
session de l’application seulement
Déconnecte un compte : Nexus oublie le jeton ou la clé, et retire les rattachements qu’il alimentait.
Réponse{ supprimee, rattachementsRetires, libelle, chezLeFournisseur }
NoteLe jeton Google n’est PAS révoqué chez Google : une révocation coupe tout ce que le projet Google Cloud a obtenu de ce compte, Drive compris.
GET
/audience/google/application
Owner et Admin
L’application Google (client OAuth « Application Web ») qui sert à relier un compte : celle de l’entreprise, ou celle fournie par l’instance ; l’adresse de retour à déclarer ; les API à activer.
RéponseApplicationGoogleDto
PUT
/audience/google/application
Owner et Admin session de l’application seulement
Pose (ou retire, avec clientId nul) le client OAuth propre à l’entreprise.
CorpsclientId (…apps.googleusercontent.com, ou null), clientSecret (requis la première fois ; absent = inchangé)
RéponseApplicationGoogleDto
NoteLe secret est chiffré et ne ressort jamais.
GET
/audience/google/ads
Owner et Admin
Le jeton de développeur Google Ads : d’où il vient (l’entreprise, l’instance, ou aucun) et ses quatre premiers signes — jamais sa valeur.
PUT
/audience/google/ads
Owner et Admin session de l’application seulement
Pose, remplace (ou retire, avec null) le jeton de développeur Google Ads de l’entreprise, délivré par Google à son compte administrateur (MCC).
CorpsjetonDeveloppeur (lettres, chiffres, - et _ ; ou null)
RéponseJetonAdsDto
NoteChiffré, jamais rendu ni journalisé : on le remplace, on ne le consulte pas.
POST
/audience/google/autorisation
session de l’application seulement
Ouvre l’autorisation Google pour relier (ou étendre) un compte : rend l’adresse à ouvrir dans un navigateur.
Corpsservices (GOOGLE_ANALYTICS, SEARCH_CONSOLE), ecriture (vrai : droit de créer des propriétés), connexionId (étendre un compte relié)
Réponse{ url, suivi }
NoteLa lecture par défaut, l’écriture sur demande ; étendre GARDE ce que le compte avait accordé. Rend aussi `suivi`, la clé qui permet de lire l’issue.
GET
/audience/google/autorisation/:suivi
L’issue d’une autorisation Google ouverte par vous : en attente, ou terminée (réussie ou non, avec le message, et le compte relié).
RéponseSuiviAutorisationDto
NoteUne clé de suivi ne vaut que pour la personne qui l’a reçue ; gardée quinze minutes.
POST
/audience/semrush/connexions
session de l’application seulement
Relie un compte Semrush par sa clé d’API (v3), après un essai réel et gratuit : le solde d’unités.
Corpslibelle, cleApi
RéponseAudienceConnexionDto
GET
/audience/rattachements
Les propriétés rattachées à un projet (les siennes ET celles de ses sites) ou à un site, avec leur dernier relevé daté : indicateurs sur 7, 28 et 90 jours comparés à la période précédente, séries quotidiennes, classements.
Requêteprojet OU site (un identifiant)
RéponseAudienceRattachementDto[]
NoteAucun appel chez un fournisseur : c’est le relevé stocké. Un relevé Semrush de plus d’un mois n’est plus rendu (conditions de Semrush).
POST
/audience/rattachements
session de l’application seulement
Rattache une propriété à un projet ou à un site. Google : seulement ce que le compte VOIT réellement ; Semrush : un domaine et sa base.
CorpsconnexionId, service, externalId (properties/123, sc-domain:… ou https://…/, un domaine), cible { genre: projet|site, id }, base (Semrush, défaut fr), projetSemrushId
RéponseAudienceRattachementDto
NoteLa première lecture part aussitôt, sans faire attendre la réponse.
DELETE
/audience/rattachements/:id
session de l’application seulement
Détache une propriété (auteur du rattachement, qui a relié le compte, ou administrateur). Rien n’est supprimé chez le fournisseur.
Réponse{ supprime, libelle, service, cible }
POST
/audience/rattachements/:id/relire
Relit la propriété MAINTENANT chez le fournisseur et rend le rattachement à jour.
RéponseAudienceRattachementDto
Note429 si c’est trop tôt : cinq minutes entre deux relectures chez Google, un jour chez Semrush (chaque relecture coûte des unités, environ 270).
POST
/audience/rattachements/:id/requete
Interroge EN DIRECT, en lecture seule, la propriété Google Analytics ou Search Console rattachée : un rapport sur mesure, le temps réel, les dimensions disponibles, une recherche, l’inspection d’une URL.
Corpsoperation (rapport, temps-reel, metadonnees pour Analytics ; recherche, inspection pour Search Console), puis les champs de Google — rapport : dimensions, metrics, dateRanges, dimensionFilter, metricFilter, orderBys, limit (1 000 au plus), offset, keepEmptyRows, metricAggregations ; temps-reel : dimensions, metrics, minuteRanges, dimensionFilter, orderBys, limit ; metadonnees : filtre ; recherche : startDate, endDate, dimensions, type, filters ou dimensionFilterGroups, aggregationType, rowLimit (1 000 au plus), startRow, dataState ; inspection : url, langue
RéponseResultatRequeteAudience (colonnes, lignes, suite, avertissements, quota)
NoteLe jeton ne sort jamais : le backend exécute la requête, et sur la seule propriété rattachée. Rien n’est écrit — une clé en lecture seule y a droit. Trente requêtes par minute ; sous 1 500 jetons de quota Google restants dans l’heure, les rapports sont refusés (429, RESERVE_QUOTA) pour garder la collecte de Nexus. Un 400 rend le message de Google. Semrush ne s’interroge pas ici : son serveur MCP officiel répond avec le compte de chacun.
POST
/audience/rattachements/:id/verifier-site
session de l’application seulement
Demande à Google de vérifier le site Search Console d’un rattachement créé par Nexus (après avoir posé l’enregistrement TXT, la balise ou le fichier).
Réponse{ rattachement, verifie, raison }
NoteUn échec est l’issue ordinaire tant que la marque n’est pas en ligne : il se dit, il ne lève pas.
POST
/audience/creations/google-analytics
session de l’application seulement
Crée une propriété GA4 et son flux de données Web dans un compte Analytics, puis la rattache : rend l’identifiant de mesure (G-…).
CorpsconnexionId, compte (accounts/123), nom, fuseau (défaut Europe/Paris), devise (défaut EUR), url, cible
Réponse{ rattachement, measurementId, avertissement }
NoteExige que le compte Google ait accordé la création (analytics.edit).
POST
/audience/creations/search-console
session de l’application seulement
Ajoute un site à la Search Console du compte (Domaine ou Préfixe d’URL), demande son jeton de vérification, et le rattache.
CorpsconnexionId, type (DOMAINE, PREFIXE), adresse, methode (DNS_TXT, META, FILE — DNS_TXT seul pour un Domaine), cible
Réponse{ rattachement }
NoteLe site entre NON VÉRIFIÉ : la vérification se demande ensuite (`…/verifier-site`).
POST
/audience/creations/semrush
session de l’application seulement
Crée un projet Semrush pour un domaine, puis le rattache.
CorpsconnexionId, nom, domaine, base (défaut fr), cible
Réponse{ rattachement }
NoteCoûte 100 unités d’API ; la limite de projets de l’abonnement s’applique.