Klantly Developers

API-Referenz

Kommentare zu Aufgaben

Kommentare zu einer Aufgabe, einschließlich der Zeilen, die Klantly selbst schreibt.

Endpunkte

Kommentare zu einer Aufgabe auflisten

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

Die Kommentare zu einer Aufgabe, älteste zuerst, einschließlich der Zeilen, die Klantly selbst geschrieben hat (is_system).

Scope
tasks.read — Aufgaben, Boards und Kommentare lesen
Erforderliche Funktion
tasks

Pfadparameter

NameTypBeschreibung
task erforderlich string (uuid) Die ID (UUID) der Aufgabe.

Query-Parameter

NameTypBeschreibung
limit integer Anzahl der Ergebnisse pro Seite. von 1 bis 100 · Standard: 50
cursor string Der next_cursor oder prev_cursor aus meta der vorherigen Antwort.

Beispielanfrage

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

Antwort 200

Die Antwort ist eine Liste mit Cursor-Paginierung: data enthält die Objekte, meta die Paginierung.

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

Mögliche Fehler

Zusätzlich kann jeder Endpunkt die allgemeinen Fehler zurückgeben, etwa einen ungültigen Schlüssel oder ein erreichtes Limit. Alle Fehlercodes ansehen.

Kommentar schreiben

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

Schreibt einen Kommentar zur Aufgabe. Der zugewiesene Benutzer und der Ersteller erhalten eine Benachrichtigung. Ein Kommentar über die API hat keinen Autor.

Scope
tasks.write — Aufgaben erstellen, bearbeiten, verschieben und abschließen sowie Kommentare schreiben
Erforderliche Funktion
tasks

Senden Sie einen Idempotency-Key mit, dann erzeugt ein erneuter Versuch nach einem Timeout keinen doppelten Datensatz.

Pfadparameter

NameTypBeschreibung
task erforderlich string (uuid) Die ID (UUID) der Aufgabe.

Body (JSON)

FeldTypBeschreibung
body erforderlich string Der Text des Kommentars. höchstens 5000 Zeichen

Beispielanfrage

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

Antwort 201

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

Mögliche Fehler

Zusätzlich kann jeder Endpunkt die allgemeinen Fehler zurückgeben, etwa einen ungültigen Schlüssel oder ein erreichtes Limit. Alle Fehlercodes ansehen.

Das Objekt

Alle Felder sind immer vorhanden; ein Feld ohne Wert ist null.

FeldTypBeschreibung
object string Immer „task_comment“.
id string (uuid) Eindeutige ID (UUID).
task_id string (uuid) Die Aufgabe.
body string Der Text des Kommentars.
is_system boolean Eine Zeile, die Klantly selbst geschrieben hat, etwa „in Spalte In Arbeit verschoben“.
author object Wer den Kommentar geschrieben hat, oder null (eine Systemzeile oder ein Kommentar über die API). kann leer sein (null)
author.object string Immer „user“.
author.id string ID des Benutzers.
author.name string Name des Benutzers.
created_at string (date-time) Geschrieben am (UTC).