Zoho People Employee API

Employee record CRUD across the People HRIS.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

zoho-people-employee-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Zoho People REST Attendance Employee 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: Employee
  description: Employee record CRUD across the People HRIS.
paths:
  /forms/employee/getRecords:
    get:
      tags:
      - Employee
      summary: List Employee Records
      operationId: listEmployees
      description: Fetch employee records from the standard Employee form.
      parameters:
      - name: searchParams
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Employees returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  response:
                    type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/Employee'
  /forms/employee/insertRecord:
    post:
      tags:
      - Employee
      summary: Create Employee Record
      operationId: createEmployee
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                inputData:
                  type: string
                  description: JSON-encoded employee fields.
      responses:
        '200':
          description: Employee created.
  /forms/employee/updateRecord:
    post:
      tags:
      - Employee
      summary: Update Employee Record
      operationId: updateEmployee
      parameters:
      - name: recordId
        in: query
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                inputData:
                  type: string
      responses:
        '200':
          description: Employee updated.
components:
  schemas:
    Employee:
      type: object
      properties:
        EmployeeID:
          type: string
        FirstName:
          type: string
        LastName:
          type: string
        EmailID:
          type: string
          format: email
        Department:
          type: string
        Designation:
          type: string
        Location:
          type: string
        DateofJoining:
          type: string
          format: date
        ReportingTo:
          type: string
        EmploymentType:
          type: string
          enum:
          - Permanent
          - Contract
          - Intern
          - Consultant
          - Temporary
        EmployeeStatus:
          type: string
          enum:
          - Active
          - Inactive
          - Terminated
          - OnLeave
  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