Documentación de la API de TaskLeef

API REST para gestionar tareas, proyectos y tableros Kanban

Última actualización:

Autenticación

La API admite dos métodos de autenticación:

1. Autenticación con clave de API (recomendado)

Generate an API key from your Settings page and include it in the X-API-Key header:

curl -H "X-API-Key: your-api-key" \
  https://taskleef.com/api/todos

2. Token de portador JWT

Para aplicaciones basadas en navegador, autentícate mediante el endpoint de inicio de sesión:

curl -X POST https://taskleef.com/api/login \
  -H "Content-Type: application/json" \
  -d '{"username": "your-username", "password": "your-password"}'

Luego incluye el token en las siguientes solicitudes:

curl -H "Authorization: Bearer your-jwt-token" \
  https://taskleef.com/api/todos

Tareas

GET/api/todos

Obtener todas las tareas del usuario autenticado.

curl -H "X-API-Key: your-api-key" \
  https://taskleef.com/api/todos
GET/api/todos/{id}

Obtener una tarea concreta por su ID.

GET/api/inbox

Obtener las tareas que no están asignadas a ningún proyecto.

POST/api/todos

Crear una tarea nueva.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "Buy groceries", "description": "Milk, eggs, bread"}' \
  https://taskleef.com/api/todos

Cuerpo de la solicitud

CampoTipoObligatorioDescripción
titlestringYesTodo title
descriptionstringNoDetailed description
dueDateISO 8601NoDue date/time
prioritystringNoLow, Medium, High, or Urgent
projectIdUUIDNoAssign to a project
PUT/api/todos/{id}

Actualizar una tarea existente.

PATCH/api/todos/{id}/complete

Alternar el estado de finalización de la tarea.

curl -X PATCH -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"isCompleted": true}' \
  https://taskleef.com/api/todos/{id}/complete
DELETE/api/todos/{id}

Eliminar una tarea.

POST/api/todos/{parentId}/subtasks

Crear una subtarea dentro de una tarea principal.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "Subtask title"}' \
  https://taskleef.com/api/todos/{parentId}/subtasks

Proyectos

GET/api/projects

Listar todos los proyectos del usuario autenticado.

POST/api/projects

Crear un proyecto nuevo.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "Work Tasks", "description": "Tasks for work"}' \
  https://taskleef.com/api/projects
GET/api/projects/{id}

Obtener un proyecto concreto con sus tareas.

PUT/api/projects/{id}

Actualizar un proyecto.

DELETE/api/projects/{id}

Eliminar un proyecto (las tareas se trasladan a la bandeja de entrada).

Tableros Kanban

GET/api/boards

Listar todos los tableros a los que el usuario tiene acceso.

POST/api/boards

Crear un tablero nuevo.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "Sprint Board", "projectId": "project-uuid"}' \
  https://taskleef.com/api/boards
GET/api/boards/{id}

Obtener un tablero concreto.

GET/api/boards/{boardId}/columns

Obtener todas las columnas de un tablero.

GET/api/boards/{boardId}/todos

Obtener todas las tareas que tienen tarjetas en este tablero.

Columnas

POST/api/boards/{boardId}/columns

Crear una columna nueva en un tablero.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "In Progress", "wipLimit": 3}' \
  https://taskleef.com/api/boards/{boardId}/columns
PUT/api/columns/{id}

Actualizar una columna (título, límite WIP, criterios de finalización).

GET/api/columns/{columnId}/cards

Obtener todas las tarjetas de una columna.

DELETE/api/columns/{id}

Eliminar una columna.

Tarjetas

Las tarjetas representan tareas en un tablero Kanban. Una tarea puede tener tarjetas en varios tableros.

POST/api/columns/{columnId}/cards

Crear una tarjeta para una tarea en una columna.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"todoId": "todo-uuid"}' \
  https://taskleef.com/api/columns/{columnId}/cards
PUT/api/cards/{id}

Actualizar una tarjeta (mover a otra columna o subcolumna).

# Move card to a different column
curl -X PUT -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"columnId": "new-column-uuid", "subColumn": "Inbox"}' \
  https://taskleef.com/api/cards/{id}

# Move card to Done subColumn
curl -X PUT -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"subColumn": "Done"}' \
  https://taskleef.com/api/cards/{id}

Valores de subcolumna

  • Inbox - Active items in the column
  • Done - Completed items within the column
  • Blocked - Items waiting on external dependencies
DELETE/api/cards/{id}

Quitar una tarjeta del tablero (no elimina la tarea).

Etiquetas

GET/api/tags

Listar todas las etiquetas del usuario autenticado.

POST/api/tags

Crear una etiqueta nueva.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"name": "urgent"}' \
  https://taskleef.com/api/tags
PUT/api/tags/{id}

Actualizar una etiqueta.

DELETE/api/tags/{id}

Eliminar una etiqueta.

Comentarios

GET/api/todos/{todoId}/comments

Obtener todos los comentarios de una tarea.

POST/api/todos/{todoId}/comments

Añadir un comentario a una tarea.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"text": "This is my comment"}' \
  https://taskleef.com/api/todos/{todoId}/comments
PUT/api/comments/{id}

Actualizar un comentario.

DELETE/api/comments/{id}

Eliminar un comentario.

Formato de respuesta

Respuestas correctas

Las solicitudes correctas devuelven JSON con los datos solicitados:

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Buy groceries",
  "description": "Milk, eggs, bread",
  "isCompleted": false,
  "createdAt": "2024-01-15T10:30:00Z"
}

Respuestas de error

Los errores devuelven los códigos de estado HTTP correspondientes:

  • 400 - Bad Request (invalid input)
  • 401 - Unauthorized (missing or invalid authentication)
  • 403 - Forbidden (insufficient permissions)
  • 404 - Not Found
  • 500 - Internal Server Error

Need help? Check your Settings to manage API keys.