API v1 · MCP · Webhooks disponibles

Vos réunions, partout où vous en avez besoin.

L'API Gilbert donne accès en lecture et en écriture à toutes vos données : réunions, participants, transcriptions, synthèses, action items — intégrées à vos outils en quelques minutes, sans développement lourd.

API v1MCPWebhooksOAuth 2.1base_url = https://gilbert-assistant.ovh/api/v1

Quickstart

Premier appel en 30 secondes.

Obtenez une clé API (scope meetings:read) auprès de votre administrateur Gilbert, puis choisissez votre langage.

cURL · terminal.sh
# Lister les 50 dernières réunions terminées
curl -s "https://gilbert-assistant.ovh/api/v1/meetings?status=completed&per_page=50" \
  -H "Authorization: Bearer glbrt_live_XXXXXXXXXXXXXXXXXXXXXXXX"
Python · example.py
import requests

API_KEY = "glbrt_live_XXXXXXXXXXXXXXXXXXXXXXXX"
headers = {"Authorization": f"Bearer {API_KEY}"}

r = requests.get(
    "https://gilbert-assistant.ovh/api/v1/meetings",
    headers=headers,
    params={"status": "completed", "per_page": 50},
)
for m in r.json()["data"]:
    print(m["title"], m.get("transcript_text", "")[:200])
JavaScript / Node · example.mjs
const API_KEY = "glbrt_live_XXXXXXXXXXXXXXXXXXXXXXXX";
const headers = { Authorization: `Bearer ${API_KEY}` };

const res = await fetch(
  "https://gilbert-assistant.ovh/api/v1/meetings?status=completed",
  { headers },
);
const { data } = await res.json();
data.forEach(m => console.log(m.title));
PHP · example.php
$apiKey = "glbrt_live_XXXXXXXXXXXXXXXXXXXXXXXX";
$ch = curl_init("https://gilbert-assistant.ovh/api/v1/meetings");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer {$apiKey}"],
]);
$response = json_decode(curl_exec($ch), true);
foreach ($response["data"] as $m) {
    echo $m["title"] . "\n";
}
Go · main.go
package main

import (
    "encoding/json"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("GET",
        "https://gilbert-assistant.ovh/api/v1/meetings", nil)
    req.Header.Set("Authorization", "Bearer glbrt_live_...")
    res, _ := http.DefaultClient.Do(req)
    var data map[string]interface{}
    json.NewDecoder(res.Body).Decode(&data)
}

Pas de SDK officiel ? Normal. L'API suit strictement OpenAPI 3. Des outils comme Stainless ou openapi-generator génèrent un SDK Python, TypeScript, Go, Java, Swift… en 5 minutes depuis notre spec.

Pas besoin d'être développeur pour commencer. Zapier ou Make connectent Gilbert à Slack, Notion ou votre CRM en glisser-déposer — l'API est là quand vous voulez aller plus loin.

API REST v1

Le cœur de la plateforme.

Une API REST standard, documentée via OpenAPI 3. Authentification par clé API Bearer, réponses JSON, pagination, filtres, rate limiting par tier. Toute l'app Gilbert (web & mobile) utilise cette API.

URL de base

Un seul endpoint racine — toutes les requêtes partent de cette URL :

base_url
https://gilbert-assistant.ovh/api/v1

Authentification

Header Authorization Bearer — chaque requête porte votre clé API :

Authorization
Authorization: Bearer glbrt_live_XXXX

Niveaux d'accès — scopes

Chaque clé API est émise avec un ou plusieurs scopes (permissions). Les endpoints vérifient le scope avant d'accepter la requête — une clé meetings:read ne peut pas supprimer de réunions, même si l'utilisateur est admin.

ScopeCe que ça permetTier requis
meetings:readLire réunions, transcriptions, synthèses. Rechercher.Free+
meetings:writeÉditer titre, description, dossier, noms des locuteurs.Pro+
meetings:uploadUploader un fichier audio pour transcription depuis l'API.Pro+
meetings:deleteSupprimer des réunions.Enterprise
webhooks:manageCréer, modifier, supprimer des webhooks.Free+ (quota par tier)
admin:readLecture des métadonnées de l'organisation (membres, quotas).Enterprise

