Klantly Developers

API-referentie

Afspraaktypes

De soorten afspraken die het bedrijf heeft ingesteld, met hun duur en prijs.

Endpoints

Afspraaktypes opvragen

GET /api/v1/appointment-types

Alle afspraaktypes van het bedrijf in de volgorde van het scherm, ook de inactieve (zie is_active).

Scope
appointments.read — Afspraken (met naam, e-mail en telefoon van de klant), afspraaktypes en beschikbaarheid lezen
Vereiste functie
appointments

Voorbeeldverzoek

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"]

Antwoord 200

Het antwoord is een lijst met cursorpaginering: data bevat de objecten, meta de paginering.

Voorbeeldantwoord
{
  "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
  }
}

Mogelijke fouten

Daarnaast kan elk endpoint de algemene fouten geven, zoals een ongeldige sleutel of een bereikte limiet. Bekijk alle foutcodes.

Het object

Alle velden zijn altijd aanwezig; een veld zonder waarde is null.

VeldTypeOmschrijving
object string Altijd "appointment_type".
id string (uuid) Unieke id (UUID).
name string Naam in de taal van het verzoek.
names object De naam in alle vier de talen.
names.nl string Nederlandse naam. kan leeg zijn (null)
names.en string Engelse naam. kan leeg zijn (null)
names.de string Duitse naam. kan leeg zijn (null)
names.fr string Franse naam. kan leeg zijn (null)
description string Omschrijving in de taal van het verzoek. kan leeg zijn (null)
duration_minutes integer Duur in minuten. kan leeg zijn (null)
price string Prijs als tekst met twee decimalen, of null. kan leeg zijn (null)
color string Kleur in de agenda (hex). kan leeg zijn (null)
is_active boolean Kan het type nog worden gekozen.