Configurer et utiliser l'API REST

Interroger les rendez-vous libres et réserver des rendez-vous, directement depuis votre propre application.

L'API fonctionne avec JSON et s'appelle via l'adresse https://example.com/api. Le processus de réservation se compose de six appels qui s'enchaînent: calendrier, motif de rendez-vous, jour, heure, champs de formulaire et enfin la réservation. Tous les appels se font depuis votre serveur, pas depuis le navigateur de vos clients.

Étape 1: activer l'API et générer le token

À la livraison, l'API est désactivée. Vous l'activez dans l'espace d'administration.

  1. Cliquez dans la navigation sur Configuration.
  2. Cliquez dans la sous-navigation sur Paramètres généraux.
  3. Cliquez dans la liste sur Interface.
  4. Activez API activer. La modification est enregistrée immédiatement.
  5. Cliquez sur Générer un nouveau token pour créer le token d'accès de l'interface.
  6. Copiez immédiatement le token affiché et conservez-le en lieu sûr, il n'est plus affiché ensuite.

Captures d'écran

Cliquez dans la navigation sur Configuration

1 Cliquez dans la navigation sur Configuration

Cliquez dans la sous-navigation sur Paramètres généraux

2 Cliquez dans la sous-navigation sur Paramètres généraux

Cliquez dans la liste sur Interface

3 Cliquez dans la liste sur Interface

Activez API activer. La modification est enregistrée immédiatement

4 Activez API activer. La modification est enregistrée immédiatement

Cliquez sur Générer un nouveau token pour créer le token d'accès de l'interface

5 Cliquez sur Générer un nouveau token pour créer le token d'accès de l'interface

Copiez immédiatement le token affiché et conservez-le en lieu sûr, il n'est plus affiché ensuite

6 Copiez immédiatement le token affiché et conservez-le en lieu sûr, il n'est plus affiché ensuite

Le token commence par apm_, suivi de 64 caractères, et n'est affiché qu'une seule fois. Le système ne conserve qu'un hachage, le token lui-même ne peut plus être relu par la suite. Il y a exactement un token par installation: si vous générez un nouveau token, l'ancien perd immédiatement sa validité.

Vous envoyez le token à chaque appel dans l'en-tête de la requête:

Authorization: Bearer apm_votre-token

Étape 2: vérifier la connexion et interroger les calendriers

Le premier appel vous permet de vérifier la connexion et d'obtenir les numéros de vos calendriers de rendez-vous.

curl -H "Authorization: Bearer apm_votre-token" \
  https://example.com/api/schedules

Réponse:

{
    "data": [
        { "id": 1, "name": "Site principal" },
        { "id": 2, "name": "Filiale" }
    ]
}

Vous utilisez l'id du calendrier souhaité dans tous les autres appels comme paramètre schedule.

Étape 3: interroger les motifs de rendez-vous

curl -H "Authorization: Bearer apm_votre-token" \
  "https://example.com/api/reasons?schedule=1"

Réponse:

{
    "data": [
        {
            "id": 1,
            "name": "Entretien de conseil",
            "description": "Conseil standard",
            "duration": 1800
        },
        {
            "id": 2,
            "name": "Rendez-vous de suivi",
            "description": "",
            "duration": 900
        }
    ]
}

duration est la durée en secondes (1800 secondes correspondent à 30 minutes). Vous utilisez ensuite l'id comme paramètre reason. Si aucun motif de rendez-vous n'est configuré pour un calendrier, data est vide.

Étape 4: interroger les jours avec des rendez-vous libres

curl -H "Authorization: Bearer apm_votre-token" \
  "https://example.com/api/days?schedule=1&reason=1"

Réponse:

{
    "data": ["2026-05-23", "2026-05-24", "2026-05-26"]
}

Seuls sont renvoyés les jours où au moins un horaire de rendez-vous est libre. Les paramètres de votre calendrier déterminent jusqu'où la liste s'étend dans le futur.

Étape 5: interroger les heures libres d'un jour

curl -H "Authorization: Bearer apm_votre-token" \
  "https://example.com/api/slots?schedule=1&reason=1&day=2026-05-23"

Réponse:

{
    "data": [
        "2026-05-23 09:00:00",
        "2026-05-23 09:30:00",
        "2026-05-23 10:00:00"
    ]
}

Les heures sont les heures locales de votre installation, le format est toujours AAAA-MM-JJ HH:MM:SS.

Étape 6: interroger les champs de formulaire de la réservation

Les champs nécessaires à une réservation, c'est vous qui les définissez dans le planificateur de rendez-vous. Interrogez donc toujours les champs au lieu de les inscrire en dur dans votre propre programme. L'espace dans le paramètre slot doit être encodé en %20.

curl -H "Authorization: Bearer apm_votre-token" \
  "https://example.com/api/forms?schedule=1&reason=1&slot=2026-05-23%2009:00:00"

Réponse:

{
    "data": {
        "first_name": {
            "form_type": "textbox",
            "input_type": "text",
            "label": "Prénom",
            "required": true,
            "value": ""
        },
        "last_name": {
            "form_type": "textbox",
            "input_type": "text",
            "label": "Nom",
            "required": true,
            "value": ""
        },
        "email": {
            "form_type": "textbox",
            "input_type": "email",
            "label": "Adresse e-mail",
            "required": false,
            "value": ""
        }
    }
}

Tous les champs avec "required": true doivent être remplis lors de la réservation. Le champ password n'est jamais renvoyé par l'API.

Étape 7: réserver le rendez-vous

La réservation est le seul appel avec la méthode POST. L'en-tête doit contenir Content-Type: application/json. Dans submission, vous indiquez les valeurs correspondant aux noms de champs de l'étape 6.

curl -X POST https://example.com/api/bookings \
  -H "Authorization: Bearer apm_votre-token" \
  -H "Content-Type: application/json" \
  -d '{
    "schedule": 1,
    "reason": 1,
    "slot": "2026-05-23 09:00:00",
    "submission": {
        "first_name": "Hans",
        "last_name": "Pitt",
        "email": "hans.pitt@example.com"
    }
  }'

Réponse en cas de succès (statut 201):

{
    "booking_id": 142,
    "booking_details_id": "a3f8c2d1e5b6",
    "user_id": 87,
    "slot": "2026-05-23T09:00:00Z"
}

Le rendez-vous est ainsi enregistré dans le planificateur. Les e-mails de notification sont envoyés comme pour toute autre réservation.

Messages d'erreur

Les erreurs sont également renvoyées en JSON, par exemple {"error":"Unauthorized"}.

Remarques

Retour à l'aperçu: Module "API (interface)".

Haut de page