Limits & security
Rate limits, roles, filtered fields and punch-clock controls.
Public Integration API v1 is intentionally limited — enough for payroll, reporting, and punch hardware, without exposing Curio’s admin surface.
Rate limiting
| Tier | Limit (planned) |
|---|---|
| Sandbox | 60 requests / minute |
| Production | 300 requests / minute per credential |
| Punch endpoints | Stricter burst limits on POST …/punch |
On 429 Too Many Requests, retry with exponential backoff.
Roles by endpoint (HR API)
| Endpoint group | Minimum role |
|---|---|
| Time entries (read) | employee (own) / manager+ (others) |
| Employees (read) | manager, owner, accountant |
| Departments | owner, manager, accountant |
| Payroll preview | owner, accountant |
| Schedules, time off | employee+ within company |
employee tokens only see their own data where enforced.
Module gates
Company features can be disabled. API may return empty lists or 403:
| Flag | Effect |
|---|---|
enableProjects |
Projects unavailable |
enableShifts |
Schedules unavailable |
enableTimeOff |
Time off / absences unavailable |
Public employee response (HR API)
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"email": "employee@company.example",
"isActive": true,
"employeeProfile": {
"displayName": "Jane Doe",
"jobTitle": "Operator",
"departments": [{ "id": "…", "name": "Operations" }],
"employmentStartDate": "2024-01-15",
"employmentEndDate": null,
"employmentRatio": 100
}
}
Excluded from public HR API
| Field | Reason |
|---|---|
nationalId |
PII — separate payroll agreement only |
kioskPin |
Security |
phone, address, emergency contacts |
PII |
aiCompanionMemory |
Internal |
can* permission flags |
Internal RBAC |
hourlyCost, salaryType |
Sensitive compensation |
assignedRuleId / rule JSON |
Use dynamicPayLines instead |
Public timesheet response
GET …/time-entries includes entries and totals. Not included:
appliedRuleDefinitionJson- Punch photos / signatures (unless separately agreed)
- Raw GPS on read API (GPS may be stored on punch; not exposed in v1 read)
Payroll preview is read-only
POST …/payroll/export/preview calculates lines without calling Payday/DK/Regla. v1 does not expose:
POST …/payroll/export/paydayPOST …/payroll/export/dkplus- Other export triggers
Customers run export from Curio Time settings after configuring integrations.
Punch clock security
| Control | Description |
|---|---|
| Password punch | Verifies employee web password per punch |
| Kiosk PIN | 4-digit PIN + registered device token |
| IP rules | Company may restrict punch by IP (enforced server-side) |
| GPS | Optional recording; profile may require GPS without blocking punch |
| Rate limit | Abuse protection on punch POST |
Partners must not log or display employee passwords or PINs.
Audit & GDPR
- Integration and punch actions are logged (timestamp, endpoint, company)
- Collect only data you need; delete when integration ends
- Contact Curio Time to revoke credentials