# Keka HR Requisition API

> Keka HR Requisition API on Apizie: 73 endpoints (Generate Access Token, Get all Employees, Create an Employee, Get an Employee, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/business:keka-hr/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:keka-hr`
- Category: Business
- Status: byok
- Source: https://keka.com
- Page: https://apizie.tech/api/business/keka-hr
- OpenAPI: https://apizie.tech/api/business/keka-hr/openapi.json

Here's our story, It all began with the frustration of using software that sucks. Prior to starting Keka, our core team was a 100 person business that needed an easy to use software for managing employees. We looked…

## Endpoints

### Generate Access Token
`POST https://apizie.tech/v1/business:keka-hr/authentication-get-access-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| body | object | no | Form fields as a JSON object |

### Get all Employees
`GET https://apizie.tech/v1/business:keka-hr/employees-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| employeeIds | string | no | Comma separated list of one or more Employee ids you'd like to filter on. |
| employeeNumbers | string | no | Comma separated list of one or more Employee numbers you'd like to filter on. |
| employmentStatus | string | no | Comma separated list of one or more Employment Status you'd like to filter on, allowed values are Working, Relieved. |
| inProbation | boolean | no | Fetches employees who are in probation. The allowed value is true or false. |
| inNoticePeriod | boolean | no | Fetches employees who are in notice period. The allowed value is true or false. |
| lastModified | string | no | Date/time when this time off request was last modified, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Create an Employee
`POST https://apizie.tech/v1/business:keka-hr/employees-create-employee` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| body | object | no | JSON request body |

### Get an Employee
`GET https://apizie.tech/v1/business:keka-hr/employees-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| id | string | yes | The identifier. |

### Update Employee personal details
`POST https://apizie.tech/v1/business:keka-hr/employees-update-personal-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| id | string | yes | The identifier. |
| body | object | no | JSON request body |

### Update employee job details
`POST https://apizie.tech/v1/business:keka-hr/employees-update-job-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| id | string | yes | The identifier. |
| body | object | no | JSON request body |

### Get all update fields
`GET https://apizie.tech/v1/business:keka-hr/employees-get-all-update-fields` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Groups
`GET https://apizie.tech/v1/business:keka-hr/groups-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| groupTypeIds | string | no | Comma separated list of one or more Group Type Ids you’d like to filter on. |
| systemGroupTypes | string | no | Comma separated list of one or more System Group Type you’d like to filter on. |
| lastModified | string | no | The Last Modified. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Group Types
`GET https://apizie.tech/v1/business:keka-hr/groups-get-all-group-types` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all departments
`GET https://apizie.tech/v1/business:keka-hr/departments-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| departmentIds | string | no |  |
| lastModified | string | no | The Last Modified Date. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Locations
`GET https://apizie.tech/v1/business:keka-hr/locations-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| lastModified | string | no | The Last Modified. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all jobtitles
`GET https://apizie.tech/v1/business:keka-hr/job-title-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| lastModified | string | no | The Last Modified. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all currencies
`GET https://apizie.tech/v1/business:keka-hr/currency-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all noticeperiods
`GET https://apizie.tech/v1/business:keka-hr/notice-period-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| noticePeriodIds | string | no | The notice period ids. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Leave Types
`GET https://apizie.tech/v1/business:keka-hr/leave-types-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| leaveTypeIds | string | no | Comma separated list of one or more leave type identifiers you'd like to filter on.. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Leave balances
`GET https://apizie.tech/v1/business:keka-hr/leave-balance-get-all-balances` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| employeeIds | string | no | The employee ids. |
| leaveTypeIds | string | no | The leave type ids. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Leave Requests
`GET https://apizie.tech/v1/business:keka-hr/leave-requests-get-all-between-dates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| employeeIds | string | no | Comma separated list of one or more Employee ids you'd like to filter on. |
| from | string | no | From date. |
| to | string | no | To date. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Create an Leave Request
`POST https://apizie.tech/v1/business:keka-hr/leave-requests-create-request-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| body | object | no | JSON request body |

### Get all Attendance Records
`GET https://apizie.tech/v1/business:keka-hr/attendance-get-records-in-range` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| employeeIds | string | no | Comma separated list of one or more Employee ids you'd like to filter on. |
| from | string | no | Date from records to retrieve. If not specified defaults to `to - 30` days. |
| to | string | no | Date to records can be retrieved. If not specified defaults to `today`. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all captureschemes
`GET https://apizie.tech/v1/business:keka-hr/attendance-capture-scheme-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| captureschemeIds | string | no | The capturescheme ids. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all holidays Calendar
`GET https://apizie.tech/v1/business:keka-hr/holiday-calendar-get-all-holidays-calendar` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| holidaysCalendarIds | string | no | The holidaysCalendar ids. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Salary Components
`GET https://apizie.tech/v1/business:keka-hr/salary-components-get-all-components` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |

### Get all Pay Groups
`GET https://apizie.tech/v1/business:keka-hr/pay-groups-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Pay Cycles
`GET https://apizie.tech/v1/business:keka-hr/pay-cycles-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| payGroupId | string | yes | The Pay Group Id |
| runStatus | string | no | Comma separated list of one or more run Status you'd like to filter on, allowed values are Pending, Finalized, Partial. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get Pay Register
`GET https://apizie.tech/v1/business:keka-hr/pay-cycles-get-pay-register` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| payGroupId | string | yes | The Pay Group Id |
| payCycleId | string | yes | The Pay cycle Id |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Pay Batches
`GET https://apizie.tech/v1/business:keka-hr/pay-cycles-get-pay-batches` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| payGroupId | string | yes | The Pay Group Id |
| payCycleId | string | yes | The Pay cycle Id |
| status | string | no | Comma separated list of one or more payment Status you'd like to filter on, allowed values are UnPaid, Paid. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Batch Payments
`GET https://apizie.tech/v1/business:keka-hr/pay-cycles-get-batch-payments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| payGroupId | string | yes | The Pay Group Id |
| payCycleId | string | yes | The Pay cycle Id |
| payBatchId | string | yes | The Pay Batch Id |
| status | string | no | Comma separated list of one or more payment Status you'd like to filter on, allowed values are UnPaid, Paid. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Update the Payments status
`POST https://apizie.tech/v1/business:keka-hr/pay-cycles-update-payments-status` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| payGroupId | string | yes | The Pay Group Id |
| payCycleId | string | yes | The Pay cycle Id |
| payBatchId | string | yes | The Pay Batch Id |
| body | object | no | JSON request body |

### Get all Pay Grades
`GET https://apizie.tech/v1/business:keka-hr/pay-grades-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| payGradeIds | string | no | The paygrade ids. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Pay Bands
`GET https://apizie.tech/v1/business:keka-hr/pay-bands-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| payBandIds | string | no | The payband ids. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all clients
`GET https://apizie.tech/v1/business:keka-hr/clients-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| clientIds | string | no | Comma separated list of one or more employee ids you'd like to filter on. |
| lastModified | string | no | Date/time when this time off request was last modified, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Create a Client
`POST https://apizie.tech/v1/business:keka-hr/clients-create-client-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| body | object | no | JSON request body |

### Get a client
`GET https://apizie.tech/v1/business:keka-hr/clients-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| id | string | yes | The identifier. |

### Update a Client
`POST https://apizie.tech/v1/business:keka-hr/clients-update-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| id | string | yes | The identifier. |
| body | object | no | JSON request body |

### Get project phases.
`GET https://apizie.tech/v1/business:keka-hr/project-phases-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| projectId | string | yes | The project identifier. |
| lastModified | string | no | Date/time when this time off request was last modified, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Create a Project Phase
`POST https://apizie.tech/v1/business:keka-hr/project-phases-create-phase-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| projectId | string | yes | The project identifier. |
| phaseName | string | no | Name of the phase. |

### Get all projects.
`GET https://apizie.tech/v1/business:keka-hr/projects-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| clientIds | string | no | Comma separated list of one or more employee ids you'd like to filter on. |
| lastModified | string | no | Date/time when this time off request was last modified, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Create a Project
`POST https://apizie.tech/v1/business:keka-hr/projects-create-project-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| body | object | no | JSON request body |

### Get a project
`GET https://apizie.tech/v1/business:keka-hr/projects-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| id | string | yes | The identifier. |

### Update a Project
`POST https://apizie.tech/v1/business:keka-hr/projects-update-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| id | string | yes | The identifier. |
| body | object | no | JSON request body |

### Get a project allocations
`GET https://apizie.tech/v1/business:keka-hr/projects-get-allocations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| id | string | yes | The identifier. |
| lastModified | string | no | The last modified. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get project timesheet entries.
`GET https://apizie.tech/v1/business:keka-hr/projects-get-timesheet-entries-between-dates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| id | string | yes | The project identifier. |
| from | string | no | Date from records to retrieve. If not specified defaults to `to - 30` days. |
| to | string | no | Date to records can be retrieved. If not specified defaults to `today`. |
| employeeIds | string | no | Comma separated list of one or more Employee ids you'd like to filter on. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get project tasks.
`GET https://apizie.tech/v1/business:keka-hr/tasks-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| projectId | string | yes | The project identifier. |
| lastModified | string | no | Date/time when this time off request was last modified, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Create a task
`POST https://apizie.tech/v1/business:keka-hr/tasks-create-task-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| projectId | string | yes | The project identifier. |
| body | object | no | JSON request body |

### Update a task
`POST https://apizie.tech/v1/business:keka-hr/tasks-update-task` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| projectId | string | yes | The project identifier. |
| taskId | string | yes | The task identifier. |
| body | object | no | JSON request body |

### Get project task time entries.
`GET https://apizie.tech/v1/business:keka-hr/tasks-list-time-entries-between-dates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| projectId | string | yes | The project identifier. |
| taskId | string | yes | The task identifier. |
| from | string | no | Date from records to retrieve. If not specified defaults to `to - 30` days. |
| to | string | no | Date to records can be retrieved. If not specified defaults to `today`. |
| employeeIds | string | no | Comma separated list of one or more Employee ids you'd like to filter on. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get project timesheet entries.
`GET https://apizie.tech/v1/business:keka-hr/timesheet-entries-get-between-dates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| from | string | no | Date from records to retrieve. If not specified defaults to `to - 30` days. |
| to | string | no | Date to records can be retrieved. If not specified defaults to `today`. |
| employeeIds | string | no | Comma separated list of one or more Employee ids you'd like to filter on. |
| projectIds | string | no | Comma separated list of one or more project ids you'd like to filter on. |
| taskIds | string | no | Comma separated list of one or more task ids you'd like to filter on. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Gets time frame list.
`GET https://apizie.tech/v1/business:keka-hr/time-frames-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| timeFrameIds | string | no | Comma separated list of one or more Time Frame ids you'd like to filter on. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Gets goal list.
`GET https://apizie.tech/v1/business:keka-hr/goal-list-with-hierarchy` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| goalIds | string | no | Comma separated list of one or more Goal ids you'd like to filter on. |
| timeFrameIds | string | no | Comma separated list of one or more Time Frame ids you'd like to filter on. |
| employeeIds | string | no | Comma separated list of one or more Employee ids you'd like to filter on. |
| from | string | no | Date/time when goal time period will start, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh). If not specified defaults `to` - 60 days. |
| to | string | no | Date/time when goal time period will end, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh). If not specified defaults `from` + 60 days. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Update goal progress
`POST https://apizie.tech/v1/business:keka-hr/goal-update-progress` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| goalId | string | yes | The goal identifier. |
| body | object | no | JSON request body |

