Klantly Developers

API-referentie

Reacties op taken

Reacties op een taak, met de regels die Klantly zelf schrijft.

Endpoints

Reacties op een taak opvragen

GET /api/v1/tasks/{task}/comments

De reacties op een taak, oudste eerst, met de regels die Klantly zelf schreef (is_system).

Scope
tasks.read — Taken, borden en reacties lezen
Vereiste functie
tasks

Padparameters

NaamTypeOmschrijving
task verplicht string (uuid) De id (UUID) van de taak.

Queryparameters

NaamTypeOmschrijving
limit integer Aantal resultaten per pagina. van 1 tot 100 · standaard: 50
cursor string De next_cursor of prev_cursor uit meta van het vorige antwoord.

Voorbeeldverzoek

cURL
curl "https://app.klantly.com/api/v1/tasks/9d3f6c1e-4b2a-4c8e-9f1a-2b3c4d5e6f70/comments" \
  -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', 'tasks/9d3f6c1e-4b2a-4c8e-9f1a-2b3c4d5e6f70/comments');

$data = json_decode((string) $response->getBody(), true)['data'];
JavaScript
const response = await fetch('https://app.klantly.com/api/v1/tasks/9d3f6c1e-4b2a-4c8e-9f1a-2b3c4d5e6f70/comments', {
  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/tasks/9d3f6c1e-4b2a-4c8e-9f1a-2b3c4d5e6f70/comments",
    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": "task_comment",
      "id": "9d3f8449-afe1-4a6e-9dbc-c1dfe0f1a2ba",
      "task_id": "9d3f7fc5-6bad-4c2a-9f7e-8d9bacbdced6",
      "body": "Klant belt morgen terug.",
      "is_system": false,
      "author": {
        "object": "user",
        "id": "usr_0k3j9x21m4zq8p",
        "name": "Sanne Bakker"
      },
      "created_at": "2026-09-14T10:15:00Z"
    }
  ],
  "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.

Reactie plaatsen

POST /api/v1/tasks/{task}/comments

Plaatst een reactie op de taak. De toegewezen gebruiker en de maker krijgen een melding. Een reactie via de API heeft geen auteur.

Scope
tasks.write — Taken aanmaken, wijzigen, verplaatsen en afronden, en reacties plaatsen
Vereiste functie
tasks

Stuur een Idempotency-Key mee, dan maakt een nieuwe poging na een time-out geen dubbel record.

Padparameters

NaamTypeOmschrijving
task verplicht string (uuid) De id (UUID) van de taak.

Body (JSON)

VeldTypeOmschrijving
body verplicht string De tekst van de reactie. maximaal 5000 tekens

Voorbeeldverzoek

cURL
curl -X POST "https://app.klantly.com/api/v1/tasks/9d3f6c1e-4b2a-4c8e-9f1a-2b3c4d5e6f70/comments" \
  -H "Authorization: Bearer $KLANTLY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f" \
  -d '{
  "body": "Klant belt morgen terug."
}'
PHP
$client = new \GuzzleHttp\Client([
    'base_uri' => 'https://app.klantly.com/api/v1/',
    'headers' => ['Authorization' => 'Bearer ' . getenv('KLANTLY_API_KEY')],
]);

$response = $client->request('POST', 'tasks/9d3f6c1e-4b2a-4c8e-9f1a-2b3c4d5e6f70/comments', [
    'headers' => [
        'Idempotency-Key' => '6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f',
    ],
    'json' => [
        'body' => 'Klant belt morgen terug.',
    ],
]);

$data = json_decode((string) $response->getBody(), true)['data'];
JavaScript
const response = await fetch('https://app.klantly.com/api/v1/tasks/9d3f6c1e-4b2a-4c8e-9f1a-2b3c4d5e6f70/comments', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.KLANTLY_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': '6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f',
  },
  body: JSON.stringify({
  "body": "Klant belt morgen terug."
}),
});

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

import requests

response = requests.post(
    "https://app.klantly.com/api/v1/tasks/9d3f6c1e-4b2a-4c8e-9f1a-2b3c4d5e6f70/comments",
    headers={
        "Authorization": f"Bearer {os.environ['KLANTLY_API_KEY']}",
        "Idempotency-Key": "6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
    },
    json={
        "body": "Klant belt morgen terug."
    },
)
data = response.json()["data"]

Antwoord 201

Voorbeeldantwoord
{
  "data": {
    "object": "task_comment",
    "id": "9d3f8449-afe1-4a6e-9dbc-c1dfe0f1a2ba",
    "task_id": "9d3f7fc5-6bad-4c2a-9f7e-8d9bacbdced6",
    "body": "Klant belt morgen terug.",
    "is_system": false,
    "author": {
      "object": "user",
      "id": "usr_0k3j9x21m4zq8p",
      "name": "Sanne Bakker"
    },
    "created_at": "2026-09-14T10:15:00Z"
  }
}

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 "task_comment".
id string (uuid) Unieke id (UUID).
task_id string (uuid) De taak.
body string De tekst van de reactie.
is_system boolean Een regel die Klantly zelf schreef, zoals "naar kolom Bezig verplaatst".
author object Wie de reactie schreef, of null (een systeemregel of een reactie via de API). kan leeg zijn (null)
author.object string Altijd "user".
author.id string Id van de gebruiker.
author.name string Naam van de gebruiker.
created_at string (date-time) Geplaatst op (UTC).