Klantly Developers

Référence de l'API

Types de rendez-vous

Les types de rendez-vous configurés par l’entreprise, avec leur durée et leur prix.

Endpoints

Lister les types de rendez-vous

GET /api/v1/appointment-types

Tous les types de rendez-vous de l’entreprise dans l’ordre de l’écran, y compris les inactifs (voir is_active).

Scope
appointments.read — Lire les rendez-vous (avec le nom, l'e-mail et le téléphone du client), les types de rendez-vous et les disponibilités
Fonctionnalité requise
appointments

Exemple de requête

cURL
curl "https://app.klantly.com/api/v1/appointment-types" \
  -H "Authorization: Bearer $KLANTLY_API_KEY"
PHP
$client = new \GuzzleHttp\Client([
    'base_uri' => 'https://app.klantly.com/api/v1/',
    'headers' => ['Authorization' => 'Bearer ' . getenv('KLANTLY_API_KEY')],
]);

$response = $client->request('GET', 'appointment-types');

$data = json_decode((string) $response->getBody(), true)['data'];
JavaScript
const response = await fetch('https://app.klantly.com/api/v1/appointment-types', {
  headers: {
    Authorization: `Bearer ${process.env.KLANTLY_API_KEY}`,
  },
});

const { data } = await response.json();
Python
import os

import requests

response = requests.get(
    "https://app.klantly.com/api/v1/appointment-types",
    headers={
        "Authorization": f"Bearer {os.environ['KLANTLY_API_KEY']}",
    },
)
data = response.json()["data"]

Réponse 200

La réponse est une liste avec pagination par curseur : data contient les objets, meta la pagination.

Exemple de réponse
{
  "data": [
    {
      "object": "appointment_type",
      "id": "9d3f7ea4-5a9c-4b1f-8e6d-7c8a9bacbdc5",
      "name": "Inmeten",
      "names": {
        "nl": "Inmeten",
        "en": "Measuring",
        "de": "Aufmaß",
        "fr": "Prise de mesures"
      },
      "description": null,
      "duration_minutes": 60,
      "price": "49.50",
      "color": "#3B82F6",
      "is_active": true
    }
  ],
  "meta": {
    "limit": 50,
    "next_cursor": "eyJpZCI6IjlkM2Y2YzFlIn0",
    "prev_cursor": null
  }
}

Erreurs possibles

En outre, chaque endpoint peut renvoyer les erreurs générales, comme une clé invalide ou une limite atteinte. Voir tous les codes d'erreur.

L'objet

Tous les champs sont toujours présents ; un champ sans valeur vaut null.

ChampTypeDescription
object string Toujours « appointment_type ».
id string (uuid) Id unique (UUID).
name string Nom dans la langue de la requête.
names object Le nom dans les quatre langues.
names.nl string Nom néerlandais. peut être vide (null)
names.en string Nom anglais. peut être vide (null)
names.de string Nom allemand. peut être vide (null)
names.fr string Nom français. peut être vide (null)
description string Description dans la langue de la requête. peut être vide (null)
duration_minutes integer Durée en minutes. peut être vide (null)
price string Prix sous forme de texte avec deux décimales, ou null. peut être vide (null)
color string Couleur dans l’agenda (hex). peut être vide (null)
is_active boolean Indique si le type peut encore être choisi.