### Gets badge list.
`GET https://apizie.tech/v1/business:keka-hr/badge-get-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| badgeIds | string | no | Comma separated list of one or more Badge ids you'd like to filter on. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Gets praise list.
`GET https://apizie.tech/v1/business:keka-hr/praise-list-employees-praises` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| praiseIds | string | no | Comma separated list of one or more praise ids you'd like to filter on. |
| from | string | no | Date/time from records to retrieve, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh). If not specified defaults to `to - 30` days. |
| to | string | no | Date/time to records to retrieve, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh). If not specified defaults to `today`. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Add Praise
`POST https://apizie.tech/v1/business:keka-hr/praise-create-praise-identifier` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| body | object | no | JSON request body |

### Get all jobs
`GET https://apizie.tech/v1/business:keka-hr/jobs-get-all-published-jobs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| lastModified | string | no |  |
| JobStatus | integer | no |  |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get application fields
`GET https://apizie.tech/v1/business:keka-hr/jobs-get-application-fields` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| jobId | string | yes |  |

### Get job candidates
`GET https://apizie.tech/v1/business:keka-hr/jobs-get-candidates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| jobId | string | yes |  |
| isArchived | boolean | no |  |
| lastModified | string | no |  |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Updated a candidate
`POST https://apizie.tech/v1/business:keka-hr/jobs-update-candidate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| candidateId | string | yes |  |
| jobId | string | yes |  |
| body | object | yes | JSON request body |

