Skip to content


The API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encode request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

If you want to call the API endpoints, you need to have a account with your own tenant set up. You can do that here Your tenant is name of your instance. (e.g., tenant=demo)


The API service is authenticated through JWT Bearer Token which can be generated for an existing user. The request has to contain the necessary headers for a successful processing:

  • header X-TenantID which defines the name of the environment, your tenant
  • header Content-Type is usually set as "application/json"
  • header Zone defines the actual timezone of user

The application runs on a microservice architecture and currently contains a number of domains, divided according to the modules.


The API uses JWT Bearer Token to authenticate requests. You can create token calling our permissions service.

To get bearer token you need to call production permissions service. You need to change tenant, email and password values accordingly.

curl --location '' \
--header 'X-TenantID: <tenant>' \
--header 'Zone: GMT' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "<email>",
"password": "<password>"


If you own the cloud version of the application, it is possible to call the endpoints through the following domains:

  • Projects and Documents module:

  • Permissions and Users module:

  • Timesheet module:

If you own the on-premise version of the application, you will need to create DNS logs for the particular microservices, in order to be able to call the endpoints.

API Swagger

Can be fount at API swagger.