Zoho People Leave API

Leave types, balances, and request lifecycle.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

zoho-people-leave-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Zoho People REST Attendance Leave API
  version: 1.0.0
  description: 'OpenAPI specification for the Zoho People HRMS REST API. Endpoints are

    organized around the seven `ZOHOPEOPLE` OAuth scopes that the provider

    publishes: `employee`, `forms`, `dashboard`, `automation`, `timetracker`,

    `attendance`, and `leave`. All requests are authenticated with Zoho

    Accounts OAuth 2.0 bearer tokens issued for the relevant scope and

    operation type (READ, CREATE, UPDATE, DELETE, ALL).


    Reference: https://www.zoho.com/people/api/overview.html

    '
  contact:
    name: Zoho People
    url: https://www.zoho.com/people/
  license:
    name: Zoho Terms of Service
    url: https://www.zoho.com/terms.html
servers:
- url: https://people.zoho.com/people/api
  description: Zoho People — US data center (default)
- url: https://people.zoho.eu/people/api
  description: Zoho People — EU data center
- url: https://people.zoho.in/people/api
  description: Zoho People — India data center
- url: https://people.zoho.com.au/people/api
  description: Zoho People — Australia data center
- url: https://people.zoho.jp/people/api
  description: Zoho People — Japan data center
- url: https://people.zoho.com.cn/people/api
  description: Zoho People — China data center
- url: https://people.zohocloud.ca/people/api
  description: Zoho People — Canada data center
- url: https://people.zoho.sa/people/api
  description: Zoho People — Saudi Arabia data center
security:
- ZohoOAuth2: []
tags:
- name: Leave
  description: Leave types, balances, and request lifecycle.
paths:
  /leave/getHolidays:
    get:
      tags:
      - Leave
      summary: List Holidays
      operationId: listHolidays
      parameters:
      - name: userId
        in: query
        schema:
          type: string
      - name: year
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: Holidays returned.
  /leave/getLeaveTypeDetails:
    get:
      tags:
      - Leave
      summary: List Leave Types
      operationId: listLeaveTypes
      parameters:
      - name: userId
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Leave types returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  response:
                    type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/LeaveType'
  /forms/leave/insertRecord:
    post:
      tags:
      - Leave
      summary: Apply For Leave
      operationId: applyForLeave
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                inputData:
                  type: string
                  description: JSON-encoded leave request (employeeId, leaveTypeId, from, to, reason).
      responses:
        '200':
          description: Leave request submitted.
  /forms/leave/getRecords:
    get:
      tags:
      - Leave
      summary: List Leave Requests
      operationId: listLeaveRequests
      parameters:
      - name: searchParams
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Leave requests returned.
components:
  schemas:
    LeaveType:
      type: object
      properties:
        Id:
          type: string
        Name:
          type: string
        Unit:
          type: string
          enum:
          - Days
          - Hours
        IsPaid:
          type: boolean
        IsHalfDayAllowed:
          type: boolean
        Balance:
          type: number
  securitySchemes:
    ZohoOAuth2:
      type: oauth2
      description: 'Zoho Accounts OAuth 2.0 — Authorization Code grant. Access tokens

        live for 1 hour; refresh tokens are long-lived until revoked.

        Scope syntax is `ZOHOPEOPLE.<scope>.<operation>` where scope is

        one of employee, forms, dashboard, automation, timetracker,

        attendance, leave; operation is ALL, READ, CREATE, UPDATE, or

        DELETE.

        '
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.zoho.com/oauth/v2/auth
          tokenUrl: https://accounts.zoho.com/oauth/v2/token
          refreshUrl: https://accounts.zoho.com/oauth/v2/token
          scopes:
            ZohoPeople.employee.ALL: Full access to employee records
            ZohoPeople.forms.ALL: Full access to form records
            ZohoPeople.forms.READ: Read form records
            ZohoPeople.forms.CREATE: Create form records
            ZohoPeople.forms.UPDATE: Update form records
            ZohoPeople.leave.ALL: Full access to leave operations
            ZohoPeople.leave.READ: Read leave records
            ZohoPeople.leave.CREATE: Submit leave requests
            ZohoPeople.leave.UPDATE: Update leave requests
            ZohoPeople.attendance.ALL: Full access to attendance operations
            ZohoPeople.timetracker.ALL: Full access to time-tracker operations
            ZohoPeople.dashboard.ALL: Full access to dashboard reads
            ZohoPeople.automation.ALL: Full access to automation / workflows