Klantly Developers

API-referentie

API-sleutel

Test je verbinding en bekijk welke sleutel, welk bedrijf, welke scopes en welke limieten gelden.

Endpoints

Sleutel en bedrijf ophalen

GET /api/v1/me

Geeft de sleutel waarmee je het verzoek doet terug, met het bedrijf, de scopes, de vervaldatum en de limieten. Gebruik dit endpoint om je verbinding te testen: het vraagt geen scope.

Scope
Geen scope nodig: elke geldige sleutel.

Voorbeeldverzoek

cURL
curl "https://app.klantly.com/api/v1/me" \
  -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', 'me');

$data = json_decode((string) $response->getBody(), true)['data'];
JavaScript
const response = await fetch('https://app.klantly.com/api/v1/me', {
  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/me",
    headers={
        "Authorization": f"Bearer {os.environ['KLANTLY_API_KEY']}",
    },
)
data = response.json()["data"]

Antwoord 200

Voorbeeldantwoord
{
  "data": {
    "object": "api_key",
    "id": "01j7zq3k9x2m4n6p8r0t2v4w6y",
    "name": "Website",
    "prefix": "kly_4fZ2mQ8v",
    "scopes": [
      "customers.read",
      "customers.write"
    ],
    "expires_at": "2027-09-14T10:15:00Z",
    "created_at": "2026-09-14T10:15:00Z",
    "company": {
      "object": "company",
      "id": "cmp_1b7r2d90f3m5kx",
      "name": "De Vries Bouw"
    },
    "rate_limits": [
      {
        "name": "key_minute",
        "limit": 120,
        "window_seconds": 60
      }
    ],
    "unavailable_scopes": [],
    "features": [
      "pipeline",
      "appointments",
      "quotes",
      "invoices"
    ],
    "subscription": {
      "status": "active",
      "current_period_end": null,
      "trial_ends_at": null
    }
  }
}

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 "api_key".
id string Id van de sleutel.
name string De naam die de sleutel in Klantly kreeg.
prefix string Het begin van de sleutel, om hem te herkennen.
scopes array<string> De scopes van de sleutel.
expires_at string (date-time) Vervaldatum, of null als de sleutel niet verloopt. kan leeg zijn (null)
created_at string (date-time) Aangemaakt op (UTC).
company object Het bedrijf waar de sleutel bij hoort.
company.object string Altijd "company".
company.id string Id van het bedrijf.
company.name string Naam van het bedrijf.
rate_limits array<object> De limieten die voor deze sleutel gelden.
rate_limits.name string Naam van de limiet.
rate_limits.limit integer Maximaal aantal verzoeken in het venster.
rate_limits.window_seconds integer Lengte van het venster in seconden.
unavailable_scopes array<string> Scopes van deze sleutel die het bedrijf NU niet kan gebruiken, omdat de bijbehorende functie niet in het pakket zit. Aanroepen daarop geven 403 feature_not_available.
features array<string> De functies die het bedrijf nu heeft (pipeline, appointments, tasks, work_orders, quotes, invoices, webshop, reviews).
subscription object De stand van het abonnement, zodat je een aflopende periode of proefperiode ziet aankomen.
subscription.status string Status van het abonnement, bijvoorbeeld active, trialing, past_due of cancelled. kan leeg zijn (null)
subscription.current_period_end string (date-time) Einde van de huidige (betaalde) periode, of null. kan leeg zijn (null)
subscription.trial_ends_at string (date-time) Einde van de proefperiode, of null. kan leeg zijn (null)