API publique du widget
Ces routes utilisent la clé publique du workspace et l'en-tête Origin. Elles ne nécessitent jamais de clé serveur.
Créer un appel
POST /widget/call-requests · idempotent · réponse 202
const response = await fetch('https://api.click2call.app/v1/widget/call-requests', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
workspace_key: 'c2c_pub_VOTRE_CLE',
phone: '+33612345678',
name: 'Camille',
consent: true,
page_url: location.href,
}),
});
const call = (await response.json()).data;
La réponse contient seulement id, status et poll_after_ms.
Suivre le statut
GET /widget/call-requests/{id}/status
Respectez poll_after_ms, arrêtez le polling sur un statut terminal et lorsque le composant quitte la page.
Déposer une demande de rappel
POST /widget/callback-leads · idempotent · réponse 201
curl -X POST https://api.click2call.app/v1/widget/callback-leads \
-H "Origin: https://www.exemple.fr" \
-H "Idempotency-Key: callback-form-4587" \
-H "Content-Type: application/json" \
-d '{"workspace_key":"c2c_pub_VOTRE_CLE","phone":"+33612345678","name":"Camille","consent":true,"page_url":"https://www.exemple.fr/contact"}'
Une demande de rappel notifie l'équipe, mais ne programme aucun appel automatique.
CORS
Une origine autorisée reçoit Access-Control-Allow-Origin avec sa valeur exacte et Vary: Origin. Les jokers et origines avec chemin ne sont pas acceptés.