Zoho People API Directory

Zoho People is a cloud-based HRMS that helps organizations run core HR operations, employee records, attendance, leave, onboarding, learning, and internal HR support, without turning HR into a manual ops team. But the real leverage shows up when Zoho People is connected to the rest of your stack (payroll, ITSM, finance, analytics, collaboration tools) so data doesn’t sit in silos and processes don’t depend on human follow-ups.

That’s exactly what the Zoho People API enables. You can sync employee data, automate repetitive workflows, orchestrate onboarding, and operationalize LMS + leave + attendance processes across systems. Done right, this becomes an integration layer that reduces cycle time, improves accuracy, and strengthens auditability.

Key highlights of Zoho People APIs

  1. Employee data as a system-of-record
    Pull structured employee details and identifiers (like erecno) to keep downstream apps aligned.
  2. Workflow automation via triggers + webhooks
    Automate key actions such as onboarding triggers, notifications, and cross-system updates.
  3. LMS operations via API-first control
    Manage courses, batches, modules, sessions, enrollments, and learning activity states programmatically.
  4. Attendance + leave sync for payroll and workforce ops
    Keep time and leave signals updated across payroll, analytics, and operational dashboards.
  5. HR case management integration
    Create and track HR requests with categories, status, SLA indicators, and assignment visibility.
  6. Designed for predictable bulk sync patterns
    Pagination and limits (like fetching 200 records at a time) encourage stable integration design.
  7. OAuth-based access and scope-driven control
    Token-based authentication supports controlled access and traceable integrations.
  8. Enterprise extensibility across modules
    Supports multi-module integration patterns without forcing a one-size-fits-all workflow.

Zoho People API Endpoints

Learning Management System (LMS)

Courses

  • GET http://people.zoho.com/api/v1/courses//batches//modules//sessions : The Fetch Module Sessions API is used to retrieve session details for specific modules within batches in a Learning Management System (LMS). The API requires the courseId, batchId, and moduleId as path parameters to specify the context of the sessions being fetched. An optional query parameter, startIndex, can be used to specify the starting point for fetching records, with a default value of 0. The API requires an Authorization header with a Zoho OAuth token. The response includes details about each session, such as session name, start and end times, description, and trainer information, along with metadata like the total number of learners and whether the session is completed. The response also indicates if there are more records to fetch.
  • POST http://people.zoho.com/api/v1/courses//batches//unenroll?erecnosList= : The Unenroll Learner From Batch API allows you to unenroll a learner from a specific batch in the LMS. It requires the course ID and batch ID as path parameters, and a list of employee erec numbers as a query parameter. The request must include an Authorization header with a valid Zoho OAuth token. The response includes a status code, a list of learners with their unenrollment status, and a success message.
  • DELETE http://people.zoho.com/api/v1/courses//settings/precourseactivities/onlineTests/ : This API is used to delete an online test from pre-learning activities in a specified course. The request requires the course ID and the test ID as path parameters, and an authorization header with a Zoho OAuth token. The API supports two scopes: ZOHOPEOPLE.training.ALL for complete access and ZOHOPEOPLE.training.DELETE for delete-only access. Upon successful deletion, the API returns a response with a code, the test ID, and a success message.
  • GET http://people.zoho.com/api/v1/courses/{Course ID}/batches/{Batch ID}/learners/{Learner ID}/lockedEntities/{Locked Entity ID} : The List Requisite Course Entities API is used to retrieve a list of course entities that must be completed to unlock the current course entity. It requires the course ID, batch ID, learner ID, and locked entity ID as path parameters. The batch ID should be '0' for self-paced learning. The request must include an Authorization header with a valid Zoho OAuth token. The response includes a list of locked entities with their names, IDs, and types, along with a response code and message.
  • POST https://people.zoho.com/api//triggerOnboarding : The Trigger Onboarding API is used to initiate the onboarding process for an existing candidate or employee in the Zoho People system. The API requires an OAuth token for authorization, which should be included in the request headers. The request body must contain the 'userId', which is the record ID of the candidate or employee for whom the onboarding is to be triggered. The API has a threshold limit of 30 requests per minute, with a lock period of 5 minutes before consecutive requests can be made. Upon successful execution, the API returns a response message indicating success.

