Cette page décrit la ressource /api/public/appointments. La génération de la clé d’API et les conventions communes sont décrites dans la page Utiliser l’API Apenday. Les identifiants d’événement et d’agence portés par les champs meeting_id et agency_id se résolvent avec la page Retrouver vos identifiants d’événements et d’agences avec l’API.
Lister vos rendez-vous #
curl "https://app.apenday.com/api/public/appointments?itemsPerPage=50" \
-H "X-AUTH-TOKEN: VOTRE_CLE_API" \
-H "Accept: application/ld+json"
La collection renvoie les rendez-vous du périmètre de votre clé. L’ordre n’est pas garanti sans paramètre order.
Filtrer et trier la liste #
| Paramètre | Effet |
|---|---|
date[after], date[before] | Date de début postérieure ou antérieure à la valeur, borne incluse |
date[strictly_after], date[strictly_before] | Mêmes filtres, borne exclue |
status | Statut exact. Répéter status[] pour plusieurs valeurs |
search | Recherche partielle dans les réponses au formulaire et dans les paramètres UTM du rendez-vous |
order[date], order[created_at], order[id] | Tri, valeur asc ou desc |
Les dates s’écrivent au format ISO 8601, par exemple 2026-09-01T00:00:00+02:00. Elles sont converties en UTC avant comparaison.
Statuts possibles : scheduled, terminated, missed, cancelled, cancelled_by_consultant.
curl -G "https://app.apenday.com/api/public/appointments" \
-H "X-AUTH-TOKEN: VOTRE_CLE_API" \
-H "Accept: application/ld+json" \
--data-urlencode "date[after]=2026-09-01T00:00:00+02:00" \
--data-urlencode "status=scheduled" \
--data-urlencode "order[date]=asc"
Les champs d’un rendez-vous #
| Champ | Type | Contenu |
|---|---|---|
id | chaîne | Identifiant du rendez-vous |
meeting_id | chaîne | Identifiant de l’événement |
meeting_name | chaîne | Nom de l’événement |
meeting_technical_name | chaîne ou null | Nom technique de l’événement |
meeting_type | chaîne | default, call, video ou other |
status | chaîne | Statut du rendez-vous |
date | chaîne | Date et heure de début, au format ISO 8601 avec décalage horaire |
end_date | chaîne | Date et heure de fin, même format |
consultants | tableau | Conseillers affectés, chacun avec name, email et external_id |
customer_firstname | chaîne | Prénom saisi dans le formulaire |
customer_lastname | chaîne | Nom saisi dans le formulaire |
customer_email | chaîne | Adresse e-mail saisie dans le formulaire |
customer_phone_number | chaîne | Numéro de téléphone saisi dans le formulaire |
other_form_values | objet | Les autres réponses au formulaire, plus createdAt et updatedAt |
agency_name | chaîne ou null | Nom de l’agence |
agency_id | entier ou null | Identifiant Apenday de l’agence |
agency_external_id | chaîne ou null | Identifiant de l’agence dans votre système |
agency_crm_id | chaîne ou null | Identifiant de l’agence dans votre CRM |
satisfaction_score | entier ou null | Note de l’enquête de satisfaction |
satisfaction_comment | chaîne ou null | Commentaire de l’enquête de satisfaction |
utm_campain | chaîne ou null | Paramètre UTM de campagne |
utm_source | chaîne ou null | Paramètre UTM de source |
utm_medium | chaîne ou null | Paramètre UTM de support |
tags | tableau | Libellés des tags posés sur le rendez-vous |
Le bloc front_actions #
Ce bloc rassemble les URLs des pages publiques du rendez-vous.
| Clé | Présente quand |
|---|---|
cancel | Le rendez-vous est encore annulable |
update | Le rendez-vous est encore modifiable |
survey | Le rendez-vous peut être évalué |
download_ics | Le rendez-vous est au statut scheduled |
Les clés présentes varient selon l’état du rendez-vous et le type d’événement. N’en considérez aucune comme garantie et testez sa présence avant de l’utiliser. Le bloc front_actions est entièrement absent de la réponse quand aucune action n’est disponible, ce qui est notamment le cas d’un rendez-vous passé : ne comptez pas non plus sur la présence de la clé elle-même.
Consulter un rendez-vous #
curl "https://app.apenday.com/api/public/appointments/IDENTIFIANT" \
-H "X-AUTH-TOKEN: VOTRE_CLE_API" \
-H "Accept: application/ld+json"
La réponse porte les mêmes champs qu’un élément de la collection.
Annuler un rendez-vous #
curl -X DELETE "https://app.apenday.com/api/public/appointments/IDENTIFIANT/cancel" \
-H "X-AUTH-TOKEN: VOTRE_CLE_API" \
-H "Accept: application/ld+json"
La réponse est un 204, sans corps.
Un rendez-vous au statut scheduled s’annule jusqu’à son heure de fin. Au-delà, il ne s’annule plus : déclarez-le manqué ou clôturez-le.
L’annulation fait passer le rendez-vous au statut cancelled_by_consultant, et non cancelled, qui reste réservé aux annulations faites par le client depuis son lien de gestion. Elle déclenche les notifications d’annulation paramétrées sur l’événement, ainsi que l’événement webhook meeting_cancelled_by_consultant. Sur un rendez-vous de groupe, les rendez-vous individuels rattachés sont annulés dans le même mouvement. La souscription aux webhooks est décrite dans la page Utiliser les webhooks Apenday.
Une clé générée par un conseiller annule uniquement les rendez-vous qui lui sont affectés, et seulement si le droit Autoriser le conseiller à annuler ses rendez-vous est activé dans Paramètres > Espace client > Organisation > Droits (voir Affiner les droits utilisateurs). Sinon, la réponse est un 403. Les clés générées par un responsable d’équipe ou un administrateur ne dépendent pas de ce droit.
Clôturer un rendez-vous #
curl -X PUT "https://app.apenday.com/api/public/appointments/IDENTIFIANT/terminate" \
-H "X-AUTH-TOKEN: VOTRE_CLE_API" \
-H "Accept: application/ld+json"
L’appel ne porte ni corps ni en-tête Content-Type. La réponse est un 200 qui porte le rendez-vous à jour, avec les mêmes champs qu’un élément de la collection.
Un rendez-vous au statut scheduled se clôture à partir de son heure de début. Il passe au statut terminated. La clôture déclenche les notifications paramétrées sur l’événement pour ce statut, ainsi que l’événement webhook meeting_terminated.
Aucun tag, commentaire ni motif n’est demandé, même quand l’événement rend un tag obligatoire à la clôture : cette obligation s’applique au conseiller qui clôture le rendez-vous dans Apenday, pas à l’API.
Une séance de groupe dont des participants restent à classer ne se clôture pas par l’API : ses participants se clôturent ou se déclarent manqués un par un, dans Apenday.
Déclarer un rendez-vous manqué #
curl -X PUT "https://app.apenday.com/api/public/appointments/IDENTIFIANT/miss" \
-H "X-AUTH-TOKEN: VOTRE_CLE_API" \
-H "Accept: application/ld+json"
Les règles sont celles de la clôture : appel sans corps, possible à partir de l’heure de début, réponse 200 avec le rendez-vous à jour, aucun tag ni motif demandé. Le rendez-vous passe au statut missed. L’appel déclenche les notifications paramétrées sur l’événement pour ce statut, ainsi que l’événement webhook meeting_missed.
Sur une séance de groupe, chaque participant encore au statut scheduled est aussi déclaré manqué.
En cas de refus #
Le motif d’un refus est dans le champ hydra:description de la réponse, repris dans detail, en anglais. Dans les messages ci-dessous, {id} est l’identifiant du rendez-vous.
| Code | Message | Que faire |
|---|---|---|
400 | The appointment is already cancelled: this status is final. | Rien : le statut ne changera plus. Relisez le rendez-vous pour mettre votre système à jour |
400 | The appointment is already terminated: this status is final. | Idem |
400 | The appointment is already declared missed: this status is final. | Idem |
400 | The appointment is over and can no longer be cancelled: declare it missed (PUT /api/public/appointments/{id}/miss) or terminated (PUT /api/public/appointments/{id}/terminate). | Déclarer le rendez-vous manqué, ou le clôturer |
400 | The appointment has not started yet: it can be terminated from its start time. To call it off, cancel it (DELETE /api/public/appointments/{id}/cancel). | Attendre l’heure de début, ou annuler le rendez-vous |
400 | The appointment has not started yet: it can be declared missed from its start time. To call it off, cancel it (DELETE /api/public/appointments/{id}/cancel). | Attendre l’heure de début, ou annuler le rendez-vous |
400 | The appointment is a group session: its attendees are terminated or declared missed one by one, in Apenday. | Classer les participants dans Apenday |
403 | The API key is not allowed to cancel this appointment. | Annuler avec la clé d’un responsable d’équipe ou d’un administrateur, ou faire activer le droit décrit dans Annuler un rendez-vous |
Points d’attention #
- Un rendez-vous annulé, clôturé ou manqué ne change plus de statut. Si le refus indique le statut que vous vouliez poser, votre demande est déjà satisfaite.
- Un changement fait par l’API déclenche les mêmes envois qu’une action faite dans Apenday : notifications, webhooks et connecteurs CRM de l’espace client. Votre système peut donc recevoir le changement qu’il vient lui-même d’envoyer : ignorez un statut que vous connaissez déjà.
