The Onwork public API is a tenant-scoped REST API: every request is authenticated with an API key that belongs to one company, and can only ever see that company's data.
Base URL:
https://<your-onwork-host>/api/public/v1
API keys are created by a company administrator inside Onwork:
Settings → Company → API keys → New API key
Pick a name, an optional expiration and the scopes the integration needs
(e.g. users:read). The full key — format owk_<key_id>_<secret> — is shown
once at creation time. Store it in a secret manager; if you lose it,
revoke it and create a new one.
The Public API module must be active for the company (it is active by default; an administrator can disable it).
curl https://<your-onwork-host>/api/public/v1/users \
-H "X-Api-Key: owk_your_key_id_your_secret"
A successful response:
{
"data": [
{
"id": "65f000000000000000000001",
"email": "[email protected]",
"first_name": "Mario",
"last_name": "Rossi",
"active": true,
"language": "it",
"created_at": "2026-01-10T09:00:00Z",
"updated_at": "2026-06-01T14:30:00Z"
}
],
"pagination": { "page": 1, "per_page": 25, "total": 1, "total_pages": 1 }
}
Every non-2xx response uses the same machine-readable envelope:
{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key",
"status": 401
}
}
See the Errors guide for the full code catalog.