Endpoints principaux

Liste non exhaustive. Pour la référence complète (paramètres, schémas de réponse, codes d'erreur), consultez la documentation OpenAPI interactive.

Réunions

Gestion des enregistrements et métadonnées.

EndpointDescriptionScope requis
GET /meetingsListe paginée avec filtres (status, date, dossier).meetings:read
GET /meetings/{id}Détail complet d'une réunion.meetings:read
POST /meetings/uploadUpload un fichier audio (mp3/m4a/wav/webm) pour transcription.meetings:upload
PATCH /meetings/{id}Édite titre, description, dossier, tags.meetings:write
PUT /meetings/{id}/speakersRenomme les locuteurs (Speaker 1 → Jean Dupont).meetings:write
DELETE /meetings/{id}Supprime définitivement une réunion.meetings:delete

Contenu

Transcriptions, synthèses, recherche.

EndpointDescriptionScope requis
GET /meetings/{id}/transcriptTranscription texte seule, formatée avec locuteurs préfixés.meetings:read
GET /meetings/{id}/summarySynthèse markdown structurée (décisions, action items, participants).meetings:read
GET /searchRecherche full-text avec snippets highlighted (PostgreSQL FTS).meetings:read

Organisation

Dossiers, partages, membres.

EndpointDescriptionScope requis
GET /foldersListe vos dossiers et ceux partagés avec vous.meetings:read
POST /meetings/{id}/sharePartage une réunion avec un autre membre.meetings:write
GET /organization/membersListe des membres de l'organisation (admin uniquement).admin:read

Webhooks

Notifications temps réel.

EndpointDescriptionScope requis
GET /webhooksListe vos webhooks actifs.webhooks:manage
POST /webhooksCrée un webhook (URL + événements + secret).webhooks:manage
DELETE /webhooks/{id}Supprime un webhook.webhooks:manage

Liste exhaustive et schémas JSON : la documentation OpenAPI liste tous les endpoints, paramètres de requête, exemples de réponse et codes d'erreur. Vous pouvez tester directement depuis le navigateur (bouton « Try it out »).

Webhooks

Le push temps réel.

À l'inverse de l'API REST où vous allez chercher les données, un webhook vous les pousse dès qu'un événement survient. Idéal pour déclencher Slack, Zapier, ou votre SI interne sans polling.

Comment ça marche

Vous fournissez à Gilbert une URL https://votre-app.fr/webhooks/gilbert et choisissez les événements à écouter. Dès qu'un événement survient, Gilbert envoie un POST JSON à votre URL.

  • meeting.completed — transcription prête
  • meeting.failed — erreur de transcription
  • meeting.updated — édition manuelle
  • share.received — réunion partagée avec vous

Sécurité

Chaque POST est signé avec HMAC-SHA256. Le secret est généré à la création du webhook et affiché une seule fois. Vérifiez la signature via le header X-Gilbert-Signature.

  • Retry automatique avec backoff (5s, 30s, 2 min, 10 min)
  • Désactivation après 10 échecs consécutifs
  • Logs des livraisons visibles dans l'admin
Exemple de payload — meeting.completed · POST
{
  "event": "meeting.completed",
  "timestamp": "2026-04-19T14:32:10Z",
  "data": {
    "meeting_id": "mtg_01H...",
    "title": "Point commercial Acme",
    "duration_seconds": 1847,
    "participants_count": 4,
    "transcript_available": true,
    "summary_available": true,
    "url": "https://gilbert-assistant.ovh/meetings/mtg_01H..."
  }
}

Connecteurs IA

Model Context Protocol (MCP).

Au-dessus de l'API REST, Gilbert expose un serveur Model Context Protocol qui rend vos réunions interrogeables en langage naturel depuis Claude, ChatGPT (bientôt), Cursor et Continue. Trois manières de vous y connecter, selon votre client IA.

Utilisateur final

Gilbert Connect

Connecteur OAuth 1-clic pour claude.ai. Aucune clé à gérer, consent UI natif.

Développeur IA

MCP Hosted (HTTP)

Endpoint distant JSON-RPC 2.0 avec clé API Bearer. Claude Desktop, Cursor, Continue.

Installation locale

gilbert-mcp (stdio)

Package npm publié sur le registre MCP. Exécution locale via npx.

Gilbert Connect — OAuth 1-clic

Gilbert Connect

Pour les utilisateurs de claude.ai

OAuth 2.1PKCE S256Dynamic Client Registration

URL du connecteur MCP à coller dans claude.ai :

URL
https://gilbert-assistant.ovh/api/mcp

Claude.ai détecte le flow OAuth via /.well-known/oauth-protected-resource. L'utilisateur se connecte à Gilbert via une fenêtre pop-up, autorise, et c'est fini — aucune clé à copier-coller.

Futurs connecteurs prévus

ChatGPT custom GPT · Cursor native auth · Continue MCP. Même endpoint OAuth pour tous.

  1. claude.ai → Paramètres → Connectors → Add custom connector

  2. Collez l'URL https://gilbert-assistant.ovh/api/mcp

  3. Cliquez Connect. Une fenêtre Gilbert s'ouvre (login + consent).

  4. Autorisez l'accès. Une clé API OAuth MCP apparaît dans votre admin.

  5. Posez vos questions — les tools apparaissent dans la conversation.

MCP Hosted — endpoint HTTP

MCP Hosted

Pour les clients MCP HTTP

HTTP · StreamableAuth : BearerJSON-RPC 2.0

Endpoint :

URL
https://gilbert-assistant.ovh/api/mcp

Envoyez directement vos requêtes JSON-RPC. Aucun process local, pas de Node.

  • → Claude Desktop (config « url »)
  • → Cursor / Continue (HTTP transport)
  • → MCP Inspector (debug officiel)
  • → curl / fetch / httpx
claude_desktop_config.json
{
  "mcpServers": {
    "gilbert": {
      "url": "https://gilbert-assistant.ovh/api/mcp",
      "headers": {
        "Authorization": "Bearer glbrt_live_VOTRE_CLE"
      }
    }
  }
}

gilbert-mcp — package npm local

gilbert-mcp

Installation locale stdio

Le binaire gilbert-mcp est un serveur MCP stdio, pas une CLI. Il est spawné par le client IA (Claude, Cursor) et communique via stdin/stdout en JSON-RPC.

Package npm uniquement. pip install gilbert-mcp ne marche pas. Les devs Python utilisent directement l'API REST v1.

claude_desktop_config.json
{
  "mcpServers": {
    "gilbert": {
      "command": "npx",
      "args": ["-y", "gilbert-mcp"],
      "env": {
        "GILBERT_API_KEY": "glbrt_live_VOTRE_CLE"
      }
    }
  }
}

Les 5 tools exposés

  • → list_meetings · get_meeting · get_transcript
  • → get_summary · search_meetings

Tarifs API

Tiers et quotas.

Chaque clé API est rattachée à un tier qui détermine ses quotas et les fonctionnalités accessibles.

FonctionnalitéFreeProEnterprise
Requêtes / minute3060300
Requêtes / jour1 0005 00050 000
Lecture meetings / transcripts / summaries
Recherche full-text
Connecteurs MCP (Connect / Hosted / Local)
Webhooks1 max5 maxIllimité
Upload audio via API600 min/jour · 500 MB/fichier10 000 min/jour · 2 GB/fichier
Édition (titre, dossier, locuteurs)
Suppression de réunions
SLA & support prioritaire

Prêt à intégrer Gilbert ?

Une question, besoin d'une clé API, ou envie d'explorer une intégration sur mesure — on vous répond.

ready to ship · Gilbert API · v1 · MCP · OAuth 2.1 · gilbert-mcp v1.0.2