L'API Diamy vous permet d'intégrer nos fonctionnalités de téléphonie WebRTC dans vos applications et services. Cette documentation vous guidera à travers les différentes ressources et méthodes disponibles.
Notre API REST vous permet d'accéder à toutes les fonctionnalités de Diamy de manière programmatique.
Les webhooks vous permettent de recevoir des notifications en temps réel lorsque des événements se produisent dans votre système Diamy.
L'API Diamy utilise OAuth 2.0 pour l'authentification. Vous devez obtenir un jeton d'accès avant de pouvoir effectuer des requêtes.
curl -X POST "https://api.diamy.fr/v2/oauth/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600, "scope": "calls:read calls:write contacts:read" }
Incluez le jeton d'accès dans l'en-tête Authorization
de vos requêtes API :
curl -X GET "https://api.diamy.fr/v2/calls/recent" \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Gérez les appels entrants et sortants, consultez l'historique et les statistiques.
Accédez et gérez votre annuaire de contacts et groupes.
Gérez les messages vocaux, les annonces et les paramètres.
Gérez les utilisateurs, les permissions et les préférences.
Voici un exemple complet d'utilisation de l'API pour récupérer la liste des appels récents :
// Fonction pour obtenir un jeton d'accès const getAccessToken = async () => { const params = new URLSearchParams(); params.append('grant_type', 'client_credentials'); params.append('client_id', 'YOUR_CLIENT_ID'); params.append('client_secret', 'YOUR_CLIENT_SECRET'); const response = await fetch('https://api.diamy.fr/v2/oauth/token', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: params }); const data = await response.json(); return data.access_token; }; // Fonction pour récupérer les appels récents const getRecentCalls = async () => { try { // Obtenir le jeton d'accès const accessToken = await getAccessToken(); // Faire la requête pour récupérer les appels récents const response = await fetch('https://api.diamy.fr/v2/calls/recent?limit=10', { method: 'GET', headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' } }); const data = await response.json(); if (data.status === 'success') { // Traiter les données des appels console.log('Appels récents:', data.data.calls); // Exemple : Afficher la durée totale des appels const totalDuration = data.data.calls.reduce((total, call) => total + call.duration, 0); console.log(`Durée totale des appels: ${totalDuration} secondes`); return data.data.calls; } else { console.error('Erreur:', data.message); } } catch (error) { console.error('Erreur lors de la récupération des appels:', error); } }; // Exécuter la fonction getRecentCalls();
L'API Diamy utilise les codes de statut HTTP standard pour indiquer le succès ou l'échec d'une requête. En cas d'erreur, la réponse inclut un message descriptif et un code d'erreur.
Code HTTP | Description | Exemple |
---|---|---|
200 OK | La requête a réussi | { "status": "success", "data": { ... } } |
400 Bad Request | La requête est mal formée ou contient des paramètres invalides | { "status": "error", "code": "invalid_parameter", "message": "Le paramètre 'limit' doit être un nombre" } |
401 Unauthorized | Authentification requise ou invalide | { "status": "error", "code": "unauthorized", "message": "Jeton d'accès invalide ou expiré" } |
403 Forbidden | Accès refusé à la ressource demandée | { "status": "error", "code": "forbidden", "message": "Vous n'avez pas les permissions nécessaires" } |
404 Not Found | La ressource demandée n'existe pas | { "status": "error", "code": "not_found", "message": "Contact introuvable" } |
429 Too Many Requests | Limite de taux dépassée | { "status": "error", "code": "rate_limit_exceeded", "message": "Limite de taux dépassée. Réessayez dans 60 secondes" } |
500 Internal Server Error | Erreur interne du serveur | { "status": "error", "code": "server_error", "message": "Une erreur interne s'est produite" } |
Pour garantir la stabilité et la disponibilité de notre API, nous appliquons des limites de taux. Ces limites varient en fonction de votre plan d'abonnement.
Plan | Limite de requêtes | Période |
---|---|---|
Starter | 100 requêtes | Par minute |
Pro | 500 requêtes | Par minute |
Enterprise | 2000 requêtes | Par minute |
Si vous dépassez ces limites, vous recevrez une réponse avec le code d'état HTTP 429 (Too Many Requests). L'en-tête Retry-After
indiquera le nombre de secondes à attendre avant de réessayer.
fields
Nous proposons des SDK officiels pour faciliter l'intégration de l'API Diamy dans vos applications.
Accélérez votre développement avec nos outils et ressources.
Besoin d'aide avec l'API ? Nous sommes là pour vous.