API-Referenz
Kommentare zu Aufgaben
Kommentare zu einer Aufgabe, einschließlich der Zeilen, die Klantly selbst schreibt.
Endpunkte
-
GET
/tasks/{task}/commentsKommentare zu einer Aufgabe auflisten -
POST
/tasks/{task}/commentsKommentar schreiben
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
| Name | Typ | Beschreibung |
|---|---|---|
task erforderlich |
string (uuid) | Die ID (UUID) der Aufgabe. |
Query-Parameter
| Name | Typ | Beschreibung |
|---|---|---|
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 "https://app.klantly.com/api/v1/tasks/9d3f6c1e-4b2a-4c8e-9f1a-2b3c4d5e6f70/comments" \
-H "Authorization: Bearer $KLANTLY_API_KEY"$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'];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();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.
{
"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
-
403
insufficient_scope— Dieser API-Schlüssel hat keinen Zugriff auf diese Aktion. -
404
not_found— Nicht gefunden. -
422
validation_failed— Die Eingabe ist ungültig.
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
| Name | Typ | Beschreibung |
|---|---|---|
task erforderlich |
string (uuid) | Die ID (UUID) der Aufgabe. |
Body (JSON)
| Feld | Typ | Beschreibung |
|---|---|---|
body
erforderlich
|
string | Der Text des Kommentars. höchstens 5000 Zeichen |
Beispielanfrage
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."
}'$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'];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();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
{
"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
-
403
insufficient_scope— Dieser API-Schlüssel hat keinen Zugriff auf diese Aktion. -
422
validation_failed— Die Eingabe ist ungültig. -
422
unknown_field— Die Eingabe enthält ein unbekanntes Feld. -
415
unsupported_media_type— Dieses Format wird nicht unterstützt. -
413
payload_too_large— Der Body der Anfrage ist zu groß. -
404
not_found— Nicht gefunden. -
422
idempotency_key_reused— Dieser Idempotency-Key wurde bereits für eine andere Anfrage verwendet. -
409
idempotency_in_progress— Eine Anfrage mit diesem Idempotency-Key wird noch verarbeitet.
Das Objekt
Alle Felder sind immer vorhanden; ein Feld ohne Wert ist null.
| Feld | Typ | Beschreibung |
|---|---|---|
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). |