API REST de la plateforme
Créez et configurez assistants, prompts, voix TTS/ASR/LLM, bases de connaissances RAG, outils et analytics. Tout ce que vous faites dans le portail, en code.
API REST et webhooks pour que les assistants vocaux AI4CALL appellent, répondent et agissent dans vos systèmes. Spécification OpenAPI, exemples prêts à copier, aucun SDK à installer.
Essai gratuit avec crédit de départ inclus.
/api/v1# Faites appeler un prospect par votre assistant IA
curl -X POST https://client-api.ai4call.com/webhook/outbound_call \
-H "x-client-email: you@company.com" \
-H "x-portal-api-key: $AI4CALL_PORTAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"assistantApiKey": "ast_xxx",
"to": "+39081...",
"from": "+3902...",
"metadata": { "lead_id": "123" }
}'
// Faites appeler un prospect par votre assistant IA
const res = await fetch("https://client-api.ai4call.com/webhook/outbound_call", {
method: "POST",
headers: {
"x-client-email": "you@company.com",
"x-portal-api-key": process.env.AI4CALL_PORTAL_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
assistantApiKey: "ast_xxx",
to: "+39081...",
from: "+3902...",
metadata: { lead_id: "123" },
}),
});
console.log(res.status, await res.text());
# Faites appeler un prospect par votre assistant IA
import os, requests
res = requests.post(
"https://client-api.ai4call.com/webhook/outbound_call",
headers={
"x-client-email": "you@company.com",
"x-portal-api-key": os.environ["AI4CALL_PORTAL_KEY"],
},
json={
"assistantApiKey": "ast_xxx",
"to": "+39081...",
"from": "+3902...",
"metadata": {"lead_id": "123"},
},
)
print(res.status_code, res.text)
// Faites appeler un prospect par votre assistant IA
$ch = curl_init('https://client-api.ai4call.com/webhook/outbound_call');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'x-client-email: you@company.com',
'x-portal-api-key: ' . getenv('AI4CALL_PORTAL_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'assistantApiKey' => 'ast_xxx',
'to' => '+39081...',
'from' => '+3902...',
'metadata' => ['lead_id' => '123'],
]),
]);
echo curl_exec($ch);
Un appel, couche par couche : la voix n'est que la première. Chaque ligne est un point où votre code peut intervenir.
Cabinet Bianchi, bonjour Marco. Comment puis-je vous aider ?
Votre serveur reçoit le numéro de l'appelant, l'identifie et enrichit le prompt avec les données client.
webhook pré-appel
Le LLM répond grâce à la base de connaissances et appelle vos outils dès qu'il a besoin de données ou d'actions.
outils HTTP · MCP · RAG
Transfert, redirection ou clôture. L'IA extrait les champs que vous définissez et les envoie en POST à votre URL de raccrochage.
webhook de raccrochage
Historique des appels, consommations, événements outils et SMS à intégrer dans votre CRM, data warehouse ou BI.
/account/analytics/*
AI4CALL envoie un POST à votre endpoint. Répondez avec enable pour accepter ou refuser l'appel, et avec callerInfo pour donner du contexte à l'assistant : les champs sont ajoutés au system prompt.
POST https://yourserver.com/api/verify-caller
Content-Type: application/json
{
"number": "+393331234567",
"timestamp": "2025-12-13T10:30:00Z",
"assistantId": "ast_abc123",
"callId": "call_xyz789"
}
{
"enable": true,
"callerInfo": {
"name": "Mario",
"surname": "Rossi",
"custom_field_1": "VIP since 2020"
}
}
N'utilisez que ce dont vous avez besoin : d'un simple webhook à l'automatisation complète de la plateforme.
Créez et configurez assistants, prompts, voix TTS/ASR/LLM, bases de connaissances RAG, outils et analytics. Tout ce que vous faites dans le portail, en code.
Un POST depuis votre backend et l'assistant appelle votre client, via le trunk AI4CALL ou votre PBX. Transmettez des metadata (lead, ticket, commande) et retrouvez-les dans les analytics.
Avant que l'assistant ne réponde, AI4CALL appelle votre endpoint avec le numéro de l'appelant. Vous décidez d'accepter l'appel et du contexte à donner à l'IA.
Pendant l'appel, l'assistant invoque vos API : recherche client, ouverture de ticket, suivi de commande. Authentification Bearer, API Key ou OAuth2, ou votre propre serveur MCP.
Reliez l'assistant à votre standard via un trunk SIP ou le module FreePBX, en conservant vos numéros et votre routage.
L'API ne remplace pas le portail AI4CALL : elle le complète, avec la même logique. Vous automatisez uniquement ce dont vous avez besoin et gardez l'interface graphique pour le reste, sans développer votre propre back-office.
Un flux typique : l'équipe configure et affine l'assistant dans le portail, le développeur intègre appels sortants, webhooks et analytics via API.
Pas de SDK, pas de dépendances : un simple client HTTP suffit.
Inscrivez-vous sur le portail et créez votre premier assistant. L'essai inclut du crédit pour les appels de test.
Aller au portail →Créez une clé par environnement (test, production) dans le portail. Elle s'envoie dans les en-têtes avec votre e-mail.
Comment générer la clé API →Listez vos assistants pour récupérer l'assistantApiKey, puis lancez un appel sortant ou configurez prompt et voix.
curl https://client-api.ai4call.com/api/v1/assistants \
-H "x-client-email: you@company.com" \
-H "x-portal-api-key: $AI4CALL_PORTAL_KEY"
Les principaux domaines exposés par client-api.ai4call.com. Requêtes, réponses et erreurs sont documentées dans Swagger.
GET · POST /api/v1/assistants
GET · PATCH /api/v1/assistants/{key}/prompt
PATCH /api/v1/assistants/{key}/runtime/{tts|asr|llm|dtmf}
GET /api/v1/catalog/providers/tts
/api/v1/catalog/rag/…
PATCH /api/v1/assistants/{key}/runtime/rag
GET /api/v1/catalog/tools
PATCH /api/v1/assistants/{key}/runtime/tools
/api/v1/assistants/{key}/runtime/precall/number-validation
/api/v1/assistants/{key}/runtime/precall/mcp-config
PATCH /api/v1/assistants/{key}/runtime/hangup
…/runtime/hangup/save-conversation · /schema
POST /webhook/outbound_call
POST /webhook/outbound_call_pbx
GET /api/v1/account/analytics/calls
…/calls-outbound · /recharges · /tool-responses
GET · PATCH /api/v1/account/allowed-ips
GET · PATCH /api/v1/account/call-limits
Aucun verrouillage fournisseur : pour chaque assistant, choisissez le modèle le plus adapté en qualité, coût, latence et exigences de confidentialité. Et changez-le quand vous voulez, y compris via API.
Le lieu de traitement des données d'un appel dépend aussi des modèles utilisés. Avec AI4CALL, vous composez le pipeline selon vos exigences de confidentialité et celles de vos clients.
Le fournisseur et le modèle de chaque assistant se changent aussi via API, sans passer par le portail :
PATCH /api/v1/assistants/{key}/runtime/llm
Avec BYOK, vous connectez à AI4CALL les identifiants de votre compte chez le fournisseur (clé API, service account, clés IAM ou token) à la place de ceux d'AI4CALL. Les requêtes aux modèles partent de votre compte et le fournisseur vous les facture directement.
La consommation du composant utilisé avec votre clé (LLM, voix ou transcription) ne débite pas votre crédit de recharge AI4CALL.
À fort volume, c'est l'option la plus économique : vous payez les tarifs de votre contrat avec le fournisseur, sans majoration.
Compte, région et accord de traitement des données (DPA) se gèrent directement entre vous et le fournisseur : un atout de plus pour le RGPD.
Certains fournisseurs ne s'utilisent qu'avec vos propres identifiants, par exemple Anthropic, Google Gemini, OpenRouter, Vertex AI et AWS Bedrock.
E-mail et portalApiKey dans les en-têtes pour le compte, assistantApiKey dans le chemin pour un assistant. HTTPS uniquement.
Limitez l'accès à l'API à vos serveurs en gérant la liste via /account/allowed-ips.
Consultez et ajustez les appels simultanés et par période avec /account/call-limits.
Endpoints sous /api/v1. Les changements non rétrocompatibles arriveront dans une nouvelle version majeure, avec une période de transition.
Serveurs en Europe et conformité RGPD. Health check public sur GET /health pour votre monitoring.
Oui. Le plan Trial inclut un crédit de départ pour les appels de test. Pour séparer test et production, utilisez des identifiants dédiés ; si vous avez besoin d'un compte de test supplémentaire, contactez-nous depuis le portail.
L'API est en REST/JSON standard décrite en OpenAPI 3.0.3 : elle fonctionne avec n'importe quel client HTTP. Depuis Swagger, téléchargez openapi.yaml et générez un client typé avec des outils comme OpenAPI Generator.
Définissez les propriétés à extraire (ex. email_client, resultat) et une URL de raccrochage : à la fin de l'appel, vous recevez un POST avec les données extraites. Vous pouvez aussi recevoir la transcription complète par e-mail.
Oui, grâce aux outils personnalisés : définissez endpoint, méthode HTTP, paramètres et authentification (Bearer, API Key, OAuth2) et l'IA les invoque au besoin. Pour des intégrations plus structurées, connectez votre propre serveur MCP.
La contrainte principale est le nombre d'appels simultanés et par période prévu par votre plan, consultable et ajustable via /account/call-limits. Pour de gros volumes, contactez-nous pour un plan dédié.
La consommation dépend de votre plan (à l'usage ou avec minutes incluses). Avec les plans Trial et Freedom, vous pouvez utiliser vos propres clés API pour les LLM et les voix et payer directement le fournisseur. Détails sur la page tarifs.
Tous les endpoints métier sont versionnés sous /api/v1/. Les éventuels breaking changes arriveront en /api/v2/, la v1 restant active pendant la transition.
Oui. Vous pouvez choisir des fournisseurs européens (Mistral, IONOS, OVHcloud, Scaleway), l'endpoint européen d'OpenAI, vos comptes Azure, Vertex AI ou AWS Bedrock dans la région de votre choix, ou un modèle auto-hébergé avec Ollama. L'évaluation finale de conformité revient au responsable du traitement : contactez-nous pour les cas spécifiques.
Créez votre compte, générez votre clé et passez votre premier appel IA depuis votre code. Projet complexe ? Parlons-en avec notre équipe technique.
Chiama e prova la qualità dei nostri assistenti A.I.