curl -X PATCH https://kliio.app/api/v1/tasks/task-uuid-... \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "status": "done" }'
const res = await fetch('https://kliio.app/api/v1/tasks/task-uuid-...', {
method: 'PATCH',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ status: 'done' })
})
const { data } = await res.json()
{
"success": true,
"data": {
"id": "task-uuid-...",
"name": "Design homepage mockup",
"status": "done",
"estimated_hours": 8,
"billable": true,
"rate": 120,
"total_seconds": 28800,
"phase_id": "phase-uuid-...",
"created_at": "2025-03-20T09:00:00.000Z"
}
}
{ "error": "No valid fields to update" }
{ "error": "Task not found or access denied" }
Tasks
Update Task
Updates one or more fields on an existing task.
PATCH
/
api
/
v1
/
tasks
/
{id}
curl -X PATCH https://kliio.app/api/v1/tasks/task-uuid-... \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "status": "done" }'
const res = await fetch('https://kliio.app/api/v1/tasks/task-uuid-...', {
method: 'PATCH',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ status: 'done' })
})
const { data } = await res.json()
{
"success": true,
"data": {
"id": "task-uuid-...",
"name": "Design homepage mockup",
"status": "done",
"estimated_hours": 8,
"billable": true,
"rate": 120,
"total_seconds": 28800,
"phase_id": "phase-uuid-...",
"created_at": "2025-03-20T09:00:00.000Z"
}
}
{ "error": "No valid fields to update" }
{ "error": "Task not found or access denied" }
Headers
string
required
Bearer YOUR_API_KEYPath Parameters
string
required
UUID of the task to update.
Body
Send only the fields you want to change. At least one field is required.string
Updated task name.
string
Updated description.
string
New status. One of:
todo, in_progress, done.number
Updated estimated hours.
boolean
Updated billable flag.
number
Updated hourly rate.
string
UUID of a project phase to assign the task to, or
null to unassign.Response
boolean
true on update.object
The updated task object.
curl -X PATCH https://kliio.app/api/v1/tasks/task-uuid-... \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "status": "done" }'
const res = await fetch('https://kliio.app/api/v1/tasks/task-uuid-...', {
method: 'PATCH',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ status: 'done' })
})
const { data } = await res.json()
{
"success": true,
"data": {
"id": "task-uuid-...",
"name": "Design homepage mockup",
"status": "done",
"estimated_hours": 8,
"billable": true,
"rate": 120,
"total_seconds": 28800,
"phase_id": "phase-uuid-...",
"created_at": "2025-03-20T09:00:00.000Z"
}
}
{ "error": "No valid fields to update" }
{ "error": "Task not found or access denied" }

