General specs
This page documents the versioning scheme, URI conventions, and request headers for the Protime API.
Versioning
The API version is embedded in the URI (.../api/v1/...). The API is frozen at a version and evolves in a backwards-compatible way.
URI conventions
https://<tenant>.myprotime.eu/connector/protimeapi/api/v1/<resource-collection>/<resource-id>| Segment | Description |
|---|---|
<tenant> |
Discriminator identifying the tenant |
<resource-collection> |
A noun, plural, e.g. clockings or access-clockings |
<resource-id> |
Typically an integer or GUID, identifying a single resource in the collection |
Naming conventions
- Resource names use kebab-casing, e.g.
access-clockings. - Resource collections are always a noun and always plural.
Request headers
User-Agent Header Required
All API requests MUST include a User-Agent header.
The User-Agent header is required for traceability, allowing Protime to track the source of API calls and provide targeted support when issues arise.
User-Agent format
Each service that consumes the Protime API is expected to send a distinct User-Agent value. This enables per-service monitoring, debugging, and support.
Format: "ServiceName/Version (Company Name)"
Example: Customer “Acme Corp” operates two services – PeopleSyncService and ActivityFetchingService.
| Service | User-Agent value |
|---|---|
| PeopleSyncService | "PeopleSyncService/v1 (Acme Corp)" |
| ActivityFetchingService | "ActivityFetchingService/v1 (Acme Corp)" |
Header reference
| Header key | Applies to | Example | Condition |
|---|---|---|---|
| Accept | Request | application/json |
|
| Authorization | Request | Bearer eyJ...Uc |
|
| Content-Type | Request/Response | application/json |
|
| Content-Length | Request/Response | 1024 |
|
| ETag | Response | "46ab44" |
|
| If-Match | Request | "46ab44" |
|
| If-None-Match | Request | "46ab44" |
|
| Location | Response | /connector/protimeapi/api/v1/clockings/76547 |
201 Created |
| Retry-After | Response | 60 |
|
| User-Agent | Request | "PeopleSyncService/v1 (Acme Corp)" |