Camunda 8 API (REST)

Number of APIs: 13

🚀 Overview

The Camunda 8 REST API is a REST API designed to interact with a Camunda 8 cluster.

NOTE: Ensure you authenticate before accessing the Camunda 8 REST API.

Context paths​

For SaaS: https://${REGION}.zeebe.camunda.io:443/${CLUSTER_ID}/v2/, and for Self-Managed installations: http://localhost:8080/v2/.

Find your region and cluster id under Connection information in your client credentials (revealed when you click on your client under the API tab within your cluster).

For Self-Managed, the host and port depend on your configuration. The context path mentioned here is the default for the Zeebe component.

API Explorer​

See the interactive Camunda 8 REST API Explorer for specifications, example requests and responses, and code samples of interacting with the Camunda 8 REST API.

💪 What do you need to make it work?

To access the API endpoint, you need an access token.

Your client must send a header in each request:

Authorization: Bearer

For example, send a request using curl:

curl -XGET -H&#x27;Accept: application/json&#x27; -H&#x27;Authorization: Bearer <TOKEN>&#x27; http://localhost:8080/v2/topology

How to obtain the access token​

You must obtain a token to use the Camunda 8 REST API. When you create a Zeebe client, you get all the information needed to connect to Zeebe.

Refer to our guide on building your own client.

The following settings are needed:

NameDescriptionDefault value
client idName of your registered client-
client secretPassword for your registered client-
audiencePermission name; if not given use default valuezeebe.camunda.io
authorization server urlToken issuer server-

Send a token issue POST request to the authorization server with the following content:

{  "client_id": "<client-id>",  "client_secret": "<client-secret>",  "audience": "<audience>",  "grant_type": "client_credentials"}

Refer to the following example with curl:

curl -X POST --header &#x27;content-type: application/json&#x27; --data &#x27;{"client_id": "<client-id>", "client_secret":"<client-secret>","audience":"<audience>","grant_type":"client_credentials"}&#x27; https://<authorization server url>

If the authentication is successful, the authorization server sends back the access token, when it expires, scope, and type:

{  "access_token": "ey...",  "scope": "...",  "expires_in": 86400,  "token_type": "Bearer"}

  1. Cluster - Get cluster typology GET {{baseUrl}}/v2/topology

  2. Job - Activate jobs POST {{baseUrl}}/v2/jobs/activation

  3. Job - Fail job POST {{baseUrl}}/v2/jobs/:jobKey/failure

  4. Job - Report error for job POST {{baseUrl}}/v2/jobs/:jobKey/error

  5. User task - Complete a user task POST {{baseUrl}}/v2/user-tasks/:userTaskKey/completion

  6. User task - Assign a user task POST {{baseUrl}}/v2/user-tasks/:userTaskKey/assignment

  7. User task - Update a user task PATCH {{baseUrl}}/v2/user-tasks/:userTaskKey

  8. User task - Unassign a user task DELETE {{baseUrl}}/v2/user-tasks/:userTaskKey/assignee

  9. User task - Query user tasks (experimental) POST {{baseUrl}}/v2/user-tasks/search

  10. Decision definition - Query decision definitions (experimental) POST {{baseUrl}}/v2/decision-definitions/search