Files
openclaw-workspace/skills/api-gateway/references/zoho-people.md
2026-04-11 09:45:12 -05:00

3.5 KiB

Zoho People Routing Reference

App name: zoho-people Base URL proxied: people.zoho.com

API Path Pattern

/zoho-people/people/api/{resource}

or for view-based endpoints:

/zoho-people/api/forms/{viewName}/records

Common Endpoints

Forms

# List all forms
GET /zoho-people/people/api/forms

Records (Bulk)

# Get records from any form
GET /zoho-people/people/api/forms/{formLinkName}/getRecords?sIndex=1&limit=200

# Common form link names:
# - employee
# - department
# - designation
# - leave
# - P_ClientDetails

Records (View-based)

# Get records using a view
GET /zoho-people/api/forms/{viewName}/records?rec_limit=200

# Common view names:
# - P_EmployeeView
# - P_DepartmentView
# - P_DesignationView
# Search by Employee ID
GET /zoho-people/people/api/forms/employee/getRecords?SearchColumn=EMPLOYEEID&SearchValue={empId}

# Search by Email
GET /zoho-people/people/api/forms/employee/getRecords?SearchColumn=EMPLOYEEMAILALIAS&SearchValue={email}

# Get modified records
GET /zoho-people/people/api/forms/{formLinkName}/getRecords?modifiedtime={timestamp_ms}

Insert Record

POST /zoho-people/people/api/forms/json/{formLinkName}/insertRecord
Content-Type: application/x-www-form-urlencoded

inputData={"field1":"value1","field2":"value2"}

Update Record

POST /zoho-people/people/api/forms/json/{formLinkName}/updateRecord
Content-Type: application/x-www-form-urlencoded

inputData={"field1":"newValue"}&recordId={recordId}

Attendance

# Get attendance entries (requires additional scope)
GET /zoho-people/people/api/attendance/getAttendanceEntries?date={date}&dateFormat={format}

# Check-in/Check-out (requires additional scope)
POST /zoho-people/people/api/attendance
Content-Type: application/x-www-form-urlencoded

dateFormat=dd/MM/yyyy HH:mm:ss&checkIn={datetime}&checkOut={datetime}&empId={empId}

Leave

# Get leave records
GET /zoho-people/people/api/forms/leave/getRecords?sIndex=1&limit=200

# Add leave
POST /zoho-people/people/api/forms/json/leave/insertRecord
Content-Type: application/x-www-form-urlencoded

inputData={"Employee_ID":"EMP001","Leavetype":"123456","From":"01-Feb-2026","To":"02-Feb-2026"}
Form formLinkName
Employee employee
Department department
Designation designation
Leave leave
Clients P_ClientDetails

Pagination

Uses index-based pagination:

  • sIndex: Starting index (1-based)
  • limit: Max records per request (max 200)

For page 2: sIndex=201&limit=200

Notes

  • Record IDs are numeric strings (e.g., 943596000000294355)
  • Insert/Update use application/x-www-form-urlencoded content type
  • inputData parameter contains JSON object as string
  • Attendance endpoints require additional OAuth scopes
  • Maximum 200 records per request
  • Response wraps data in response.result[] array

Error Codes

Code Description
7011 Invalid form name
7012 Invalid view name
7021 Max limit exceeded (200)
7024 No records found
7042 Invalid search value
7218 Invalid OAuth scope

Resources