---
title: "Comprehensive Guide to Keka API Directory"
description: "All you need to know about Keka HR APIs"
source_url: "https://www.getknit.dev/blog/comprehensive-guide-to-keka-api-directory"
page_type: "blog"
---

_This is an educational blog post from Knit's blog: “Comprehensive Guide to Keka API Directory”._

# Comprehensive Guide to Keka API Directory

Keka is a leading human resources management system that enables organizations to seamlessly manage diverse aspects of their human resource processes, including recruitment and onboarding, attendance and time management, payroll, expense and performance management. With OAuth authentication, rate limiting, pagination, and adherence to industry standards, Keka provides developers with everything they need to build robust integrations with their software/ platform and facilitate data exchange between their application and this leading HRMS portal. 

## Keka API Authentication, Pagination, Rate Limit

To ensure safe and secure access, Keka API uses OAuth for authentication. This suggests that for successful integration, developers need an access token which can be generated with specific details. This includes client id (identifier for the client), client secret (for secure authentication), api key (unique API key for accessing the system), scope (requires passing kekaapi for this key). To facilitate integration testing for applications, developers can also leverage the Sandbox Environment which is offered by Keka. This allows developers to ensure robust functionality, before integration production begins. Keka APIs already come with pagination implemented to ensure response time optimization. The standard or the default page size in Keka is 100 with 1 being the default page number. 

API limit is a critical element of any API and so is the case with Keka, which helps define the number of requests that can be made to Keka within a limited time period. Keka has a rate limit of 50 API requests/ minute. This suggests that once 50 requests are made in a minute, the user needs to wait for the quote to be refilled before any other request is made. The rate limits are enforced and automatically reset after 60 seconds. In case a request is made before the quota is refilled, a 429 error with the reason rateLimitExceeded will be sent. 

## Keka API Objects, Data Models & Endpoints

As a developer or the representative of an organization seeking to integrate with Keka API, it is important to understand the endpoints that you will be using eventually for data exchange, both when it comes to read APIs (getting data from Keka) as well as write APIs (providing data to Keka). 

#### Employees

*   Get all Employees

