AvisMaestro GMB

Développeurs

Documentation API

L'API GMB Club permet de publier et planifier des posts sur vos réseaux sociaux via Zapier, Make, ou vos propres scripts. Elle permet aussi de récupérer les articles générés.

HTTPSJSON APIRESTfulRate Limited

Concepts clés

L'API v2 utilise l'architecture hiérarchique Sphère / Bulle de GMB Club.

ConceptDescriptionExemple
SphèreMarque / Entreprise / Franchiseur"Auto Sud"
BulleÉtablissement / Point de vente"Auto Sud Marseille"
RessourcesComptes connectés à la bulleFacebook, Instagram, GMB
💡

Important

Chaque clé API est liée à une Bulle spécifique et hérite automatiquement de sa Sphère parente.

Authentification

L'API utilise des clés API pour l'authentification. Chaque clé est liée à une Bulle spécifique.

Obtenir une clé API

  1. Connectez-vous à GMB Club
  2. Sélectionnez votre Bulle dans le header
  3. Allez dans Paramètres
  4. Section Clés API → Nouvelle clé
  5. Configurez les permissions et copiez la clé
⚠️

Important

La clé complète n'est affichée qu'une seule fois lors de la création. Conservez-la en lieu sûr.

Format de la clé

text
gmb_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Utilisation

cURL
curl -H "X-API-Key: gmb_live_xxxx..." \
     -H "Content-Type: application/json" \
  https://gmb-club.avismaestrogmb.com/api/v2/me
🚫

JSON uniquement

L'API accepte exclusivement du JSON. Le header Content-Type: application/json est obligatoire pour toutes les requêtes POST/PUT.

Base URL

text
https://gmb-club.avismaestrogmb.com/api/v2

Endpoints

GET/api/v2/health

Vérifie que l'API est opérationnelle. Ne nécessite pas d'authentification.

JSON
{
  "status": "ok",
  "api_version": "2.0",
  "timestamp": "2025-11-29T18:00:00.000000"
}

Identité de la clé

GET/api/v2/meAuthread

Retourne les informations sur la clé API, la bulle, la sphère et les ressources connectées. Endpoint à appeler en premier.

JSON
{
  "api_version": "2.0",
  "bulle": { "id": "abc-123", "name": "Auto Sud Marseille", "city": "Marseille" },
  "sphere": { "id": "xyz-789", "name": "Auto Sud", "slug": "auto-sud" },
  "permissions": ["read", "schedule", "publish"],
  "rate_limits": { "per_minute": 60, "per_day": 1000 },
  "connected_platforms": ["facebook", "instagram", "gmb", "linkedin"],
  "gmb_fiches": [{ "id": "gmb-fiche-123", "name": "Auto Sud - Marseille Centre" }]
}

Connexions sociales

GET/api/v2/connectionsAuthread

Retourne les détails des réseaux sociaux connectés pour cette bulle.

JSON
[
  { "platform": "facebook", "connected": true, "page_name": "Auto Sud Marseille", "expires_at": "2025-12-15T10:00:00" },
  { "platform": "instagram", "connected": true, "username": "autosud_marseille", "expires_at": "2025-12-15T10:00:00" }
]

Limites des plateformes

GET/api/v2/platforms/limitsAuthread

Retourne les limites de caractères et médias pour chaque plateforme.

JSON
{
  "facebook": { "max_characters": 63206, "max_images": 10, "supports_carousel": true },
  "instagram": { "max_characters": 2200, "max_hashtags": 30, "max_images": 10 },
  "gmb": { "max_characters": 1500, "max_images": 1 },
  "linkedin": { "max_characters": 3000, "max_images": 20, "supports_pdf": true }
}

Créer un post

POST/api/v2/postsAuthschedule

Crée un nouveau post planifié ou le publie immédiatement.

🚫

Erreurs fréquentes

Content-Type doit être application/json. Plateformes en minuscules. image_urls = vrai tableau JSON.

Body (JSON)

JSON
{
  "content": "Discover our new arrivals! 🚗 #automobile",
  "platforms": ["facebook", "instagram", "gmb"],
  "image_url": "https://example.com/images/promo.jpg",
  "scheduled_at": "2025-12-01T10:00:00+01:00",
  "gmb_fiche_id": "gmb-fiche-123-456"
}

Paramètres

