Documentation API
Version 1.0
L’API GMB Club permet de publier et planifier des posts sur vos reseaux sociaux via des integrations externes comme Zapier, Make, ou vos propres scripts.
https://gmb-club.avismaestrogmb.com/api/v1Authentification
L’API utilise des cles API pour l’authentification. Chaque cle est liee a une fiche GMB specifique.
Obtenir une cle API
- Connectez-vous a GMB Club
- Allez dans Parametres
- Section Cles API puis Nouvelle cle
- Configurez les permissions et copiez la cle
Important : La cle complete n’est affichee qu’une seule fois lors de la creation. Conservez-la dans un endroit securise.
Format de la cle
gmb_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxLes cles commencent par gmb_live_ suivi de 64 caracteres hexadecimaux.
Utilisation
Incluez la cle dans le header X-API-Key de chaque requete :
curl -H "X-API-Key: gmb_live_xxxx..." https://gmb-club.avismaestrogmb.com/api/v1/infoEndpoints
/api/v1/health
Verifie que l’API est operationnelle. Ne necessite pas d’authentification.
Reponse :
{
"status": "ok",
"api_version": "1.0",
"timestamp": "2025-11-29T18:00:00.000000"
}/api/v1/info
Retourne les informations sur la cle API utilisee et les plateformes connectees.
Reponse :
{
"api_version": "1.0",
"fiche_id": "accounts/123456/locations/789012",
"permissions": ["read", "schedule", "publish"],
"rate_limit_per_minute": 60,
"rate_limit_per_day": 1000,
"connected_platforms": ["facebook", "instagram", "gmb", "linkedin"]
}/api/v1/connections
Retourne les reseaux sociaux connectes pour cette fiche.
Reponse :
[
{
"platform": "facebook",
"connected": true,
"page_name": "Ma Page Facebook",
"username": null,
"expires_at": "2025-12-15T10:00:00"
},
{
"platform": "instagram",
"connected": true,
"page_name": null,
"username": "mon_compte_insta",
"expires_at": "2025-12-15T10:00:00"
}
]/api/v1/posts
Cree un nouveau post planifie ou le publie immediatement.
Headers :
X-API-Key: gmb_live_xxxx...
Content-Type: application/jsonBody :
{
"content": "Decouvrez nos nouveautes !",
"platforms": ["facebook", "instagram", "gmb"],
"image_url": "https://exemple.com/image.jpg",
"scheduled_at": "2025-12-01T10:00:00"
}Parametres :
| Champ | Type | Requis | Description |
|---|---|---|---|
content | string | Oui | Texte du post (1-5000 caracteres) |
platforms | array | Oui | Plateformes : facebook, instagram, gmb, linkedin, pinterest |
image_url | string | Non | URL d’une image |
image_urls | array | Non | URLs pour un carrousel (2-10 images) |
video_url | string | Non | URL d’une video |
scheduled_at | string | Non | Date/heure ISO 8601 pour toutes les plateformes |
scheduled_facebook | string | Non | Date/heure specifique pour Facebook |
scheduled_instagram | string | Non | Date/heure specifique pour Instagram |
scheduled_gmb | string | Non | Date/heure specifique pour Google Business |
scheduled_linkedin | string | Non | Date/heure specifique pour LinkedIn |
scheduled_pinterest | string | Non | Date/heure specifique pour Pinterest |
publish_now | boolean | Non | Si true, publie immediatement (defaut: false) |
Reponse (201 Created) :
{
"id": 42,
"content": "Decouvrez nos nouveautes !",
"platforms": ["facebook", "instagram", "gmb"],
"status": "pending",
"image_url": "https://exemple.com/image.jpg",
"scheduled_facebook": "2025-12-01T10:00:00",
"scheduled_instagram": "2025-12-01T10:00:00",
"scheduled_gmb": "2025-12-01T10:00:00",
"created_at": "2025-11-29T18:00:00.000000"
}/api/v1/posts
Retourne les posts de la fiche.
Parametres query :
| Parametre | Type | Description |
|---|---|---|
status | string | Filtrer par statut : pending, published, error |
limit | integer | Nombre max de resultats (1-100, defaut: 50) |
offset | integer | Offset pour pagination (defaut: 0) |
Exemple :
curl -H "X-API-Key: gmb_live_xxxx..." \
"https://gmb-club.avismaestrogmb.com/api/v1/posts?status=pending&limit=10"/api/v1/posts/{post_id}
Recupere les details d’un post specifique.
/api/v1/posts/{post_id}
Met a jour un post en attente. Seuls les posts avec status: pending peuvent etre modifies.
{
"content": "Nouveau texte du post",
"scheduled_at": "2025-12-02T14:00:00"
}/api/v1/posts/{post_id}
Supprime un post en attente ou en erreur.
{
"status": "deleted",
"post_id": 42
}/api/v1/posts/{post_id}/publish
Force la publication immediate d’un post planifie.
{
"status": "scheduled_for_immediate_publish",
"post_id": 42,
"scheduled_at": "2025-11-29T18:01:00.000000"
}Permissions
Chaque cle API possede des permissions specifiques configurables lors de la creation :
| Permission | Description |
|---|---|
read | Lire les posts et connexions |
schedule | Creer et modifier des posts planifies |
publish | Publier immediatement |
delete | Supprimer des posts |
Si une permission est manquante, l’API retourne une erreur 403 :
{
"detail": "Permission 'publish' requise pour cette action"
}Rate Limiting
Chaque cle API a des limites de requetes :
| Limite | Valeur par defaut |
|---|---|
| Par minute | 60 requetes |
| Par jour | 1000 requetes |
Les headers de reponse indiquent l’etat du rate limiting :
X-RateLimit-Limit-Minute: 60
X-RateLimit-Remaining-Minute: 58
X-RateLimit-Reset-Minute: 2025-11-29T18:01:00
X-RateLimit-Limit-Day: 1000
X-RateLimit-Remaining-Day: 995
X-RateLimit-Reset-Day: 2025-11-29T23:59:59En cas de depassement, l’API retourne une erreur 429 :
{
"detail": "Limite de requetes depassee"
}Codes d’erreur
| Code | Description |
|---|---|
200 | Succes |
201 | Ressource creee |
400 | Requete invalide (parametres manquants ou incorrects) |
401 | Cle API manquante ou invalide |
403 | Permission insuffisante |
404 | Ressource non trouvee |
429 | Rate limit depasse |
500 | Erreur serveur |
Exemples d’integration
cURL
curl -X POST https://gmb-club.avismaestrogmb.com/api/v1/posts \
-H "X-API-Key: gmb_live_xxxx..." \
-H "Content-Type: application/json" \
-d '{
"content": "Nouveau post depuis l API !",
"platforms": ["facebook", "gmb"],
"scheduled_at": "2025-12-01T10:00:00"
}'Python
import requests
API_KEY = "gmb_live_xxxx..."
BASE_URL = "https://gmb-club.avismaestrogmb.com/api/v1"
headers = {
"X-API-Key": API_KEY,
"Content-Type": "application/json"
}
response = requests.post(
f"{BASE_URL}/posts",
headers=headers,
json={
"content": "Post depuis Python !",
"platforms": ["facebook", "instagram"],
"scheduled_at": "2025-12-01T10:00:00"
}
)
print(response.json())JavaScript / Node.js
const API_KEY = "gmb_live_xxxx...";
const BASE_URL = "https://gmb-club.avismaestrogmb.com/api/v1";
const response = await fetch(`${BASE_URL}/posts`, {
method: "POST",
headers: {
"X-API-Key": API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
content: "Post depuis JavaScript !",
platforms: ["facebook", "gmb"],
scheduled_at: "2025-12-01T10:00:00"
})
});
const data = await response.json();
console.log(data);Zapier / Make
Utilisez le module HTTP / Webhook avec les parametres suivants :
| Methode | POST |
| URL | https://gmb-club.avismaestrogmb.com/api/v1/posts |
| Headers | X-API-Key: votre_cle Content-Type: application/json |
Body (JSON) :
{
"content": "{{contenu_du_post}}",
"platforms": ["facebook"],
"scheduled_at": "{{date_planification}}"
}Securite
- Cles hashees : Les cles sont stockees sous forme de hash SHA256, jamais en clair
- HTTPS obligatoire : Toutes les requetes doivent utiliser HTTPS
- Isolation par fiche : Chaque cle n’a acces qu’aux donnees de sa fiche
- Expiration optionnelle : Les cles peuvent avoir une date d’expiration
- Revocation : Les cles peuvent etre revoquees a tout moment dans les parametres