Announcements

  • POST https://people.zoho.com/api/announcement/addAnnouncementComment : The Add Announcement Comment API allows users to add a comment to a specific announcement. The API requires an OAuth token for authorization, and the announcement ID and comment text as query parameters. The response includes the status and message of the operation, and if successful, details about the comment added. In case of an error, an error code and message are provided. The API has a threshold limit of 20 requests per minute, with a lock period of 5 minutes.
  • DELETE https://people.zoho.com/api/announcement/deleteAnnouncement : The Delete Announcements API allows users to delete a posted announcement by providing the announcement ID. The request requires an authorization token in the header and the announcement ID as a query parameter. The API has a threshold limit of 20 requests per minute and a lock period of 5 minutes. A successful response returns a status of 0 and a message of 'Success', while an error response returns a status of 1 and an error message.
  • DELETE https://people.zoho.com/api/announcement/deleteAnnouncementComment : The Delete Announcement Comment API allows users to delete a specific comment from an announcement. The API requires an OAuth token for authorization, provided in the request header. The commentId, which is the ID of the comment to be deleted, must be included as a query parameter. The API returns a success message with the ID of the deleted comment if the operation is successful. In case of an error, such as insufficient permissions, an error message is returned. The API has a threshold limit of 20 requests per minute, with a lock period of 5 minutes.
  • POST https://people.zoho.com/api/announcement/enableDisableAnnouncement : The Enable or Disable Announcements API allows users to enable or disable an announcement by providing the announcement ID. The API requires an OAuth token for authorization. If the announcement is currently enabled, providing the ID will disable it, and vice versa. The API has a threshold limit of 20 requests per minute with a lock period of 5 minutes. The response includes a status code and message indicating success or failure, with additional result data if applicable.

Attendance

  • GET https://people.zoho.com/api/attendance/fetchLatestAttEntries : The Fetch Last Attendance Entries API retrieves the latest attendance entries, including regularisation entries, that have been added or updated within a specified duration in minutes. This API is accessible only by admin and data admin users. The request requires an OAuth token for authorization and accepts query parameters for the duration and date-time format. The response includes details of single and multi regularisation entries, as well as attendance entries added through other means. The API has a threshold limit of 30 requests per minute and a lock period of 5 minutes.

Candidate

  • POST https://people.zoho.com/api/candidate/reopen : The Reopen Onboarding API is used to reopen the onboarding process for a candidate in the Zoho People system. The API requires an authorization header with a Zoho OAuth token. The request can include either the candidate's email or candidate ID in the body to identify the candidate whose onboarding needs to be reopened. The API has a threshold limit of 30 requests per minute, with a lock period of 5 minutes before consecutive requests can be made. A successful response returns a message indicating success, a response code of 7000, and the candidate ID. In case of failure, an error message and code 7033 are returned.

Files

  • POST https://people.zoho.com/api/files/addFolder : The Add and Edit Folder API allows users to add new folders or edit existing folders in the file modules of Zoho People. The API requires an OAuth token for authorization. Users can specify the new folder name using the 'newCatName' parameter. If the folder is to be placed under an existing folder, the 'parentCatId' parameter should be used. To rename an existing folder, the 'catId' parameter should be provided. The response includes the folder ID, parent folder ID, folder name, a message, the URI of the API endpoint, and a status code.

