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.
Concepts clés
L'API v2 utilise l'architecture hiérarchique Sphère / Bulle de GMB Club.
| Concept | Description | Exemple |
|---|---|---|
| Sphère | Marque / Entreprise / Franchiseur | "Auto Sud" |
| Bulle | Établissement / Point de vente | "Auto Sud Marseille" |
| Ressources | Comptes connectés à la bulle | Facebook, Instagram, GMB |
Important
Authentification
L'API utilise des clés API pour l'authentification. Chaque clé est liée à une Bulle spécifique.
Obtenir une clé API
- Connectez-vous à GMB Club
- Sélectionnez votre Bulle dans le header
- Allez dans Paramètres
- Section Clés API → Nouvelle clé
- Configurez les permissions et copiez la clé
Important
Format de la clé
gmb_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxUtilisation
curl -H "X-API-Key: gmb_live_xxxx..." \
-H "Content-Type: application/json" \
https://gmb-club.avismaestrogmb.com/api/v2/meJSON uniquement
Base URL
https://gmb-club.avismaestrogmb.com/api/v2Endpoints
/api/v2/healthVérifie que l'API est opérationnelle. Ne nécessite pas d'authentification.
{
"status": "ok",
"api_version": "2.0",
"timestamp": "2025-11-29T18:00:00.000000"
}Identité de la clé
/api/v2/meAuthreadRetourne les informations sur la clé API, la bulle, la sphère et les ressources connectées. Endpoint à appeler en premier.
{
"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
/api/v2/connectionsAuthreadRetourne les détails des réseaux sociaux connectés pour cette bulle.
[
{ "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
/api/v2/platforms/limitsAuthreadRetourne les limites de caractères et médias pour chaque plateforme.
{
"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
/api/v2/postsAuthscheduleCrée un nouveau post planifié ou le publie immédiatement.
Erreurs fréquentes
Body (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
| Champ | Type | Requis | Description |
|---|---|---|---|
content | string | Oui | Texte du post (1-5000 car.) |
platforms | array | Oui | Tableau : facebook, instagram, gmb, linkedin, pinterest |
image_url | string | Non | URL d'une image unique |
image_urls | array | Non | Tableau JSON d'URLs pour carrousel (2-10) |
video_url | string | Non | URL d'une vidéo |
scheduled_at | string | Non | Date/heure ISO 8601 (défaut: +1h) |
gmb_fiche_id | string | Non | ID de la fiche GMB (voir /me) |
publish_now | boolean | Non | Si true, publie immédiatement |
Liste des posts
/api/v2/postsAuthreadRetourne les posts de la bulle avec pagination.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
status | string | - | pending, published, error |
limit | integer | 50 | 1-100 |
offset | integer | 0 | Offset pour pagination |
/api/v2/posts/{post_id}AuthscheduleMet à jour un post en attente (status: pending uniquement).
{
"content": "Updated text!",
"scheduled_at": "2025-12-02T14:00:00+01:00"
}/api/v2/posts/{post_id}AuthdeleteSupprime un post en attente ou en erreur.
{ "status": "deleted", "post_id": 42 }/api/v2/posts/{post_id}/publishAuthpublishForce la publication immédiate d'un post planifié.
Liste des articles
/api/v2/articlesAuthreadRetourne les articles générés pour cette bulle. Idéal pour intégrer sur un site custom.
Site sans WordPress
{
"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
}/api/v2/articles/{article_id}AuthreadRécupère le contenu complet d'un article par son ID.
Permissions
Chaque clé API possède des permissions configurables :
readLire les posts, articles, connexions et informations
scheduleCréer et modifier des posts planifiés
publishPublier immédiatement
deleteSupprimer des posts
Rate Limiting
Chaque clé API a des limites de requêtes configurables :
| Limite | Valeur par défaut |
|---|---|
| Par minute | 60 |
| Par jour | 1000 |
Codes d'erreur
| Code | Description |
|---|---|
200 | Succès |
201 | Ressource créée |
400 | Requête invalide (vérifiez Content-Type et format JSON) |
401 | Clé API manquante ou invalide |
403 | Permission insuffisante |
404 | Ressource non trouvée |
422 | Données invalides |
429 | Rate limit dépassé |
500 | Erreur serveur |
Exemples de code
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
Configuration Zapier
Utilisez l'action Webhooks by Zapier → Custom Request.
Sécurité
| Mesure | Description |
|---|---|
| Clés hashées | Stockées en SHA256, jamais en clair |
| HTTPS obligatoire | Toutes les requêtes doivent utiliser HTTPS |
| Isolation par bulle | Chaque clé n'accède qu'aux données de sa bulle |
| Expiration optionnelle | Les clés peuvent avoir une date d'expiration |
| Révocation | Les clés peuvent être révoquées à tout moment |
| Rate limiting | Protection contre les abus via Redis |
