Documentation développeurs

Vos données CX, dans votre code et vos agents.

Trois portes d’entrée vers les mêmes données vérifiées : le serveur MCP pour les agents IA, la CLI pour le terminal, l’API REST pour vos services.

Vue d’ensemble

JABB expose les évaluations vérifiées par le Golden Proof Protocol, les scores par point de vente et les tendances de vos sites. Chaque accès respecte les droits de l’utilisateur ou de la clé qui l’appelle.

Serveur MCP

Pour Claude, ChatGPT, Gemini, Cursor et tout agent compatible MCP.

https://mcp.jabb.cx/mcp
CLI

Pour explorer et automatiser depuis le terminal.

pip install jabb-cli
API REST

Pour vos services, vos pipelines et votre BI.

https://api.jabb.cx/v1

Démarrage rapide

  1. 1
    Obtenez un accès

    Demandez un accès développeur : vous recevez une clé JABB_API_KEY liée à votre espace entreprise.

  2. 2
    Choisissez votre porte d’entrée

    MCP pour vos agents IA, CLI pour le terminal, REST pour vos services.

  3. 3
    Faites votre premier appel

    Listez les dernières évaluations vérifiées de vos points de vente.

curl "https://api.jabb.cx/v1/evaluations?limit=5" \
  -H "Authorization: Bearer $JABB_API_KEY"

Authentification

Le serveur MCP utilise OAuth 2.1. Votre agent découvre automatiquement le serveur d’autorisation via le document de ressource protégée, puis vous demande de vous connecter et d’approuver l’accès.

Document de découverte OAuth (réponse réelle)
GET https://mcp.jabb.cx/.well-known/oauth-protected-resource

{
  "resource": "https://mcp.jabb.cx",
  "authorization_servers": ["https://mcp.jabb.cx"],
  "scopes_supported": ["jabb:read", "jabb:write"],
  "bearer_methods_supported": ["header"]
}

La CLI et l’API REST utilisent une clé d’API transmise dans l’en-tête Authorization, au format Bearer.

En-tête d’authentification
Authorization: Bearer $JABB_API_KEY
Une clé d’API donne accès aux données de votre entreprise : gardez-la côté serveur, jamais dans une application mobile ou du code front-end.

Scopes

Les autorisations sont découpées en deux scopes. Demandez uniquement ce dont votre intégration a besoin.

ScopeAccès
jabb:readLire les évaluations, les scores par point de vente et les tendances.
jabb:writeDéclencher des actions qui modifient des données dans votre espace, selon vos droits.

Serveur MCP

Le serveur MCP de JABB expose une vingtaine d’outils couvrant les évaluations, les scores et les tendances, par exemple jabb_list_evaluations. Le catalogue complet est renvoyé par la méthode tools/list une fois l’agent authentifié.

MCPhttps://mcp.jabb.cx/mcpPoint d’accès (Streamable HTTP)

Connecter votre agent

# Claude Desktop / claude.ai → Settings → Connectors → Add custom connector
Name:  JABB
URL:   https://mcp.jabb.cx/mcp
# Then sign in with your JABB account and approve access (OAuth 2.1).

Exemples de questions

  • « Quels points de vente ont la note la plus basse cette semaine, et pourquoi ? »
  • « Résume les avis négatifs sur l’attente à Casablanca depuis lundi. »
  • « Compare le score de propreté de mes trois sites de Rabat sur le dernier mois. »

CLI

La CLI jabb-cli s’installe avec pip. Elle utilise le même compte que votre espace entreprise et renvoie des résultats lisibles ou en JSON pour vos scripts.

pip install jabb-cli

API REST

L’API REST est versionnée dans l’URL. Les échanges se font en JSON encodé en UTF-8, et les dates suivent le format ISO 8601.

URL de basehttps://api.jabb.cx/v1
FormatJSON · UTF-8
AuthentificationAuthorization: Bearer <JABB_API_KEY>
DatesISO 8601 (UTC)

Évaluations

GET/v1/evaluations

Renvoie les évaluations vérifiées (GPS, horodatage scellé, preuves photo et score qualité IA) de vos points de vente, des plus récentes aux plus anciennes.

Paramètres

limitintegerNombre d’évaluations à renvoyer.

Les filtres complémentaires (point de vente, période, canal) sont décrits dans la référence complète remise avec votre clé.

curl "https://api.jabb.cx/v1/evaluations?limit=5" \
  -H "Authorization: Bearer $JABB_API_KEY"

Exemple de réponse

{
  "data": [
    {
      "id": "ev_…",
      "location": { "id": "loc_…", "name": "Casablanca · Anfa" },
      "channel": "location",
      "rating": 4,
      "text": "La file a avancé vite, mais les tables en terrasse n’ont jamais été débarrassées.",
      "language": "fr",
      "verified": { "gps": true, "timestamp": "2026-10-07T18:42:10Z", "photo": true },
      "quality_score": 92,
      "sentiment": "mixed",
      "themes": ["attente", "propreté"]
    }
  ]
}

Exemple illustratif et abrégé : la liste exacte des champs figure dans la référence complète.

Erreurs

Les erreurs suivent le format OAuth : un code d’erreur et une description lisible. En cas d’accès sans jeton, le serveur répond par exemple :

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="jabb-mcp"
Content-Type: application/json

{ "error": "unauthorized", "error_description": "Bearer token required" }
StatutSignification
400Requête invalide : paramètre manquant ou mal formé.
401Jeton absent, expiré ou invalide.
403Le jeton n’a pas le scope ou les droits nécessaires.
404Ressource introuvable.
429Trop de requêtes : réessayez après le délai indiqué.
500Erreur côté JABB : réessayez plus tard.

Limites de débit

Les requêtes sont limitées par clé pour garantir la stabilité du service. Lorsque la limite est atteinte, l’API répond 429 avec un en-tête Retry-After : attendez le délai indiqué puis réessayez, idéalement avec un délai exponentiel.

Bonnes pratiques

  • Gardez les clés côté serveur et stockez-les dans un gestionnaire de secrets.
  • Demandez le scope le plus restreint possible : jabb:read suffit pour lire.
  • Faites tourner vos clés régulièrement et révoquez celles qui ne servent plus.
  • Mettez en cache les résultats qui changent peu, comme les scores hebdomadaires.
  • Gérez les erreurs 429 et 5xx avec des nouvelles tentatives espacées.

Support

Une question sur l’API, le serveur MCP ou la CLI ? Écrivez à salim@jabb.cx avec le nom de votre entreprise et votre cas d’usage.

Obtenir un accès développeur

Dites-nous ce que vous voulez construire. Nous vous envoyons une clé de test et la référence complète de l’API.