HR Cases

  • POST https://people.zoho.com/api/hrcases/addcase : The Add Case API is used to add new cases in the system. It requires an authentication token in the header and mandatory query parameters such as categoryId and subject. The description is optional. The API returns a success response with details of the created case, including the record ID and case ID, or an error response if the operation fails. The API has a threshold limit of 30 requests per minute with a lock period of 5 minutes.
  • GET https://people.zoho.com/api/hrcases/getRequestedCases : The View Case Listing API allows users to list various cases based on different criteria. Users can request cases that are assigned to them, unassigned cases, open cases, or all cases. The API requires an authorization header with a Zoho OAuth token. Query parameters include 'index' (mandatory), 'status', 'categoryId', 'query', 'requestorErecno', and 'periodOfTime'. The response includes a list of cases with details such as agent information, subject, SLA status, category, requestor details, and more. The API has a threshold limit of 30 requests per minute with a lock period of 5 minutes.
  • GET https://people.zoho.com/api/hrcases/listCategory : The View List of Categories API is used to retrieve a list of categories that a user can raise queries to. The request requires an Authorization header with a Zoho OAuth token. The response includes details about each category such as whether the user is an agent, the category icon, whether the category is enabled, a short description, service ID, applicable locations, category name, and category ID. The API has a threshold limit of 30 requests per minute and a lock period of 5 minutes.
  • GET https://people.zoho.com/api/hrcases/viewcase : The View Case Details API allows users to retrieve detailed information about a specific case using its record ID. The API requires an OAuth token for authentication and the record ID as a query parameter. The response includes details about the case such as the agent, requestor, status, category, and any attached files. It also provides information on whether the user can change the case category or status, and SLA details if applicable. The API has a threshold limit of 30 requests per minute with a lock period of 5 minutes.

Leave

  • POST https://people.zoho.com/api/leave/addBalance : The Add Leave Balance API is used to modify an employee's leave balance by adding or subtracting a specified count. The API requires an authorization header with a Zoho OAuth token and accepts query parameters including 'balanceData', a JSON string detailing the employee's leave balance data, and 'dateFormat', which specifies the date format. The response includes the number of leave balances successfully added, any errors encountered, and a status message. The API has a threshold limit of 30 requests per minute with a lock period of 5 minutes.

Time Tracker

  • GET https://people.zoho.com/api/timetracker/addJobSchedule : The Add Job Schedule API is used to add a new job schedule in Zoho People. It requires authorization via a Zoho OAuth token. The API accepts several query parameters including jobId, date, fromtime, totime, description, isPublish, assignedTo, isRepeat, repeatInterval, repeatType, repeatUntil, skipMaxLogHrsValidation. The jobId, date, fromtime, and totime are mandatory parameters. The API returns a response containing the jobScheduleId of the newly added schedule, a success message, the URI of the API endpoint, and a status code. Error codes and messages are provided for various failure scenarios.
  • DELETE https://people.zoho.com/api/timetracker/deleteJobSchedule : The Delete Job Schedule API is used to delete job schedules in Zoho People. It requires the jobScheduleId as a mandatory query parameter to specify which job schedule to delete. Optionally, the isDeleteRepeat and delRepeatType parameters can be used to delete repeat series of schedules. The API requires an Authorization header with a Zoho OAuth token. The response includes the ID of the deleted job schedule and a success message. Error responses include error codes and messages. The API has a threshold limit of 20 requests per minute with a lock period of 5 minutes.
  • POST https://people.zoho.com/api/timetracker/editJobSchedule : The Edit Job Schedule API allows users to modify existing job schedules in Zoho People. The API requires an OAuth token for authentication and accepts various query parameters to specify the details of the job schedule to be edited, such as jobScheduleId, jobId, date, fromtime, totime, description, and more. The API supports repeating schedules and allows for editing repeat series with options like isEditRepeat and editRepeatType. The response includes the edited jobScheduleId and a success message. Error codes are provided for handling issues such as permission denial and invalid parameters.
  • GET https://people.zoho.com/api/timetracker/getJobSchedule : The Get Job Schedule API is used to retrieve the list of job schedules for employees within a specified date range. The API requires an OAuth token for authorization and supports query parameters such as user, sIndex, limit, fromDate, toDate. The fromDate and toDate parameters are mandatory and must be in the yyyy-MM-dd format. The API returns a list of job schedules, including details such as employee ID, job name, schedule date, and more. The response also indicates if more data is available with the isNextAvailable flag. Error codes are provided for permission issues, missing parameters, and incorrect date formats.
  • GET https://people.zoho.com/api/timetracker/getPayPeriodDetails : The Fetch Pay Period Details API is used to retrieve details about pay periods for specified users or locations. The API requires an Authorization header with a Zoho OAuth token. It accepts optional query parameters such as userErecNo, locationName, locationId to filter the pay period details. If no parameters are provided, all pay period data will be fetched. The response includes details such as location list, start and end dates, pay period name and ID, freeze status, frequency. The API is accessible only to admins and has a threshold limit of 20 requests per minute with a lock period of 5 minutes.
  • GET https://people.zoho.com/api/timetracker/getpayrollreport : The Payroll Report API provides payroll data for specified users within a given date range. It requires an authorization token and supports various query parameters such as userErecNo, fromDate, toDate, and others to filter the data. The API returns detailed payroll information including regular hours, overtime, paid leave, total amounts. It also handles errors with specific error codes and messages. The API has a threshold limit of 20 requests per minute with a lock period of 5 minutes.
  • GET https://people.zoho.com/api/timetracker/publishJobSchedule : The Publish Job Schedule API is used to publish job schedules for specified users within a given date range. The API requires an authorization header with a Zoho OAuth token. The query parameters include 'user' to specify the user (ERECNO, Email-ID, Employee-ID, or 'all'), 'fromDate' to specify the start date, and 'toDate' to specify the end date for publishing job schedules. The API returns a success message if the job schedules are published successfully, or an error message with an error code if there is an issue. The API has a threshold limit of 20 requests per minute and a lock period of 5 minutes.

