Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/peoplehr:peoplehr-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.1.0
info:
title: PeopleHR API
version: '2026-10-26'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-26: 12 operation(s) read from 15 public documentation page(s) (each
operation names its page in x-source). This is not the provider''s published contract; PeopleHR has published no machine-readable contract
that the pipeline could find. Engine: local.'
x-evidence-tiers:
code-example: 0
documentation: 12
pages-with-code: 0
pages-read: 15
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-26'
x-generator: generate-contract-from-docs.py
x-engine: local
x-sources:
- https://apidocs.peoplehr.com/overview.html
- https://apidocs.peoplehr.com/reconciliation.html
- https://apidocs.peoplehr.com/support.html
- https://apidocs.peoplehr.com/employee.html
- https://apidocs.peoplehr.com/salary.html
- https://apidocs.peoplehr.com/holiday.html
- https://apidocs.peoplehr.com/holiday-entitlements.html
- https://apidocs.peoplehr.com/absence.html
- https://apidocs.peoplehr.com/other-event.html
- https://apidocs.peoplehr.com/maternity-paternity.html
- https://apidocs.peoplehr.com/late.html
- https://apidocs.peoplehr.com/timesheet.html
- https://apidocs.peoplehr.com/project-timesheet.html
- https://apidocs.peoplehr.com/employee-document.html
- https://apidocs.peoplehr.com/company-document.html
servers:
- url: https://api.peoplehr.net
paths:
/Absence:
post:
operationId: post_Absence
tags:
- Absence
summary: Add New Absence
x-source: https://apidocs.peoplehr.com/absence.html
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostAbsenceRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostAbsenceResponse'
x-evidence:
kind: documentation
/CompanyDocument:
post:
operationId: post_CompanyDocument
tags:
- Companydocument
summary: Get Company Document
x-source: https://apidocs.peoplehr.com/company-document.html
parameters:
- name: APIKey
in: query
required: true
schema:
type: string
description: 'API key schema required: EMPLOYEE_DOCUMENT'
- name: Action
in: query
required: true
schema:
type: string
description: 'Action: GetCompanyDocumentById'
- name: CompanyId
in: query
required: true
schema:
type: string
description: Internal company id
- name: DocumentIds
in: query
required: true
schema:
type: array
description: Array of document ids
- name: UserId
in: query
required: false
schema:
type: string
description: Optional user id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostCompanydocumentRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostCompanydocumentResponse'
x-evidence:
kind: documentation
/Employee:
post:
operationId: post_Employee
tags:
- Employee
summary: Employee
description: Operations are selected by the Action field in the request body, not by the URL or HTTP verb. Each resource has a single endpoint,
e.g. POST https://api.peoplehr.net/Employee.
x-source: https://apidocs.peoplehr.com/reconciliation.html
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostEmployeeRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/EmployeeDocument:
post:
operationId: post_EmployeeDocument
tags:
- Employeedocument
summary: Employee Document — Access PeopleHR API v4.0
x-source: https://apidocs.peoplehr.com/employee-document.html
parameters:
- name: APIKey
in: query
required: true
schema:
type: string
description: 'API key schema required: EMPLOYEE_DOCUMENT'
- name: Action
in: query
required: true
schema:
type: string
description: One of UploadEmployeeDocument, UploadEmployeeDocumentLink, GetAllDocument, GetDocumentById, GetDocumentDeeplinkById
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostEmployeedocumentRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostEmployeedocumentResponse'
x-evidence:
kind: documentation
/Holiday:
post:
operationId: post_Holiday
tags:
- Holiday
summary: Add New Holiday
x-source: https://apidocs.peoplehr.com/holiday.html
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostHolidayRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostHolidayResponse'
x-evidence:
kind: documentation
/HolidayEntitlements:
post:
operationId: post_HolidayEntitlements
tags:
- Holidayentitlements
summary: Holiday Entitlements
x-source: https://apidocs.peoplehr.com/holiday-entitlements.html
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostHolidayentitlementsRequest'
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostHolidayentitlementsResponse'
x-evidence:
kind: documentation
/Late:
post:
operationId: post_Late
tags:
- Late
summary: Employee Late — Access PeopleHR API v4.0
x-source: https://apidocs.peoplehr.com/late.html
parameters:
- name: APIKey
in: query
required: true
schema:
type: string
description: 'API key schema required: EMPLOYEE'
- name: Action
in: query
required: true
schema:
type: string
description: One of GetLateByEmployeeId, AddNewLate, UpdateLate, DeleteLate
- name: EmployeeId
in: query
required: false
schema:
type: string
description: Employee identifier
- name: StartDate
in: query
required: false
schema:
type: string
description: date (yyyy-MM-dd) – optional for GetLateByEmployeeId
- name: EndDate
in: query
required: false
schema:
type: string
description: date (yyyy-MM-dd) – optional for GetLateByEmployeeId
- name: LateDate
in: query
required: false
schema:
type: string
description: date (yyyy-MM-dd) – required for AddNewLate, UpdateLate, DeleteLate
- name: HowLate
in: query
required: false
schema:
type: string
description: Late minutes – required for AddNewLate, UpdateLate
- name: Comments
in: query
required: false
schema:
type: string
description: Optional comments
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostLateRequest'
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostLateResponse'
x-evidence:
kind: documentation
/MaternityPaternity:
post:
operationId: post_MaternityPaternity
tags:
- Maternitypaternity
summary: Maternity / Paternity — Access PeopleHR API v4.0
x-source: https://apidocs.peoplehr.com/maternity-paternity.html
parameters:
- name: APIKey
in: header
required: true
schema:
type: string
description: 'API key schema required: EMPLOYEE'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostMaternitypaternityRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostMaternitypaternityResponse'
x-evidence:
kind: documentation
/OtherEvent:
post:
operationId: post_OtherEvent
tags:
- Otherevent
summary: All actions are invoked by POSTing a JSON body to the endpoint.
x-source: https://apidocs.peoplehr.com/other-event.html
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostOthereventRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostOthereventResponse'
x-evidence:
kind: documentation
/ProjectTimesheet:
post:
operationId: post_ProjectTimesheet
tags:
- Projecttimesheet
summary: Employee Project Timesheet — Access PeopleHR API v4.0
x-source: https://apidocs.peoplehr.com/project-timesheet.html
parameters:
- name: APIKey
in: query
required: true
schema:
type: string
description: 'API key schema required: TIMESHEET'
- name: Action
in: query
required: true
schema:
type: string
description: One of the documented actions (e.g., GetProjectTimesheetDetail, CreateProjectTimesheet, UpdateProjectTimesheet, DeleteProjectTimesheet,
etc.)
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostProjecttimesheetRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostProjecttimesheetResponse'
x-evidence:
kind: documentation
/Salary:
post:
operationId: post_Salary
tags:
- Salary
summary: Employee Salary — Access PeopleHR API v4.0
x-source: https://apidocs.peoplehr.com/salary.html
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostSalaryRequest'
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostSalaryResponse'
x-evidence:
kind: documentation
/Timesheet:
post:
operationId: post_Timesheet
tags:
- Timesheet
summary: Employee Timesheet — Access PeopleHR API v4.0
x-source: https://apidocs.peoplehr.com/timesheet.html
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostTimesheetRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostTimesheetResponse'
x-evidence:
kind: documentation
components:
schemas:
PostAbsenceRequest:
type: object
properties:
APIKey:
type: string
description: API key for the Absence schema
Action:
type: string
description: Must be set to "AddNewAbsence"
EmployeeId:
type: string
description: Employee identifier
DurationType:
type: string
description: 1 = day or more, 2 = half day, 3 = quarter day
Reason:
type: string
description: Reason for the absence
StartDate:
type: string
description: Start date of the absence (YYYY‑MM‑DD)
EndDate:
type: string
description: End date of the absence (YYYY‑MM‑DD)
Duration:
type: string
description: Length of the absence in days
PartOfDay:
type: string
description: AM / PM for part‑day absences
AbsencePaidStatus:
type: string
description: 1 = UNPAID, 2 = PAID, 3 = PAID_AT_OTHER_RATE
EmergencyLeave:
type: string
description: Boolean string indicating emergency leave
AddComments:
type: array
description: Optional collection of comment objects
AddFiles:
type: array
description: Optional collection of file objects (DocumentName, File, Description)
required:
- APIKey
- Action
- EmployeeId
- DurationType
- Reason
- StartDate
- EndDate
- Duration
- AbsencePaidStatus
- EmergencyLeave
PostAbsenceResponse:
type: object
properties:
isError:
type: boolean
description: Indicates if an error occurred
Status:
type: integer
description: 0 on success
Message:
type: string
description: Human‑readable status message
Result:
type: object
description: Contains AbsenceLeaveTxnId of the newly created record
PostCompanydocumentRequest:
type: object
properties:
APIKey:
type: string
Action:
type: string
description: GetCompanyDocumentById
CompanyId:
type: string
DocumentIds:
type: array
description: Array of string
UserId:
type: string
required:
- APIKey
- Action
- CompanyId
- DocumentIds
PostCompanydocumentResponse:
type: object
properties:
isError:
type: boolean
Status:
type: integer
Message:
type: string
Result:
type: array
description: Array of document objects
CompanyDocument:
type: array
description: Always returned empty
DocumentId:
type: integer
description: JSON number
DocumentName:
type: string
description: Includes the file extension
Category:
type: integer
description: Category internal id
FormattedAddedOnDate:
type: string
description: Returned empty
AddedOnDateTime:
type: string
description: Returned empty
DocumentLink:
type: string
description: Signed short‑lived download URL
Extension:
type: string
description: File extension without dot
DocumentType:
type: integer
description: Byte value
EmployeeAccess:
type: boolean
ManagerAccess:
type: boolean
URL:
type: string
description: Empty
PostEmployeeRequest:
type: object
properties:
Action:
type: string
description: The action to perform, selected from the list of supported actions for the Employee resource.
required:
- Action
PostEmployeedocumentRequest:
type: object
properties:
EmployeeId:
type: string
description: Employee identifier (string for most actions, numeric internal id for GetDocumentDeeplinkById)
Category:
type: string
description: Managed list category (required for upload actions)
EmployeeAccess:
type: string
description: Employee access flag
ManagerAccess:
type: string
description: Manager access flag
SignatureRequired:
type: string
description: Signature required flag
ManagerSignatureRequired:
type: string
description: Manager signature required flag
DocumentName:
type: string
description: Name of the document
Description:
type: string
description: Optional description
File:
type: string
description: Base64 encoded file contents (for UploadEmployeeDocument)
ExternalURL:
type: string
description: External URL (for UploadEmployeeDocumentLink)
DocumentId:
type: string
description: Document identifier (for GetDocumentById)
DocumentIds:
type: array
description: Array of document IDs (for GetDocumentDeeplinkById)
CompanyId:
type: string
description: Company identifier (for GetDocumentDeeplinkById)
required:
- EmployeeId
- Category
- EmployeeAccess
- ManagerAccess
- SignatureRequired
- ManagerSignatureRequired
- DocumentName
- File
- DocumentId
- DocumentIds
- CompanyId
PostEmployeedocumentResponse:
type: object
properties:
isError:
type: boolean
description: Indicates if an error occurred
Status:
type: integer
description: Status code (0 for success, other values for errors)
Message:
type: string
description: Human‑readable message
Result:
type: string
description: Action‑specific result (null for upload actions, array of objects for retrieval actions)
PostHolidayRequest:
type: object
properties:
APIKey:
type: string
description: 'API key schema required: HOLIDAY'
Action:
type: string
description: AddNewHoliday
EmployeeId:
type: string
DurationType:
type: string
StartDate:
type: string
EndDate:
type: string
DurationInDays:
type: string
DurationInMinutes:
type: string
PartOfDay:
type: string
Comments:
type: string
required:
- APIKey
- Action
- EmployeeId
- DurationType
- StartDate
- EndDate
- DurationInDays
- DurationInMinutes
PostHolidayResponse:
type: object
properties:
isError:
type: boolean
Status:
type: integer
Message:
type: string
Result:
type: object
description: Contains AnnualLeaveTxnId of the added holiday
Result.AnnualLeaveTxnId:
type: integer
PostHolidayentitlementsRequest:
type: object
properties:
APIKey:
type: string
description: API key for the HolidayEntitlements schema
Action:
type: string
description: One of the documented actions (e.g., GetHolidayEntitlement, GetAllHolidayEntitlement, GetNextYearHolidayEntitlement, UpdateHolidayEntitlement,
UpdateNextYearHolidayEntitlement)
EmployeeId:
type: string
description: Employee identifier (required for actions that need it)
StartDate:
type: string
description: Start date filter (used by GetHolidayEntitlement and GetAllHolidayEntitlement)
EndDate:
type: string
description: End date filter (used by GetHolidayEntitlement and GetAllHolidayEntitlement)
EntitlementThisYear:
type: string
description: New entitlement value for the current year (used by UpdateHolidayEntitlement)
EntitlementNextYear:
type: string
description: New entitlement value for next year (used by UpdateNextYearHolidayEntitlement)
ReasonForChange:
type: string
description: Reason for the entitlement change (required for update actions)
required:
- APIKey
- Action
PostHolidayentitlementsResponse:
type: object
properties:
isError:
type: boolean
description: Indicates if an error occurred
Status:
type: integer
description: Numeric status code (0 for success)
Message:
type: string
description: Human‑readable status message
Result:
type: object
description: Action‑specific result; may be an array of entitlement objects or a single entitlement object, or null for update actions
PostLateRequest:
type: object
properties:
APIKey:
type: string
Action:
type: string
EmployeeId:
type: string
StartDate:
type: string
description: yyyy-MM-dd
EndDate:
type: string
description: yyyy-MM-dd
LateDate:
type: string
description: yyyy-MM-dd
HowLate:
type: string
Comments:
type: string
required:
- APIKey
- Action
- EmployeeId
- LateDate
- HowLate
PostLateResponse:
type: object
properties:
isError:
type: boolean
Status:
type: integer
Message:
type: string
Result:
type: array
description: Array of objects for GetLateByEmployeeId; null for other actions
PostMaternitypaternityRequest:
type: object
properties:
Action:
type: string
description: One of the actions documented (e.g., GetByMaternityPaternityId, GetMaternityPaternityByEmployeeId, AddNewMaternityPaternity,
UpdateMaternityPaternity, UpdateMaternityPaternityReferenceId, DeleteMaternityPaternity)
EmployeeId:
type: string
description: Employee identifier
MaternityPaternityTxnId:
type: string
description: Transaction ID for specific actions
DueDate:
type: string
description: Due date (yyyy-MM-dd) for Add/Update actions
ActualStartDate:
type: string
description: Actual start date (yyyy-MM-dd)
ActualEndDate:
type: string
description: Actual end date (yyyy-MM-dd)
AddComments:
type: array
description: Array of comment objects
AddFiles:
type: array
description: Array of file objects
ReferenceId:
type: string
description: Reference ID for UpdateMaternityPaternityReferenceId
required:
- Action
- EmployeeId
PostMaternitypaternityResponse:
type: object
properties:
isError:
type: boolean
description: Indicates if an error occurred
Status:
type: integer
description: Status code (0 for success)
Message:
type: string
description: Human‑readable message
Result:
type: object
description: Action‑specific result (e.g., record details or MaternityPaternityTxnId)
PostOthereventRequest:
type: object
properties:
APIKey:
type: string
description: 'API key schema required: EMPLOYEE'
Action:
type: string
description: The action to perform, e.g., getothereventdetail, addotherevent, updateotherevent, etc.
required:
- APIKey
- Action
PostOthereventResponse:
type: object
properties:
isError:
type: boolean
description: Indicates if an error occurred.
Status:
type: integer
description: Numeric status code (0 for success).
Message:
type: string
description: Human‑readable message describing the result.
Result:
type: object
description: Action‑specific result payload (may be an object, array, or null).
PostProjecttimesheetRequest:
type: object
properties:
EmployeeId:
type: string
StartDate:
type: string
EndDate:
type: string
TransactionId:
type: string
ProjectTimesheetDate:
type: string
TimesheetProject:
type: string
TimesheetTask:
type: string
TimesheetDetail:
type: string
StartTime:
type: string
EndTime:
type: string
TotalHours:
type: string
Quantity:
type: string
Notes:
type: string
ProjectName:
type: string
InUse:
type: string
New_ProjectName:
type: string
ProjectTaskName:
type: string
New_ProjectTaskName:
type: string
ProjectTaskDetailName:
type: string
New_ProjectTaskDetailName:
type: string
required:
- EmployeeId
PostProjecttimesheetResponse:
type: object
properties:
isError:
type: boolean
Status:
type: integer
Message:
type: string
Result:
type: string
PostSalaryRequest:
type: object
properties:
APIKey:
type: string
description: 'API key for authentication (schema: SALARY).'
Action:
type: string
description: One of GetSalaryDetail, GetAllSalaryDetails, CreateNewSalary, DeleteSalary.
EmployeeId:
type: string
description: Employee identifier (required for GetSalaryDetail, CreateNewSalary, DeleteSalary).
IsIncludeHistory:
type: string
description: Include history flag (required for GetSalaryDetail, GetAllSalaryDetails).
EffectiveFrom:
type: string
description: Effective date of the salary record (required for CreateNewSalary, DeleteSalary).
SalaryType:
type: string
description: Type of salary (required for CreateNewSalary).
PaymentFrequency:
type: string
description: Payment frequency (required for CreateNewSalary).
SalaryAmount:
type: string
description: Salary amount (required for CreateNewSalary).
CurrencyCode:
type: string
description: Currency code (required for CreateNewSalary).
ChangeReason:
type: string
description: Reason for change (required for CreateNewSalary).
Comments:
type: string
description: Optional comments.
Deductions:
type: array
description: Array of deduction objects (optional for CreateNewSalary).
Entitlements:
type: array
description: Array of entitlement objects (optional for CreateNewSalary).
required:
- APIKey
- Action
PostSalaryResponse:
type: object
properties:
isError:
type: boolean
description: Indicates if an error occurred.
Status:
type: integer
description: Numeric status code (0 for success).
Message:
type: string
description: Human‑readable status message.
Result:
type: object
description: Action‑specific result payload (array for GetSalaryDetail, object for GetAllSalaryDetails, null for CreateNewSalary/DeleteSalary).
PostTimesheetRequest:
type: object
properties:
APIKey:
type: string
description: 'API key schema required: TIMESHEET'
Action:
type: string
description: One of GetTimesheetDetail, CreateNewTimesheet, UpdateTimesheet, DeleteTimesheet
EmployeeId:
type: string
description: Employee identifier
StartDate:
type: string
description: Start date for GetTimesheetDetail
EndDate:
type: string
description: End date for GetTimesheetDetail
TimesheetDate:
type: string
description: Date of the timesheet for create, update, delete
TimeIn1:
type: string
TimeOut1:
type: string
TimeIn2:
type: string
TimeOut2:
type: string
TimeIn3:
type: string
TimeOut3:
type: string
TimeIn4:
type: string
TimeOut4:
type: string
TimeIn5:
type: string
TimeOut5:
type: string
TimeIn6:
type: string
TimeOut6:
type: string
TimeIn7:
type: string
TimeOut7:
type: string
TimeIn8:
type: string
TimeOut8:
type: string
TimeIn9:
type: string
TimeOut9:
type: string
TimeIn10:
type: string
TimeOut10:
type: string
TimeIn11:
type: string
TimeOut11:
type: string
TimeIn12:
type: string
TimeOut12:
type: string
TimeIn13:
type: string
TimeOut13:
type: string
TimeIn14:
type: string
TimeOut14:
type: string
TimeIn15:
type: string
TimeOut15:
type: string
Comments:
type: string
required:
- APIKey
- Action
- EmployeeId
PostTimesheetResponse:
type: object
properties:
isError:
type: boolean
Status:
type: integer
Message:
type: string
Result:
type: string
tags:
- name: Absence
- name: Companydocument
- name: Employee
- name: Employeedocument
- name: Holiday
- name: Holidayentitlements
- name: Late
- name: Maternitypaternity
- name: Otherevent
- name: Projecttimesheet
- name: Salary
- name: Timesheet