Développeurs

Intégrez la traduction vocale temps réel dans vos applications

API REST, webhooks, SDK Node.js et Python, exemples complets — tout ce qu'il faut pour intégrer Instant Talk dans vos produits en quelques heures.

01

Démarrage rapide — votre première réunion via l'API

L'API Instant Talk est une API REST standard, authentifiée par clé API. Pour créer votre première réunion : récupérez votre clé API depuis Settings → API Keys dans votre dashboard. Envoyez une requête POST à https://instant-talk.io/api/v1/meetings avec votre clé en header Authorization et les paramètres de la réunion en JSON. Récupérez l'URL de réunion dans la réponse et partagez-la avec vos participants.

Exemple complet en Node.js : const { data } = await fetch('https://instant-talk.io/api/v1/meetings', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ title: 'Réunion commerciale', languages: ['fr', 'en', 'ja'], maxParticipants: 5, scheduledAt: '2025-06-15T14:00:00Z' }) }).then(r => r.json()); — La réponse inclut meetingId, joinUrl et hostUrl.

Le même appel en Python : import requests; response = requests.post('https://instant-talk.io/api/v1/meetings', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={'title': 'Sales call', 'languages': ['fr', 'en'], 'maxParticipants': 3}). L'URL de réunion est dans response.json()['joinUrl'].

02

Authentification et sécurité API

