v1Ressources/Fiches publiées
Fiches publiées
Consultez l'état de synchronisation des fiches d'un établissement sur les annuaires.
Renvoie l'état de synchronisation par publisher, le statut du profil Google Business et les pistes d'amélioration pour un établissement.
Obtenir la fiche d'un établissement
get
listings:read/api/v1/listingsParamètres de requête
locationIdstringobligatoire
L'établissement à consulter. Obligatoire. Retrouvez-le avec GET /api/v1/locations.
clientIdstringfacultatif
Le client de l'établissement. Nécessaire seulement pour lever une ambiguïté quand votre clé est limitée à des clients spécifiques.
Réponse
dataobjectfacultatif
statsobjectfacultatif
Chiffres résumés sur l'ensemble des publishers de cet établissement.
publishersnumberfacultatif
Nombre total de publishers suivis.
syncednumberfacultatif
Nombre de publishers actuellement synchronisés.
notConnectednumberfacultatif
Nombre de publishers pas encore connectés.
googleVerifiedLocationsnumberfacultatif
Nombre d'établissements vérifiés par Google.
duplicatesnumberfacultatif
Nombre de fiches en double détectées.
connectionIssuesnumberfacultatif
Nombre de publishers ayant un problème de connexion.
requiresActionnumberfacultatif
Nombre de publishers nécessitant une action.
publishersarray of objectfacultatif
État de synchronisation par publisher.
publisherIdstringfacultatif
Identifiant de l'annuaire/publisher.
publisherNamestringfacultatif
Nom d'affichage du publisher.
statusstring (synced | in_progress | failed | requires_action | not_connected | expired | suspended | pending_approval | inaccessible | credentials_invalidated | not_available)facultatif
L'une des valeurs : synced, in_progress, failed, requires_action, not_connected, expired, suspended, pending_approval, inaccessible, credentials_invalidated, not_available.
liveLinksnumberfacultatif
Nombre de liens actifs trouvés pour ce publisher, ou null.
gbpobjectfacultatif
Synthèse du profil Google Business, lorsqu'il est connecté.
connectedbooleanfacultatif
Si un profil Google Business est connecté.
scorenumberfacultatif
Score de complétude du profil, de 0 à 100, ou null.
donearray of stringfacultatif
Éléments d'amélioration du profil déjà réalisés.
todoarray of stringfacultatif
Éléments d'amélioration du profil restant à faire.
opportunitiesarray of objectfacultatif
Améliorations suggérées, chacune avec un message court et un ton.
textstringfacultatif
tonestring (amber | rose | blue | zinc)facultatif
aiobjectfacultatif
Un court titre généré par IA et jusqu'à 3 corrections prioritaires pour cet établissement, ou null.
headlinestringfacultatif
Résumé en une phrase de l'état des fiches de cet établissement.
fixFirstarray of objectfacultatif
Jusqu'à 3 actions suggérées, classées par impact.
textstringfacultatif
impactstring (High | Med | Low)facultatif
noticestringfacultatif
Une note lisible sur les données de fiches de cet établissement, ou null.
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
get/api/v1/listings
Votre clé API
locationId *
clientId
{
"data": {
"stats": {
"publishers": 42,
"synced": 38,
"notConnected": 2,
"googleVerifiedLocations": 1,
"duplicates": 0,
"connectionIssues": 1,
"requiresAction": 1
},
"publishers": [
{
"publisherId": "google",
"publisherName": "Google",
"status": "synced",
"liveLinks": 1
}
],
"gbp": {
"connected": true,
"score": 82,
"done": [
"Business name",
"Address"
],
"todo": [
"Add photos"
]
},
"opportunities": [
{
"text": "Add more photos to your Google profile",
"tone": "amber"
}
],
"ai": {
"headline": "90% synced — 1 listing needs action.",
"fixFirst": [
{
"text": "Reconnect 1 listing needing action.",
"impact": "High"
}
]
},
"notice": null
}
}v1Ressources/Fiches publiées/getObtenir un résumé des fiches
État de synchronisation des publishers sur les emplacements de ce client (ou de toute l'agence) — un résumé agrégé ainsi qu'une répartition par emplacement, des insights (% de santé, répartition de synchronisation, publishers les plus faibles, éléments « à traiter » classés) et un titre déterministe. Restreindre à un sous-ensemble avec tags. Utilise le même rollup que la vue Fiches → Tous les emplacements.
Obtenir un résumé des fiches
get
listings:read/api/v1/listings/summaryParamètres de requête
clientIdstringfacultatif
Limiter aux emplacements d'un client.
tagsstringfacultatif
Noms de tags d'emplacement séparés par des virgules — seuls les emplacements portant au moins un de ces tags sont inclus.
pageintegerfacultatif
Page des lignes par emplacement (base 1). Par défaut 1.
perPageintegerfacultatif
Lignes par page (max 200). Par défaut 50.
Réponse
dataobjectfacultatif
summaryobjectfacultatif
Totaux agrégés sur tous les emplacements du périmètre.
locationsnumberfacultatif
Nombre d'emplacements dans le périmètre.
publishersTotalnumberfacultatif
Total des emplacements publisher sur tous les emplacements du périmètre.
publishersSyncednumberfacultatif
Parmi eux, actuellement synchronisés.
connectionIssuesnumberfacultatif
Lignes de connecteurs natifs (Google/Facebook) avec un problème de connexion.
duplicatesnumberfacultatif
Fiches en double détectées dans le périmètre.
reviewsnumberfacultatif
Total des avis dans le périmètre.
avgRatingnumberfacultatif
Note moyenne parmi les emplacements qui en ont une.
rowsarray of objectfacultatif
Une ligne par emplacement du périmètre (paginée).
locationIdstringfacultatif
ID de l'emplacement.
namestringfacultatif
Nom de l'emplacement.
citystringfacultatif
Ville de l'emplacement.
publishersnumberfacultatif
Emplacements publisher pour cet emplacement.
syncednumberfacultatif
Parmi eux, actuellement synchronisés.
connectionIssuesnumberfacultatif
Lignes de connecteurs natifs avec un problème de connexion.
duplicatesnumberfacultatif
Fiches en double détectées pour cet emplacement.
reviewsnumberfacultatif
Total des avis pour cet emplacement.
unrepliednumberfacultatif
Avis en attente de réponse.
avgRatingnumberfacultatif
Note moyenne de cet emplacement.
googleVerifiedbooleanfacultatif
La fiche Google est connectée et vérifiée.
googleConnectedbooleanfacultatif
Google est connecté (la vérification peut être encore en attente).
tagsarray of stringfacultatif
Tags internes de cet emplacement.
insightsobjectfacultatif
Insights dérivés calculés à partir des lignes ci-dessus.
healthnumberfacultatif
publishersSynced / publishersTotal, en pourcentage.
distributionobjectfacultatif
Emplacements répartis par taux de synchronisation (fullySynced 100 %, healthy 90-99 %, atRisk <90 %).
fullySyncednumberfacultatif
Emplacements à 100 % de synchronisation.
healthynumberfacultatif
Emplacements à 90-99 % de synchronisation.
atRisknumberfacultatif
Emplacements en dessous de 90 % de synchronisation.
weakestarray of objectfacultatif
Publishers ayant la plus faible couverture dans le périmètre.
idstringfacultatif
ID du publisher.
namestringfacultatif
Nom du publisher.
totalnumberfacultatif
Emplacements portant ce publisher.
syncednumberfacultatif
Parmi eux, synchronisés.
requiresActionnumberfacultatif
Parmi eux, nécessitant une action.
notConnectednumberfacultatif
Parmi eux, non connectés.
pctnumberfacultatif
Pourcentage synchronisé, arrondi.
directoriesarray of objectfacultatif
Tableau complet de couverture par publisher.
idstringfacultatif
ID du publisher.
namestringfacultatif
Nom du publisher.
totalnumberfacultatif
Emplacements portant ce publisher.
syncednumberfacultatif
Parmi eux, synchronisés.
requiresActionnumberfacultatif
Parmi eux, nécessitant une action.
notConnectednumberfacultatif
Parmi eux, non connectés.
pctnumberfacultatif
Pourcentage synchronisé, arrondi.
attentionarray of objectfacultatif
Cartes « à traiter » classées.
nnumberfacultatif
Nombre représenté par cette carte.
titlestringfacultatif
Titre de la carte.
substringfacultatif
Sous-titre de la carte.
tonestring (amber | blue | rose | zinc)facultatif
Ton visuel de cette carte.
filterstring (issues | duplicates | under80 | unverified | notconnected)facultatif
Clé de filtre correspondante dans le tableau des emplacements.
headlinestringfacultatif
Un titre déterministe d'une ligne sur l'état du périmètre.
fixFirstarray of objectfacultatif
Corrections prioritaires classées.
textstringfacultatif
Description de la correction.
impactstring (High | Med | Low)facultatif
Impact estimé de cette correction.
filterstring (issues | duplicates | under80 | unverified | notconnected)facultatif
Clé de filtre correspondante dans le tableau des emplacements.
totalnumberfacultatif
Total des emplacements correspondants (pour la pagination), indépendant de perPage.
pagenumberfacultatif
Page actuelle (base 1).
perPagenumberfacultatif
Lignes par page.
Erreurs
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
get/api/v1/listings/summary
Votre clé API
clientId
tags
page
perPage
{
"data": {
"summary": {
"locations": 12,
"publishersTotal": 96,
"publishersSynced": 81,
"connectionIssues": 3,
"duplicates": 2,
"reviews": 340,
"avgRating": 4.6
},
"rows": [
{
"locationId": "loc_456",
"name": "Acme Dental — Downtown",
"city": "Austin",
"publishers": 8,
"synced": 7,
"connectionIssues": 0,
"duplicates": 0,
"reviews": 26,
"unreplied": 2,
"avgRating": 4.8,
"googleVerified": true,
"googleConnected": true,
"facebookConnected": true,
"tags": [
"vip"
]
}
],
"insights": {
"health": 84,
"distribution": {
"fullySynced": 9,
"healthy": 2,
"atRisk": 1
},
"weakest": [
{
"locationId": "loc_789",
"name": "Acme Dental — Eastside",
"health": 40
}
],
"directories": [
{
"id": "google",
"name": "Google Maps",
"total": 12,
"synced": 11,
"requiresAction": 0,
"notConnected": 1,
"pct": 92
}
],
"attention": [
{
"n": 1,
"title": "1 location under 90% synced",
"sub": "Listings not fully propagated",
"tone": "amber",
"filter": "under80"
}
],
"headline": "84% listing health — 1 location under 90% synced needs attention.",
"fixFirst": [
{
"text": "Reconnect 1 location's listing sync.",
"impact": "Med"
}
]
},
"total": 12,
"page": 1,
"perPage": 50
}
}get/api/v1/seo/share-of-voice
Votre clé API
locationId *
clientId
from
to
{
"data": {
"comparison": {
"available": true,
"rows": [
{
"name": "Acme Dental — Downtown",
"top3Pct": 62,
"isYou": true
},
{
"name": "Bright Smiles Dental",
"top3Pct": 74
}
]
},
"keywords": {
"available": true,
"rows": [
{
"keyword": "dentist near me",
"top3Pct": 62,
"avgRank": 3.2
}
]
},
"performance": {
"available": true,
"series": [
{
"keyword": "dentist near me",
"points": [
{
"yearMonth": "2026-01",
"avgRank": 3.6
},
{
"yearMonth": "2026-02",
"avgRank": 3.2
}
]
}
]
}
}
}v1Ressources/Fiches publiées/getObtenir l'Indice de Citations
Combien d'annuaires indexent cet emplacement, actuellement face à une période antérieure.
Obtenir l'Indice de Citations
get
seo:read/api/v1/seo/citation-indexParamètres de requête
locationIdstringobligatoire
L'emplacement à consulter. Retrouvez-le avec GET /api/v1/locations.
clientIdstringfacultatif
Le client de l'emplacement. Nécessaire uniquement pour lever une ambiguïté lorsque votre clé est limitée à des clients spécifiques.
fromstringfacultatif
Début de la fenêtre (date ISO). Par défaut, il y a 30 jours.
tostringfacultatif
Fin de la fenêtre (date ISO). Par défaut, maintenant.
Réponse
dataobjectfacultatif
availablebooleanfacultatif
Si un instantané de l'indice de citations existe déjà pour cet emplacement.
currentobjectfacultatif
Le dernier instantané à la fin de la fenêtre ou avant.
percentagenumberfacultatif
Pourcentage de fiches actuellement indexées (0–100), ou null.
listingsnumberfacultatif
Nombre total de fiches actives comptabilisées dans cet instantané, ou null.
indexednumberfacultatif
Parmi elles, combien sont indexées, ou null.
previousobjectfacultatif
Le dernier instantané au début de la fenêtre ou avant, pour comparaison.
percentagenumberfacultatif
Pourcentage de fiches actuellement indexées (0–100), ou null.
listingsnumberfacultatif
Nombre total de fiches actives comptabilisées dans cet instantané, ou null.
indexednumberfacultatif
Parmi elles, combien sont indexées, ou null.
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
get/api/v1/seo/citation-index
Votre clé API
locationId *
clientId
from
to
{
"data": {
"available": true,
"current": {
"percentage": 90.48,
"listings": 42,
"indexed": 38
},
"previous": {
"percentage": 83.33,
"listings": 42,
"indexed": 35
}
}
}