Skip to content
WorkLogx
Menu· Pagination & Filtering

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

Pagination & Filtering

All eight list endpoints (GET /v1/employees, /v1/customers, /v1/projects, /v1/tasks, /v1/forms, /v1/submissions, /v1/absences, /v1/worklogs) use cursor pagination.

#Parameters

ParameterDescription
limitPage size, 1 to 100. Default 50. Values outside this range return 400 invalid_limit.
cursorOpaque value from nextCursor of the previous page. Invalid values return 400 invalid_cursor.
updatedAfterISO 8601 timestamp, for example 2026-10-01T00:00:00Z. Only returns records with updatedAt strictly after this time.

#Response

{
  "data": [ ... ],
  "nextCursor": "MjAyNi0xMC0zMFQwOToyNzo1NVp8OGExZDRmN2MtMmI5ZS00YzNhLWE2ZjEtN2UyZDliMGM1ZjE4"
}

Records are sorted by updatedAt ascending, then by id. If there are more records, the response contains nextCursor. On the last page nextCursor is omitted. Treat the cursor as opaque: do not parse or build it yourself.

#Fetching all pages

Pass nextCursor as cursor and repeat the same filters on every page:

curl "https://api-test.worklogx.com/api/v1/customers?limit=100" \
  -H "Authorization: Bearer wlx_test_YOUR_API_KEY"

curl "https://api-test.worklogx.com/api/v1/customers?limit=100&cursor=NEXT_CURSOR" \
  -H "Authorization: Bearer wlx_test_YOUR_API_KEY"

#Incremental sync with updatedAfter

  1. On the first run, page through the full list and remember the highest updatedAt you received.
  2. On the next run, call the list with updatedAfter set to that value and page through all results.
curl "https://api-test.worklogx.com/api/v1/projects?updatedAfter=2026-10-30T09:27:55Z" \
  -H "Authorization: Bearer wlx_test_YOUR_API_KEY"

The comparison is strictly greater than. A record whose updatedAt equals the stored value is not returned again.

#Additional filters

EndpointFilters
GET /v1/tasksprojectId
GET /v1/submissionsformId, projectId, customerId, taskId
GET /v1/absencesemployeeId, status, dateFrom, dateTo
GET /v1/worklogsemployeeId, customerId, projectId, dateFrom, dateTo
  • IDs are UUIDs. An ID from another organization returns an empty page, not an error.
  • dateFrom and dateTo are dates (YYYY-MM-DD). dateFrom after dateTo returns 400 invalid_date_range. For absences, the filter matches absences whose period overlaps the range.
  • status for absences is one of PENDING, APPROVED, REJECTED, CANCELLED, REPORTED. Other values return 400 invalid_status.