Aller au contenu

Ringfully s’appelle maintenant Inbound CX Nouveautés

Demander une démo
Menu

Tapez un mot ou deux. Échap pour fermer.

Développeurs

Une API REST pour vos appels, vos contacts et vos messages texte

Consultez l’historique de vos appels, tenez votre liste de contacts à jour et envoyez des textos depuis vos propres logiciels. Les clés se créent dans le portail Inbound CX, sur les forfaits Pro et Business, et des webhooks signés vous préviennent quand un appel se termine, qu’un message vocal arrive, qu’un texto est reçu ou que l’une des huit autres choses suivies se produit.

Version 1 depuis août 2026 · 14 points de terminaison · 120 requêtes par minute par clé

$ curl "https://api.inboundcx.com/api/v1/calls?direction=inbound&limit=1" \
  -H "Authorization: Bearer $API_KEY"

{
  "calls": [
    {
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "direction": "inbound",
      "fromNumber": "+15145550142",
      "toNumber": "+14385550199",
      "status": "completed",
      "startedAt": "2026-09-11T15:04:12.000Z",
      "answeredAt": "2026-09-11T15:04:19.000Z",
      "endedAt": "2026-09-11T15:07:31.000Z",
      "durationSec": 192,
      "isInternal": false,
      "agentId": "a3f1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b",
      "contactId": "e2b4c6d8-1a3f-4b5d-9e7c-8f0a2b4c6d8e"
    }
  ],
  "nextCursor": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
}
200 OK · application/json

Trois étapes vers une première requête

  1. Créer une clé

    Dans le portail (en anglais), Settings → API Keys. Nommez la clé, choisissez une échéance et copiez-la : elle n’apparaît qu’une fois et n’est conservée que sous forme d’empreinte.

  2. Appeler un point de terminaison

    Envoyez la clé comme jeton de porteur. GET /api/v1/me renvoie votre organisation, les portées de la clé et sa limite de débit : c’est le premier appel à faire.

  3. S’abonner aux événements

    Settings → Webhooks : ajoutez une adresse https sur un hôte que votre organisation a approuvé, cochez les événements voulus, de call.completed à survey.responded, et gardez le secret de signature, affiché une seule fois.

Partir d’une requête qui fonctionne

Aucun paquet à installer : l’API parle HTTPS et JSON, alors ces exemples fonctionnent tels quels.

  • OpenAPI 3.1

    openapi.json
    GET /api/v1/openapi.json

    Produite à partir des schémas que l’API valide, et lisible sans clé.

    Ouvrir la spécification
  • curl

    terminal
    curl https://api.inboundcx.com/api/v1/me \
      -H "Authorization: Bearer $API_KEY"

    Vérifie la clé : l’organisation, ses portées et la limite de débit vous reviennent.

  • JavaScript

    fetch
    const res = await fetch("https://api.inboundcx.com/api/v1/contacts?includeAutoCreated=false&limit=50", {
      headers: { Authorization: `Bearer ${process.env.API_KEY}` },
    });
    if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
    const { contacts, nextCursor } = await res.json();

    Liste les fiches saisies par une personne, 50 à la fois, avec un curseur pour la page suivante.

  • Python

    requests
    import os
    import requests
    
    r = requests.post(
        "https://api.inboundcx.com/api/v1/messages",
        headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
        json={"to": "+15145550142", "body": "Your technician arrives between 9 and 11."},
        timeout=10,
    )
    r.raise_for_status()
    message = r.json()["message"]

    Envoie un texto au nom de l’organisation, facturé au tarif de son transporteur.

  • Signatures des webhooks

    HMAC-SHA256
    import crypto from "node:crypto";
    
    // Deprecated names with the same values: x-ringfully-timestamp, x-ringfully-signature.
    const timestamp = req.get("x-inboundcx-timestamp") ?? "";
    const signature = req.get("x-inboundcx-signature") ?? "";
    const expected = crypto
      .createHmac("sha256", process.env.INBOUNDCX_WEBHOOK_SECRET)
      .update(`${timestamp}.${rawBody}`)
      .digest("hex");
    const valid =
      expected.length === signature.length &&
      crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature)) &&
      Math.abs(Date.now() - Number(timestamp)) < 5 * 60 * 1000;

    Lit x-inboundcx-timestamp et x-inboundcx-signature; x-ringfully-timestamp et x-ringfully-signature Obsolète arrivent encore, avec les mêmes valeurs.

  • Clés d’API

    Pro et Business
    Authorization: Bearer rk_live_…

    Créées dans Settings → API Keys. Une clé révoquée à cet endroit cesse de fonctionner dès sa requête suivante.

    Ouvrir API Keys dans le portail

Ce que vous pouvez bâtir dès aujourd’hui

  • Chaque appel consigné dans votre propre système

    Recevez call.completed à la fin d’un appel, ou remontez l’historique page par page, et classez chaque appel au dossier du bon client.

    GET /api/v1/calls
  • Une liste de contacts toujours à jour

    Créez, renommez et supprimez des fiches depuis les logiciels que vous utilisez déjà. Un numéro que votre équipe a déjà appelé est nommé, pas dupliqué.

    POST /api/v1/contacts
  • Des textos envoyés depuis vos outils

    Envoyez un rappel ou une mise à jour d’intervention depuis votre logiciel de réservation ou de répartition, et lisez les réponses conversation par conversation.

    POST /api/v1/messages

Nouveautés

Ce qui a changé dans le produit, daté, en français et en anglais.

Lire les nouveautés

Questions sur l’API

Posez vos questions sur une portée, une limite ou un point de terminaison par le formulaire de contact.

Nous écrire

État du service

Si nos serveurs, l’application Web et le réseau téléphonique fonctionnent en ce moment, vérifié en direct, avec les incidents consignés.

Voir l’état du service

Prêt à répondre à chaque appel ?

Découvrez comment Inbound CX prend et achemine vos appels, en une démonstration de 15 minutes.

Réserver une démo