Toutes les requêtes API doivent inclure votre clé API dans le header HTTP Authorization: Bearer YOUR_API_KEY. Les clés API sont générées depuis votre dashboard (Settings → API Keys) et peuvent être scoppées par permission : read (accès en lecture aux réunions et transcriptions), write (création et modification de réunions), admin (gestion des utilisateurs et paramètres d'organisation).

Les clés API peuvent être révoquées à tout moment depuis le dashboard. Nous recommandons de créer des clés distinctes par environnement (développement, staging, production) et par système qui accède à l'API. En cas de compromission, révoquez la clé concernée — les autres clés restent actives.

Pour les webhooks, chaque payload est signé avec HMAC-SHA256 en utilisant votre webhook secret. Vérifiez la signature dans votre endpoint : const expectedSig = crypto.createHmac('sha256', webhookSecret).update(rawBody).digest('hex'); const isValid = req.headers['x-instant-talk-signature'] === expectedSig;

03

Référence API — endpoints principaux

POST /api/v1/meetings — Créer une réunion. Paramètres : title (string, requis), languages (array de codes ISO 639-1, requis), maxParticipants (integer, 1-50), scheduledAt (ISO 8601, optionnel pour réunion immédiate), settings.waitingRoom (boolean), settings.recordingEnabled (boolean). Réponse : meetingId, joinUrl, hostUrl, createdAt.

GET /api/v1/meetings/:id — Récupérer une réunion. Réponse : détails complets incluant status (scheduled|active|ended), participants (liste avec langue sélectionnée), startedAt, endedAt, duration. GET /api/v1/meetings/:id/transcript — Transcription complète au format JSON avec timestamps et attributions par intervenant. GET /api/v1/meetings/:id/summary — Résumé IA structuré avec keyPoints, decisions et actions.

DELETE /api/v1/meetings/:id — Annuler une réunion planifiée. GET /api/v1/meetings — Lister les réunions de l'organisation avec pagination (limit, offset, status filter). POST /api/v1/webhooks — Enregistrer un endpoint webhook. GET /api/v1/usage — Métriques d'utilisation de l'organisation (minutes de réunion, nombre de sessions, langues utilisées).

04

Webhooks — événements disponibles

meeting.started : émis quand la première personne rejoint une réunion. Payload : meetingId, title, startedAt, initiatorId. meeting.ended : émis quand la réunion se termine. Payload : meetingId, endedAt, duration, participantCount, languagesUsed. participant.joined / participant.left : émis à chaque changement de participant. Payload : meetingId, participantId, language, timestamp.

transcription.ready : émis quand la transcription complète est disponible (< 60s après la fin de la réunion). Payload : meetingId, transcriptUrl, wordCount, languagesDetected. summary.ready : émis quand le résumé IA est généré. Payload : meetingId, summaryUrl, keyPointsCount, actionsCount.

Pour enregistrer un endpoint webhook : POST /api/v1/webhooks avec url (votre endpoint HTTPS), events (tableau des événements à recevoir), secret (votre clé de vérification HMAC). Instant Talk retente les webhooks en échec jusqu'à 3 fois avec un délai croissant (30s, 5min, 30min). Un webhook en échec persistant génère une alerte email.

05

SDK officiels

SDK Node.js/TypeScript (npm install @instant-talk/sdk) — API complète avec types TypeScript inclus. import { InstantTalkClient } from '@instant-talk/sdk'; const client = new InstantTalkClient('YOUR_API_KEY'); const meeting = await client.meetings.create({ title: 'Test', languages: ['fr', 'en'] }); console.log(meeting.joinUrl);. Le SDK inclut un helper pour la vérification des signatures webhook : client.webhooks.verify(payload, signature, secret).

SDK Python (pip install instant-talk) — Compatible Python 3.9+. from instant_talk import InstantTalkClient; client = InstantTalkClient('YOUR_API_KEY'); meeting = client.meetings.create(title='Test', languages=['fr', 'en']); print(meeting.join_url). Inclut des types Pydantic pour la validation des réponses API.

Exemples et boilerplates disponibles sur notre dépôt GitHub public (github.com/instant-talk-global/examples) : Next.js App Router avec création de réunions, serveur Express avec gestion des webhooks, fonction AWS Lambda pour le traitement post-meeting, intégration Django, script CLI pour la gestion des réunions en ligne de commande.

06

Codes d'erreur et debugging

Les erreurs API suivent le format standard : { error: { code: 'ERROR_CODE', message: 'Description', details: {} } }. Codes principaux : 400 INVALID_REQUEST (paramètre manquant ou invalide), 401 UNAUTHORIZED (clé API invalide ou expirée), 403 FORBIDDEN (permission insuffisante pour l'action), 404 NOT_FOUND (réunion ou ressource introuvable), 409 CONFLICT (réunion déjà active), 422 UNPROCESSABLE (données valides mais impossible à traiter — ex: langue non supportée), 429 RATE_LIMITED (trop de requêtes), 500 INTERNAL_ERROR.

Rate limiting : 100 requêtes par minute par clé API pour les endpoints de création, 1 000 requêtes par minute pour les endpoints de lecture. Les headers X-RateLimit-Remaining et X-RateLimit-Reset indiquent le quota restant et le timestamp de réinitialisation. Les plans Enterprise bénéficient de limites étendues configurables.

Pour le debugging, activez les logs détaillés avec le header X-Instant-Talk-Debug: true. La réponse inclura un requestId utilisable pour nos équipes support. Tous les appels API sont loggés dans votre dashboard (Settings → API Logs) pendant 30 jours, avec le détail des paramètres, des réponses et des timestamps.

07

Environnements et versioning

L'API est disponible sur un seul environnement production (https://instant-talk.io/api/v1). Pour le développement et les tests, utilisez des réunions avec maxParticipants: 1 et des titres préfixés [TEST] — ces réunions sont identifiables dans vos logs API et ne génèrent pas de rappels email aux participants.

L'API est versionnée : la version courante est v1. Les évolutions non cassantes (nouveaux endpoints, nouveaux champs optionnels en réponse) sont déployées sans changement de version. Les changements cassants (suppression de champs, modification de comportement) déclencheront une version v2 avec une période de coexistence d'au moins 12 mois.

Les dépréciations sont annoncées sur cette page de changelog, par email aux développeurs ayant utilisé l'endpoint concerné, et via un header X-Instant-Talk-Deprecated dans les réponses des endpoints dépréciés. Abonnez-vous à notre newsletter développeurs (developers@instant-talk.io) pour recevoir les annonces en avant-première.

08

Support développeurs

Pour les questions d'intégration, notre équipe technique répond sur developers@instant-talk.io avec un SLA de 48 heures (Business) ou 4 heures (Enterprise). Les tickets incluant un requestId, un extrait de code reproductible et le comportement attendu vs observé sont traités en priorité.

Une communauté Discord de développeurs Instant Talk (discord.gg/instant-talk-dev) permet d'échanger avec d'autres intégrateurs et l'équipe produit. Des sessions office hours sont organisées chaque deux semaines pour les développeurs Enterprise — opportunité de présenter votre cas d'usage et d'obtenir des recommandations d'architecture.

Les contributions sont bienvenues sur notre dépôt GitHub public. Bug reports, suggestions de fonctionnalités et pull requests pour la documentation et les exemples SDK sont acceptés. Consultez CONTRIBUTING.md pour les guidelines. Les contributeurs actifs bénéficient d'un accès anticipé aux nouvelles fonctionnalités API et à un plan Business offert.