Skip to main content
Celoxis API v2
LiveUpdated 2 Sep 2026

Common operations

Upserting Records

Create or update a project, task or Workflow App record by external key.

Upsert by external key

POST/api/v2/{entity}/upsertCreate or update by external key
PUT/api/v2/{entity}/upsertCreate or update by external key

Supported entities are projects, tasks and apps.

Provide a non-empty externalKey (your system's id). Do not send id. Celoxis finds a record with that externalKey in your company; if found it updates, otherwise it creates.

The response includes the usual entity JSON plus action (created or updated) and success: true. externalKey should be unique per company per entity type. Multiple matches return HTTP 409.

To create or update a task:

bash
Example
curl -g -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'

To create or update a project:

bash
Example
curl -g -X PUT \
  -H 'Content-Type: application/json' \
  -H 'Authorization: bearer YourTokenHere' \
  -d '{
    "externalKey": "ERP-P-1001",
    "name": "Website Redesign",
    "workspace": 12345
  }' \
  'https://app.celoxis.com/psa/api/v2/projects/upsert'

To create or update a Workflow App record:

bash
Example
curl -g -X POST \
  -H 'Content-Type: application/json' \
  -H 'Authorization: bearer YourTokenHere' \
  -d '{
    "externalKey": "ERP-A-1001",
    "app": "Bug",
    "name": "Investigate login issue",
    "project": "ERP-P-1001"
  }' \
  'https://app.celoxis.com/psa/api/v2/apps/upsert'