Comentarios Kanban
Listá y creá comentarios en hilo sobre tarjetas Kanban para la colaboración en equipo.
Requisitos previos
Todos los endpoints de esta página requieren un token JWT válido, una clave de API y el encabezado tenant. Consultá Autenticación para más detalles.
Listar comentarios
Recuperá una lista paginada de comentarios de una tarjeta específica, ordenados por fecha de creación (más recientes primero).
GET
/apidev/v1/kanban/cards/{id}/commentsPermisoAPICLI_KANBAN_READ
Límite de solicitudes30 req/min (ventana deslizante)
Caché15s
Encabezados de la solicitud
Every request to a protected endpoint requires these headers:
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer token obtained from the Login endpoint. Format: Bearer <token> |
X-API-Key | Yes | Company integration key provided during onboarding. Format: gtk_xxx... |
tenant | Yes | Your assigned tenant domain (default: geotareas.com) — always send your assigned tenant |
Content-Type | Conditional | application/json — required for POST and PUT requests |
Parámetros de ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Identificador único de la tarjeta (BigInt) |
Parámetros de consulta
| Parámetro | Tipo | Obligatorio | Por defecto | Restricciones | Descripción |
|---|---|---|---|---|---|
limit | integer | No | 25 | Mín 1, Máx 100 | Registros por página |
offset | integer | No | 0 | ≥ 0 | Registros a omitir |
Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único del comentario (BigInt) |
text | string | Contenido de texto del comentario |
author | object | {id, name} del autor |
mentions | array | [{id, name}] usuarios mencionados |
created_at | string | Marca de tiempo ISO 8601 |
updated_at | string | Marca de tiempo ISO 8601 |
Ejemplos de código
- cURL
- JavaScript
- Python
curl -s -X GET "$TENANT_URL/apidev/v1/kanban/cards/4200000000000001/comments?limit=10" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"
const response = await fetch(
`${TENANT_URL}/apidev/v1/kanban/cards/4200000000000001/comments?limit=10`,
{
headers: {
"Authorization": `Bearer ${TOKEN}`,
"X-API-Key": APIKEY,
"tenant": TENANT,
},
}
);
const { data, meta } = await response.json();
console.log(`Fetched ${data.length} of ${meta.total} comments`);
import requests
response = requests.get(
f"{TENANT_URL}/apidev/v1/kanban/cards/4200000000000001/comments",
headers={
"Authorization": f"Bearer {TOKEN}",
"X-API-Key": APIKEY,
"tenant": TENANT,
},
params={"limit": 10},
)
result = response.json()
for comment in result["data"]:
print(f"{comment['author']['name']}: {comment['text']}")
Ejemplo de respuesta
{
"success": true,
"data": [
{
"id": "5500000000000001",
"text": "Device installed successfully. Waiting for signal confirmation.",
"author": {"id": "1100000000000001", "name": "Carlos Mendoza"},
"mentions": [],
"created_at": "2026-03-18T15:30:00",
"updated_at": "2026-03-18T15:30:00"
},
{
"id": "5500000000000002",
"text": "Please prioritize this — client escalated. @Maria please review.",
"author": {"id": "1100000000000002", "name": "Admin User"},
"mentions": [{"id": "1100000000000003", "name": "Maria Lopez"}],
"created_at": "2026-03-17T10:00:00",
"updated_at": "2026-03-17T10:00:00"
}
],
"meta": {
"total": 3,
"limit": 10,
"offset": 0
}
}
Encabezados del límite de solicitudes
Every response includes rate limit information in the headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum number of requests allowed in the current window |
X-RateLimit-Remaining | Number of requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp (seconds) when the current window resets |
Retry-After | Seconds to wait before retrying (only present on 429 responses) |
X-Request-Id | Unique request identifier for debugging and support tickets |
Crear comentario
Agregá un nuevo comentario a una tarjeta. Devuelve HTTP 201.
POST
/apidev/v1/kanban/cards/{id}/commentsPermisoAPICLI_KANBAN_WRITE
Límite de solicitudes10 req/min (ventana deslizante)
Parámetros de ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Identificador único de la tarjeta (BigInt) |
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Restricciones | Descripción |
|---|---|---|---|---|
text | string | Sí | Longitud máxima 5000 | Contenido de texto del comentario |
Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único del comentario (BigInt) |
text | string | Contenido de texto del comentario |
author | object | {id, name} del autor (del JWT) |
created_at | string | Marca de tiempo ISO 8601 |
Ejemplos de código
- cURL
- JavaScript
- Python
curl -s -X POST "$TENANT_URL/apidev/v1/kanban/cards/4200000000000001/comments" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
-H "Content-Type: application/json" \
-d '{
"text": "Signal confirmed. Closing this card."
}'
const response = await fetch(
`${TENANT_URL}/apidev/v1/kanban/cards/4200000000000001/comments`,
{
method: "POST",
headers: {
"Authorization": `Bearer ${TOKEN}`,
"X-API-Key": APIKEY,
"tenant": TENANT,
"Content-Type": "application/json",
},
body: JSON.stringify({
text: "Signal confirmed. Closing this card.",
}),
}
);
const { data } = await response.json();
console.log(`Comment ${data.id} created by ${data.author.name}`);
import requests
response = requests.post(
f"{TENANT_URL}/apidev/v1/kanban/cards/4200000000000001/comments",
headers={
"Authorization": f"Bearer {TOKEN}",
"X-API-Key": APIKEY,
"tenant": TENANT,
},
json={
"text": "Signal confirmed. Closing this card.",
},
)
comment = response.json()["data"]
print(f"Comment {comment['id']} created by {comment['author']['name']}")
Ejemplo de respuesta
{
"success": true,
"data": {
"id": "5500000000000003",
"text": "Signal confirmed. Closing this card.",
"author": {"id": "1100000000000001", "name": "Carlos Mendoza"},
"created_at": "2026-03-19T17:00:00"
},
"meta": {}
}
Errores
| Código | HTTP | Descripción |
|---|---|---|
VALIDATION_ERROR | 400 | Parámetros inválidos |
UNAUTHORIZED | 401 | tenant / Authorization / X-API-Key ausente, inválido o expirado |
FORBIDDEN | 403 | El usuario no tiene el permiso requerido |
NOT_FOUND | 404 | Recurso no encontrado |
RATE_LIMITED | 429 | Se superó el límite de solicitudes |
INTERNAL_ERROR | 500 | Error inesperado del servidor |