ChampTypeRequisDescription
contentstringOuiTexte du post (1-5000 car.)
platformsarrayOuiTableau : facebook, instagram, gmb, linkedin, pinterest
image_urlstringNonURL d'une image unique
image_urlsarrayNonTableau JSON d'URLs pour carrousel (2-10)
video_urlstringNonURL d'une vidéo
scheduled_atstringNonDate/heure ISO 8601 (défaut: +1h)
gmb_fiche_idstringNonID de la fiche GMB (voir /me)
publish_nowbooleanNonSi true, publie immédiatement

Liste des posts

GET/api/v2/postsAuthread

Retourne les posts de la bulle avec pagination.

ParamètreTypeDéfautDescription
statusstring-pending, published, error
limitinteger501-100
offsetinteger0Offset pour pagination
PUT/api/v2/posts/{post_id}Authschedule

Met à jour un post en attente (status: pending uniquement).

JSON
{
  "content": "Updated text!",
  "scheduled_at": "2025-12-02T14:00:00+01:00"
}
DEL/api/v2/posts/{post_id}Authdelete

Supprime un post en attente ou en erreur.

JSON
{ "status": "deleted", "post_id": 42 }
POST/api/v2/posts/{post_id}/publishAuthpublish

Force la publication immédiate d'un post planifié.

Liste des articles

GET/api/v2/articlesAuthread

Retourne les articles générés pour cette bulle. Idéal pour intégrer sur un site custom.

💡

Site sans WordPress

Appelez cet endpoint périodiquement pour récupérer les articles et les afficher sur votre site.
JSON
{
  "articles": [{
    "id": 12,
    "title": "5 tips for maintaining your car",
    "excerpt": "Expert tips to extend your vehicle's life.",
    "content_html": "<h2>Introduction</h2><p>Regular maintenance...</p>",
    "featured_image_url": "https://storage.example.com/images/article-12.jpg",
    "meta_title": "5 car maintenance tips | Auto Sud Marseille",
    "meta_description": "Our experts share their best car maintenance tips.",
    "target_keyword": "car maintenance Marseille",
    "status": "published",
    "published_at": "2026-03-10T14:00:00Z"
  }],
  "total": 24, "limit": 10, "offset": 0
}
GET/api/v2/articles/{article_id}Authread

Récupère le contenu complet d'un article par son ID.

Permissions

Chaque clé API possède des permissions configurables :

read

Lire les posts, articles, connexions et informations

schedule

Créer et modifier des posts planifiés

publish

Publier immédiatement

delete

Supprimer des posts

Rate Limiting

Chaque clé API a des limites de requêtes configurables :

LimiteValeur par défaut
Par minute60
Par jour1000

Codes d'erreur

CodeDescription
200Succès
201Ressource créée
400Requête invalide (vérifiez Content-Type et format JSON)
401Clé API manquante ou invalide
403Permission insuffisante
404Ressource non trouvée
422Données invalides
429Rate limit dépassé
500Erreur serveur

Exemples de code

Python
import requests

API_KEY = "gmb_live_xxxx..."
BASE_URL = "https://gmb-club.avismaestrogmb.com/api/v2"
headers = { "X-API-Key": API_KEY, "Content-Type": "application/json" }

# 1. Get key info
me = requests.get(f"{BASE_URL}/me", headers=headers).json()
print(f"Sphere: {me['sphere']['name']}")
print(f"Bubble: {me['bulle']['name']}")

# 2. Create a post
response = requests.post(f"{BASE_URL}/posts", headers=headers, json={
    "content": "Post from Python!",
    "platforms": ["facebook", "instagram"],
    "scheduled_at": "2025-12-01T10:00:00+01:00"
})
print(response.json())

# 3. Get published articles
articles = requests.get(f"{BASE_URL}/articles", headers=headers,
    params={"status": "published", "limit": 10}).json()
for article in articles['articles']:
    print(f"#{article['id']}: {article['title']}")

Zapier / Make

Configuration Make.com

Utilisez le module HTTP → Make a request.

🚫

Paramètre critique

Dans Body type, sélectionnez Raw puis JSON (application/json). Ne laissez pas sur multipart/form-data.

Configuration Zapier

Utilisez l'action Webhooks by Zapier → Custom Request.

Sécurité

MesureDescription
Clés hashéesStockées en SHA256, jamais en clair
HTTPS obligatoireToutes les requêtes doivent utiliser HTTPS
Isolation par bulleChaque clé n'accède qu'aux données de sa bulle
Expiration optionnelleLes clés peuvent avoir une date d'expiration
RévocationLes clés peuvent être révoquées à tout moment
Rate limitingProtection contre les abus via Redis