KalHR logo

API reference

Your key

Check which key you are using, which organisation it acts for, and what it is allowed to do.

Get the current key

GET/v1/integrations/api-keys/meKey needs Any key

Use it to check a key after setting it up, or to log which access a system has when it starts.

GET v1/integrations/api-keys/me
curl "https://api.kalhr.com/v1/integrations/api-keys/me" \
  -H "Authorization: Bearer $KALHR_API_KEY"

Response

{
  "isSuccessful": true,
  "code": "00",
  "message": "Success",
  "data": {
    "apiKeyId": "3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90",
    "name": "Accounting system",
    "organizationId": "8c1d0e2f-4a6b-4c8d-9e0f-1a2b3c4d5e6f",
    "permissions": ["GetDepartment", "GetEmployee", "GetEmployeeSalary", "GetPayrollSchedule", "GetPayrollScheduleById"]
  }
}
FieldTypeDescription
apiKeyIduuidThe key's id. This identifies the key; it isn't the key.
namestringThe key's name in KalHR
organizationIduuidThe organisation the key acts for
permissionsstring arrayWhat the key may do, by permission name, sorted

Permissions

The access chosen when creating a key is a bundle of permissions. The ones the public API checks:

Access on the keyPermissions the API checks
Employee Management: ViewGetEmployee (employees and companies), GetDepartment
Leave: ViewGetLeaveRequests, GetLeaveTypes, GetLeaveBalance
Attendance: ViewGetEmployeeAttendanceById (records, reports, holidays), ViewAttendanceExceptions
Payroll: ViewGetPayrollSchedule, GetPayrollScheduleById, GetEmployeeSalary (salaries in employee records)

A level includes other permissions too, for parts of KalHR the API doesn't reach yet.

A key that is missing, revoked or expired gets 401 with the reason. See Errors.

Last updated October 19, 2026

Missing an endpoint or an event?

Tell us what you're building. The API grows from what integrators ask for.

See KalHR in action - 30 min demo