### Adds candidate note
`POST https://apizie.tech/v1/business:keka-hr/jobs-add-candidate-note` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| candidateId | string | yes |  |
| jobId | string | yes |  |
| body | object | no | JSON request body |

### Post a job candidate
`POST https://apizie.tech/v1/business:keka-hr/jobs-post-candidate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| jobId | string | yes |  |
| body | object | yes | JSON request body |

### Get interview scheduled and completed for a job candidate
`GET https://apizie.tech/v1/business:keka-hr/jobs-get-candidate-interviews` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| candidateId | string | yes |  |
| jobId | string | yes |  |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get scorecard of a specified candidate for a job candidate
`GET https://apizie.tech/v1/business:keka-hr/jobs-get-candidate-scorecards` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| candidateId | string | yes |  |
| jobId | string | yes |  |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Talent pools
`GET https://apizie.tech/v1/business:keka-hr/talent-pool-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| lastModified | string | no |  |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get Talent pool application fields
`GET https://apizie.tech/v1/business:keka-hr/talent-pool-get-application-fields` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| talentPoolId | string | yes |  |

### Get Talent pool candidates
`GET https://apizie.tech/v1/business:keka-hr/talent-pool-get-candidates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| talentPoolId | string | yes |  |
| lastModified | string | no |  |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Post a candidate to a talent pool
`POST https://apizie.tech/v1/business:keka-hr/talent-pool-add-candidate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| talentPoolId | string | yes |  |
| body | object | yes | JSON request body |

