Skip to content
WorkLogx
Menu· Errors

Preview: this documentation describes the WorkLogx Public API V1. The V1 rollout to the production environment is not complete yet.

Errors

Errors on /v1/ endpoints are returned as application/problem+json.

HTTP/1.1 401 Unauthorized
Content-Type: application/problem+json
X-Request-Id: 88bce6bf-cb2d-4a51-ad72-ba7d155043eb
{
  "type": "https://api.worklogx.com/problems/invalid-api-key",
  "title": "Authentication failed",
  "status": 401,
  "code": "invalid_api_key",
  "requestId": "88bce6bf-cb2d-4a51-ad72-ba7d155043eb"
}

#Fields

FieldDescription
typeURI identifying the problem type
titleShort English description. Do not parse it.
statusHTTP status code
codeStable machine-readable error code. Use this in your code.
requestIdID of the request, also sent as X-Request-Id header. Include it when contacting support.
requiredScopeOnly for insufficient_scope: the missing scope
errorsOnly for validation_failed: list of { "field", "code" }

Fields without a value are omitted.

#Error codes

StatuscodeMeaning
400validation_failedThe request body is invalid. See errors.
400idempotency_key_requiredPOST without Idempotency-Key
400invalid_limitlimit is not between 1 and 100
400invalid_cursorcursor is not a valid cursor
400invalid_date_rangedateFrom is after dateTo
400invalid_statusUnknown absence status filter
400invalid_requestThe request could not be processed
400conflictThe change conflicts with the current state of the record
400invalid_api_clientThe API client cannot perform this create request
401invalid_api_keyMissing, invalid, revoked or expired key, or key from the wrong environment
403insufficient_scopeThe API client lacks the required scope
403api_client_disabledThe API client is disabled
403public_api_unavailableThe Public API is not enabled for the organization
404employee_not_found, customer_not_found, project_not_found, task_not_found, form_not_found, submission_not_found, absence_not_found, worklog_not_foundThe record does not exist in your organization
409idempotency_key_reusedIdempotency-Key reused with a different request body
409absence_not_mutableThe absence cannot be updated in its current state
429rate_limit_exceededToo many requests, see Rate Limits
500internal_errorUnexpected error. Retry later and report the requestId if it persists.

IDs of other organizations behave like unknown IDs and return 404.

#Validation errors

{
  "type": "https://api.worklogx.com/problems/validation",
  "title": "Validation failed",
  "status": 400,
  "code": "validation_failed",
  "requestId": "3d6f0b8a-1c2e-4f5a-9b7d-6e8c0a1f2b34",
  "errors": [
    { "field": "name", "code": "required" }
  ]
}

Field error codes include required, invalid, too_long, duplicate, invalid_range, overlap, mismatch and immutable.

Known differences between backend, specification and contract are listed under Open backend findings. They are not part of the API contract.

#Retrying

  • 429: wait for the Retry-After header (seconds), then retry.
  • 500: retry with backoff. For POST, reuse the same Idempotency-Key.
  • Other 4xx: fix the request. Retrying unchanged returns the same error.