Skip to main content
Celoxis API v2
LiveUpdated 2 Sep 2026

Entity

Tasks

Retrieve and manage tasks, predecessors, project moves, upserts, clones and notification behaviour.

Endpoints

GET/api/v2/tasksRetrieve a list
GET/api/v2/tasks/{id}Retrieve one record
POST/api/v2/tasksCreate records
PATCH/api/v2/tasksUpdate records
DELETE/api/v2/tasks/{id}Delete a record

Predecessors

GET/api/v2/tasks/{id}/predecessorsRetrieve all predecessors of a task

Move tasks

POST/api/v2/tasks/moveMove one or several tasks to another project

The response is a JSON object representing the move operation result. Send tasks as an array of task IDs and project as the destination project ID. Only tasks and project should be present in the request.

To move tasks whose ids are 99259, 99260 and 99261 to a project whose id is 12345:

bash
Example
curl -X POST \
  -H 'Content-Type: application/json' \
  -H 'Authorization: bearer YourTokenHere' \
  -d '{
    "tasks": [
      99259,
      99260,
      99261
    ],
    "project": 12345
  }' \
  'https://app.celoxis.com/psa/api/v2/tasks/move'

Disable notifications

PATCH/api/v2/tasks?notifications=falseUpdate a task without email or in-app notifications

The response is a JSON object with the updated details of the task. Adding ?notifications=false ensures that no email or in-app notifications are triggered for the update. Include id and only the properties that need to change.

To update a task whose id is 99266 and set its actualPercentComplete to 64 without sending notifications:

bash
Example
curl -X PATCH \
  -H 'Content-Type: application/json' \
  -H 'Authorization: bearer YourTokenHere' \
  -d '{
    "id": 99266,
    "actualPercentComplete": 64
  }' \
  'https://app.celoxis.com/psa/api/v2/tasks?notifications=false'

Upsert a task

POST/api/v2/tasks/upsertCreate or update by external key
PUT/api/v2/tasks/upsertCreate or update by external key

Provide a non-empty externalKey (your system's id), omit id, and identify the project by ID, name or external key as supported. Celoxis finds a task with that externalKey in your company; if found it updates, otherwise it creates. The response includes the usual task JSON plus action (created or updated) and success: true. Multiple matches return HTTP 409.

bash
Example
curl -X POST \
  -H 'Content-Type: application/json' \
  -H 'Authorization: bearer YourTokenHere' \
  -d '{
    "externalKey": "ERP-T-9876",
    "name": "Design review",
    "project": "ERP-P-1001"
  }' \
  'https://app.celoxis.com/psa/api/v2/tasks/upsert'

Clone a task

POST/api/v2/tasks/{id}/cloneCreate a task from an existing task

Send a JSON object in the request body with only the properties that should differ from the source task. The response is { data: {created-object} }.