### Get all Expense Categories
`GET https://apizie.tech/v1/business:keka-hr/expense-category-get-all-categories` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| expenseCategoryIds | string | no | Comma separated list of one or more expense categories identifiers you'd like to filter on. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Expense Claims
`GET https://apizie.tech/v1/business:keka-hr/expense-get-all-claims` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all expensepolicies
`GET https://apizie.tech/v1/business:keka-hr/expense-policy-list-all-expense-policies` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| expensepolicyIds | string | no | The expensepolicy ids. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Assets
`GET https://apizie.tech/v1/business:keka-hr/asset-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| assetIds | string | no | The asset ids. |
| employeeIds | string | no | The employee ids. |
| assetStatus | string | no | The asset status. |
| lastModified | string | no | The last modified. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Asset Types
`GET https://apizie.tech/v1/business:keka-hr/asset-type-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| assetTypeIds | string | no | The asset type ids. |
| lastModified | string | no | The last modified. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Asset Categories
`GET https://apizie.tech/v1/business:keka-hr/asset-category-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| assetCategoryIds | string | no | The asset category ids. |
| lastModified | string | no | The last modified. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Asset Conditions
`GET https://apizie.tech/v1/business:keka-hr/asset-condition-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| assetConditionIds | string | no | The asset condition ids. |
| lastModified | string | no | The last modified. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

### Get all Requisition Requests
`GET https://apizie.tech/v1/business:keka-hr/requisition-request-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| environment | string | no | Part of the server address: https://{company}.{environment}.com/api/v1 |
| company | string | yes | Part of the server address: https://{company}.{environment}.com/api/v1 |
| requisitionRequestIds | string | no | The requisition request ids. |
| status | string | no | The status. |
| lastModified | string | no | The last modified. |
| pageNumber | integer | no |  |
| pageSize | integer | no | Represents how many results you'd like to retrieve per request (page). Default is 100. Max is 200 |

## Example
```
curl "https://apizie.tech/v1/business:keka-hr/authentication-get-access-token" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Keka HR Requisition API?
Create a free Apizie key, then send POST https://apizie.tech/v1/business:keka-hr/authentication-get-access-token with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Keka HR Requisition API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Keka HR Requisition itself also needs your own key from {company}.{environment}.com.

### Can AI agents use the Keka HR Requisition API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key business:keka-hr.

### What is the status of the Keka HR Requisition API?
Needs your own provider key (bring your own key)
