Next Task 6.0.0: a task manager for Joomla PHP2Shell: Is Your Joomla Site Safe? What to Do Today Introducing Next Boards: Kanban project and task boards for Joomla Next Exams 6.2.0: Exam Studio, six visual question types, exam embeds and six new languages Building the Future of Joomla Extensions
NextSoftware
Next Task — Documentation

Complete Task

POST /v1/nexttask/tasks/{id}/complete

Complete or reopen a task

completed true completes the task, and a repeating task gets its next occurrence. False reopens it. Needs Tasks > Complete.

Request

POST https://your-site.example/api/index.php/v1/nexttask/tasks/{id}/complete

Parameters

Name Type In Required Description
id integer path Yes The record the call is about. An id or ids in the body is ignored.

Request body

Content type: application/json

Field Type Required Description
completed boolean Yes
{
    "completed": true
}

Responses

200 — The task, and the next occurrence if one was created.

{
    "success": true,
    "message": "string",
    "messages": "string",
    "data": {
        "task": {
            "id": 12,
            "list_id": 5,
            "parent_id": 0,
            "title": "Ship it",
            "notes": "string",
            "status": "needsAction",
            "starred": 1,
            "due": "2026-10-02 09:00:00",
            "has_time": 1,
            "recurrence": "string",
            "recurrence_next_id": 1,
            "completed_time": "string",
            "position": "string",
            "links": [
                {}
            ],
            "assigned_to": 1,
            "assignee_name": "string",
            "subtask_count": 1,
            "completed_subtask_count": 1,
            "access": "owner",
            "can_complete": true,
            "deleted_time": "string",
            "created": "string",
            "created_by": 1,
            "modified": "string",
            "modified_by": 1
        },
        "item": {
            "id": 12,
            "list_id": 5,
            "parent_id": 0,
            "title": "Ship it",
            "notes": "string",
            "status": "needsAction",
            "starred": 1,
            "due": "2026-10-02 09:00:00",
            "has_time": 1,
            "recurrence": "string",
            "recurrence_next_id": 1,
            "completed_time": "string",
            "position": "string",
            "links": [
                {}
            ],
            "assigned_to": 1,
            "assignee_name": "string",
            "subtask_count": 1,
            "completed_subtask_count": 1,
            "access": "owner",
            "can_complete": true,
            "deleted_time": "string",
            "created": "string",
            "created_by": 1,
            "modified": "string",
            "modified_by": 1
        },
        "clone": {
            "id": 12,
            "list_id": 5,
            "parent_id": 0,
            "title": "Ship it",
            "notes": "string",
            "status": "needsAction",
            "starred": 1,
            "due": "2026-10-02 09:00:00",
            "has_time": 1,
            "recurrence": "string",
            "recurrence_next_id": 1,
            "completed_time": "string",
            "position": "string",
            "links": [
                {}
            ],
            "assigned_to": 1,
            "assignee_name": "string",
            "subtask_count": 1,
            "completed_subtask_count": 1,
            "access": "owner",
            "can_complete": true,
            "deleted_time": "string",
            "created": "string",
            "created_by": 1,
            "modified": "string",
            "modified_by": 1
        },
        "removed_clone_id": 1
    }
}

Errors

Status Code When
401 No valid API token.
403 FORBIDDEN when the role or the list does not allow it, APP_DISABLED when the feature's app is off.
404 NOT_FOUND: no such record, or not one you can reach.

Examples

curl

curl -s -X POST "https://your-site.example/api/index.php/v1/nexttask/tasks/1/complete" \
  -H "X-Joomla-Token: $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"completed":true}'

PHP

<?php
$ch = curl_init('https://your-site.example/api/index.php/v1/nexttask/tasks/1/complete');

curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => [
        'X-Joomla-Token: ' . getenv('API_TOKEN'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS     => '{"completed":true}',
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

JavaScript

const API_TOKEN = process.env.API_TOKEN;

const response = await fetch("https://your-site.example/api/index.php/v1/nexttask/tasks/1/complete", {
  method: 'POST',
  headers: {
    "X-Joomla-Token": `${API_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "completed": true
  }),
});
const data = await response.json();

All Extensions