GET [https://{company}.{environment}.com/api/v1/hris/employees](https://about:blank)

*   Create an Employee

POST https://{company}.{environment}.com/api/v1/hris/employees

*   Get an Employee

GET https://{company}.{environment}.com/api/v1/hris/employees/{id}

*   Get all update fields

GET https://{company}.{environment}.com/api/v1/hris/employees/updatefields

*   Update Employee personal details

PUT https://{company}.{environment}.com/api/v1/hris/employees/{id}/personaldetails

*   Update employee job details

PUT https://{company}.{environment}.com/api/v1/hris/employees/{id}/jobdetails

#### Groups

*   Get all Groups

GET https://{company}.{environment}.com/api/v1/hris/groups

*   Get all Group Types

GET https://{company}.{environment}.com/api/v1/hris/grouptypes

#### Departments

*   Get all departments

GET https://{company}.{environment}.com/api/v1/hris/departments

#### Locations

*   Get all Locations

GET https://{company}.{environment}.com/api/v1/hris/locations

#### Job Title

*   Get all job titles

GET https://{company}.{environment}.com/api/v1/hris/jobtitles

#### Currency

*   Get all currencies

GET https://{company}.{environment}.com/api/v1/hris/currencies

#### Notice Period

*   Get all notice periods

GET https://{company}.{environment}.com/api/v1/hris/noticeperiods

#### Leave Types

*   Get all Leave Types

GET https://{company}.{environment}.com/api/v1/time/leavetypes

#### Leave Balance

*   Get all Leave balances

GET https://{company}.{environment}.com/api/v1/time/leavebalance

#### Leave Requests

*   Get all Leave Requests

GET [https://{company}.{environment}.com/api/v1/time/leaverequests](https://about:blank)

*   Create an Leave Request

POST https://{company}.{environment}.com/api/v1/time/leaverequests

#### Attendance

*   Get all Attendance Records

GET https://{company}.{environment}.com/api/v1/time/attendance

#### Attendance Capture Scheme

*   Get all captureschemes

GET https://{company}.{environment}.com/api/v1/time/capturescheme

#### Holiday Calendar

*   Get all holidays Calendar

GET https://{company}.{environment}.com/api/v1/time/holidayscalendar

#### Salary Components

*   Get all Salary Components

GET https://{company}.{environment}.com/api/v1/payroll/salarycomponents

#### Pay Groups

*   Get all Pay Groups

GET https://{company}.{environment}.com/api/v1/payroll/paygroups

#### Pay Cycles

*   Get all Pay Cycles

GET [https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles](https://about:blank)

*   Get Pay Register

GET https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/payregister

*   Get all Pay Batches

GET https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches

*   Get all Batch Payments

GET https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches/{payBatchId}/payments

*   Update the Payments status

PUT https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches/{payBatchId}/payments

#### Pay Grades

*   Get all Pay Grades

GET https://{company}.{environment}.com/api/v1/payroll/paygrades

#### Pay Bands

*   Get all Pay Bands

GET https://{company}.{environment}.com/api/v1/payroll/paybands

#### Clients

*   Get all clients

GET https://{company}.{environment}.com/api/v1/psa/clients

*   Create a Client

POST https://{company}.{environment}.com/api/v1/psa/clients

*   Get a client

GET https://{company}.{environment}.com/api/v1/psa/clients/{id}

*   Update a Client

PUT https://{company}.{environment}.com/api/v1/psa/clients/{id}

#### Project Phases

*   Get project phases.

GET https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/phases

*   Create a Project Phase

POST https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/phases

#### Projects

*   Get all projects.

GET https://{company}.{environment}.com/api/v1/psa/projects

*   Create a Project

POST https://{company}.{environment}.com/api/v1/psa/projects

*   Get a project

GET https://{company}.{environment}.com/api/v1/psa/projects/{id}

*   Update a Project

PUT https://{company}.{environment}.com/api/v1/psa/projects/{id}

*   Get a project allocations

GET https://{company}.{environment}.com/api/v1/psa/projects/{id}/allocations

*   Get project timesheet entries.

GET https://{company}.{environment}.com/api/v1/psa/projects/{id}/timeentries

#### Tasks

*   Get project tasks.

GET https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/tasks

*   Create a task

POST https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/tasks

*   Update a task

PUT https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/tasks/{taskId}

*   Get project task time entries.

GET https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/tasks/{taskId}/timeentries

#### Time Frames

*   Get time frame list.

GET https://{company}.{environment}.com/api/v1/pms/timeframes

#### Goal

*   Get goal list.

GET [https://{company}.{environment}.com/api/v1/pms/goals](https://about:blank)

*   Update goal progress

PUT https://{company}.{environment}.com/api/v1/pms/goals/{goalId}/progress

#### Badge

*   Get badge list.

GET https://{company}.{environment}.com/api/v1/pms/badges

#### Praise

*   Add Praise

POST https://{company}.{environment}.com/api/v1/pms/praise

#### Expense Category

*   Get all Expense Categories

GET https://{company}.{environment}.com/api/v1/expense/categories

#### Expense

*   Get all Expense Claims

GET https://{company}.{environment}.com/api/v1/expense/claims

#### Expense Policy

*   Get all expense policies

GET https://{company}.{environment}.com/api/v1/expensepolicies

#### Asset

*   Get all Assets

GET https://{company}.{environment}.com/api/v1/assets

#### Asset Type

*   Get all Asset Types

GET https://{company}.{environment}.com/api/v1/assets/types

#### Asset Category

*   Get all Asset Categories

GET https://{company}.{environment}.com/api/v1/assets/categories

#### Asset Condition

*   Get all Asset Conditions

GET https://{company}.{environment}.com/api/v1/assets/conditions

## Keka API Use Cases

*   Easy payroll processing and integration with attendance and leave to ensure proper calculation of payroll and taxes
*   Covers every HR workflow to manage people processes, including hiring, onboarding, probation confirmation, internal movements, etc.
*   Streamline all HR operations with automated workflows, comprehensive analytics, and hassle-free employee management
*   Conduct a multi-dimensional assessment of employees' abilities, behavioral competencies, and performance for constructive team evaluation
*   Get an accurate view of revenue against each project, resources allocation, and amount of time spent
*   Robust attendance management system that integrates every aspect of time tracking, including scheduling shifts, and tracking over-time, fully integrated with payroll

### Top Customers

Keka, as an HRMS tool, is widely used with 5000+ customers, including:

*   Noise, India's trusted wearable watch brand
*   GrabOn, one of India’s top players in the coupons and deals industry
*   ICM, a UK-based global multi-regulated financial service provider
*   Easypolicy, a leading insurance aggregator
*   Traveazy, a Dubai-based travel-tech company focused on simplifying pilgrimage travel
*   Unbox Robotics, a leading supply chain robotics technology company specializing 
*   HackerEarth, a comprehensive developer assessment software that helps companies accurately measure developers' skills while recruiting
*   Metrochem API, a manufacturer of Active Pharmaceutical Ingredients (APIs), Pellets, and Intermediates in Multi Therapeutic segments

## Keka API FAQs

Here’s a list of quick FAQs which will help answer any thoughts that you might have during your journey of integrating your application with Keka API

*   **Does Keka have an API?**  
    *   Yes, Keka provides a REST API for accessing and managing HR data programmatically - employees, attendance, payroll, leave, performance, and organisational structure. The API uses OAuth authentication, supports pagination (default page size 100), and is available to Keka customers through the developer portal. Knit's unified HRIS API includes Keka alongside 30+ other HR platforms through a single normalised endpoint.
*   **How do I authenticate with the Keka API?**  
    *   The Keka API uses OAuth for authentication — you need a client ID, client secret, and API key, and must pass 'kekaapi' as the scope when requesting an access token. The token is then included in subsequent API requests. For multi-tenant integrations, each customer must complete the OAuth consent flow separately. Knit manages the full OAuth lifecycle for Keka across all connected customer accounts without requiring per-customer credential handling from your team.
*   **What are the Keka API rate limits?**  
    *   Keka enforces a rate limit of 50 API requests per minute. Once the limit is reached, further requests return a 429 error with the reason rateLimitExceeded. The quota resets automatically after 60 seconds. For integrations syncing large datasets, implement exponential backoff on 429 responses and paginate requests using Keka's built-in pagination (default page size: 100). Knit handles Keka rate limit management automatically across all connected customer accounts.
*   **What data can I access through the Keka API?**  
    *   The Keka API exposes employee profiles, employment details, groups, departments, attendance records, leave requests, payroll data, expenses, and performance information. Core HR endpoints support both read and write operations on employee records. Data availability depends on which Keka modules your organisation has active. Knit normalises Keka's data model into a consistent schema alongside 30+ other HRIS platforms, removing the need for custom field mapping per customer.
*   **Does Keka have a sandbox environment for API testing?**  
    *   Yes, Keka provides a sandbox environment for integration testing, allowing developers to validate authentication flows, endpoint calls, and data mapping before connecting to production accounts. The sandbox mirrors the production API surface and is accessible through the Keka developer portal. Knit's Keka integration can be tested end-to-end in the sandbox environment before connecting live customer accounts.
*   How do I integrate with the Keka API?  
    *   Building a Keka integration involves registering in the Keka developer portal, obtaining OAuth credentials (client ID, client secret, API key, scope 'kekaapi'), and calling the relevant REST endpoints for your use case — HR data, attendance, or payroll. Each customer must complete the OAuth consent flow to authorise your application. Knit provides a pre-built Keka connector with normalised data models, so you call one endpoint and Knit handles authentication, field mapping, and ongoing maintenance.
*   **What are the main Keka API endpoints?**  
    *   Keka's core API endpoints cover employees (GET all, GET by ID, POST create, PUT update personal and job details), groups, and departments under the /api/v1/hris/ base path targeting {company}.{environment}.com. Additional endpoints cover attendance, leave, payroll, and performance depending on your Keka plan. Knit's Keka connector abstracts these into a normalised data model consistent across all 30+ HRIS platforms it supports.
*   **What are the main challenges of building a Keka API integration?**  
    *   The main challenges are managing OAuth credentials across multiple customer accounts, the 50 requests/minute rate limit for high-volume syncs, handling module-dependent data availability (attendance and payroll require specific Keka plans), and mapping Keka's data model to your application's schema. For multi-tenant SaaS products, per-customer OAuth setup adds onboarding friction. Knit manages auth, rate limiting, normalisation, and ongoing Keka API maintenance across all customer accounts through a single integration.
*   How can an admin create an API access key on Keka? [Answer](https://support.keka.com/support/solutions/articles/84000383077-how-can-an-admin-create-an-api-access-key-on-keka-)
*   How to integrate the Mettl assessment app with Keka Hire? [Answer](https://support.keka.com/support/solutions/articles/84000384222-how-to-integrate-mettl-assessment-app-with-keka-hire-)
*   How to integrate Naukri with Keka Hire? [Answer](https://support.keka.com/support/solutions/articles/84000384273-how-to-integrate-naukri-with-keka-hire-)
*   How to integrate Keka Hire with HackerEarth for Sending Assessments? [Answer](https://support.keka.com/support/solutions/articles/84000385493-integrating-keka-hire-with-hackerearth-for-sending-assessments)
*   How to integrate Keka Hire with LinkedIn? [Answer](https://support.keka.com/support/solutions/articles/84000389929-how-to-integrate-keka-hire-with-linkedin) 
*   How to integrate MS Teams account with Keka Hire? [Answer](https://support.keka.com/support/solutions/articles/84000384275-how-to-integrate-ms-teams-account-with-keka-hire-)
*   How to integrate SpringVerify with Keka? [Answer](https://support.keka.com/support/solutions/articles/84000389842-integrating-springverify-with-keka)

## How to integrate with Keka API 

If you are just getting started, it might be a good idea to go through [this documentation](https://developers.keka.com/reference/getting-started-with-your-api) to understand how you can initiate the integration process. The detailed documentation contains everything you need to know about the overview, endpoints and much more. Leverage this to learn about the different data models scope and other details which will come in handy to get started. At the same time, [this link](https://developers.keka.com/reference/token-1) will help you generate the access token for seamless authentication. 

## Get started with Keka API 

While the guide shared above will serve as a comprehensive starting point for you to integrate your application with Keka API, it is important to understand that the entire process can be engineering heavy, time consuming and resource intensive. Put simply, it’s not just about building an integration, but also about managing and maintaining it over time. At the same time, if you want to connect with other HRMS APIs, the process becomes multifold. In such a situation, leveraging a unified HRMS API like Knit can come in handy. Knit enables SaaS businesses to easily connect with multiple HRMS applications by integrating once with its unified API, eliminating the need to connect with each application separately.

[Book a demo](https://getknit.dev/book-demo) call today to learn how you can accelerate your integration journey with Keka and other HRMS applications using Knit.


## Related pages

- [How Knit works](https://md.getknit.dev/how-knit-works)
- [Unified API product](https://md.getknit.dev/products/unified-api)