Common pitfalls (what usually breaks integrations)

  • Ignoring rate limits and lock periods: You’ll get throttled or locked; design retries with backoff and respect module-specific thresholds.
  • Not handling pagination properly: Many endpoints assume batch reads; implement startIndex/limit patterns consistently.
  • Over-scoping OAuth permissions: Too-broad scopes increase security exposure; use least privilege.
  • Weak identifier strategy: Standardize on stable identifiers (like erecno/record IDs) and map them cleanly across systems.
  • No error logging discipline: Without structured logging, you’ll lose time diagnosing “random failures” that are actually predictable.
  • Assuming admin-only APIs work for every token: Some endpoints are explicitly admin/data admin only, plan role access early.

FAQs

  1. What’s the biggest practical use of the Zoho People API?
    Automating HR workflows and syncing HR data across payroll, IT provisioning, LMS, and reporting, so processes don’t depend on manual updates.
  2. How does authentication work for Zoho People APIs?
    The endpoints use Zoho OAuth tokens in the Authorization header, with access governed by scopes.
  3. What should I plan for when syncing large datasets?
    Pagination and record caps (for example, fetching up to 200 records at a time) and module-specific rate limits.
  4. Are all endpoints available to all users?
    No. Some endpoints are restricted to admin/data admin users (for example, certain attendance APIs).
  5. How do I avoid getting rate-limited?
    Implement request throttling, exponential backoff retries, and respect threshold + lock-period behavior per endpoint.
  6. What identifiers should I use to link users across systems?
    Use stable platform identifiers like record IDs and erecno, and maintain a mapping layer in your integration.
  7. Can Zoho People API be used for LMS automation end-to-end?
    Yes, based on the endpoints listed, you can manage course creation, enrollments, sessions, attendance marking, publishing states, and related settings.

Get Started with Zoho People API Integration

For quick and seamless access to zoho-people API, Knit API offers a convenient solution. By integrating with Knit just once, you can streamline the entire process. Knit takes care of all the authentication, authorization, and ongoing integration maintenance, this approach not only saves time but also ensures a smooth and reliable connection to your zoho-people API.

#1 in Ease of Integrations

Trusted by businesses to streamline and simplify integrations seamlessly with GetKnit.