Personio Personnel Data
Mock the Personio personnel data API to build HR integrations, attendance dashboards, and document workflows without a live Personio tenant.
[01]
About
Mock all 29 endpoints of the Personio Personnel Data API: read and write employees, attendances, absences, documents, and time-off types. Useful for testing HRIS sync jobs, attendance reports, or any integration that talks to Personio without standing up a real tenant.
Endpoints
29 across 6 resource groups
Methods
GET 16 · POST 6 · PATCH 3 · DEL 4 none deprecated
OpenAPI
3.0.0 spec version 1.0
Source spec
182 KB · YAML
[02]
Endpoints
| GET |
/company/employees
|
List Company Employees. Mocked via Mockzilla.
|
| POST |
/company/employees
|
Create an employee Creates a new employee. If the employee's status is not provided, it will be set based on the hire_date value - if it is in the past, status will be active, otherwise onboarding. This endpoint responds with the id of the created employee in case of success.
|
| PATCH |
/company/employees/{employee_id}
|
Update an employee Updates an existing employee. Note: Only the fields that are listed in the body example are updatable. Attributes that are not part of the sample request body but are present inside the request are ignored. It's not possible to update the Email field.
|
| GET |
/company/employees/{employee_id}
|
Show employee by ID
|
| GET |
/company/employees/{employee_id}/absences/balance
|
Retrieve the absence balance for a specific employee
|
| GET |
/company/employees/custom-attributes
|
This endpoint is an alias for /company/employees/attributes. Available as a Mockzilla mock endpoint.
|
| GET |
/company/employees/attributes
|
Lists all the allowed atrributes per API credentials including custom (dynamic) attributes.
|
| GET |
/company/employees/{employee_id}/profile-picture/{width}
|
Show employee's profile picture. If profile picture is missing, the 404 error will be thrown. The Profile Picture attribute has to be whitelisted.
|
| GET |
/company/attendances
|
Fetch attendance data for the company employees. The result can be paginated and filtered by period, the date and/or time they were updated, and/or specific employee/employees. The result contains a list of attendances.
|
| POST |
/company/attendances
|
This endpoint is responsible for adding attendance data for the company employees. It is possible to add attendances for one or many employees at the same time. The payload sent on the request should be a list of attendance periods, in the form of an array containing attendance period objects.
|
| DEL |
/company/attendances/{id}
|
This endpoint is responsible for deleting attendance data for the company employees. Mockzilla mock: no signup, no API key.
|
| PATCH |
/company/attendances/{id}
|
This endpoint is responsible for updating attendance data for the company employees. Attributes are not required and if not specified, the current value will be used. It is not possible to change the employee id.
|
| GET |
/company/attendances/projects
|
Provides a list of all company projects.
|
| POST |
/company/attendances/projects
|
Creates a project into the company account
|
| DEL |
/company/attendances/projects/{id}
|
Deletes a project from the company account
|
| PATCH |
/company/attendances/projects/{id}
|
Updates a project with the given data. Served by the Mockzilla mock runtime.
|
| GET |
/company/time-off-types
|
Provides a list of absence types for absences time unit set to either days or hours. For example 'Paid vacation', 'Parental leave' or 'Home office'.
|
| GET |
/company/time-offs
|
Fetches absence periods for absences with time unit set to days. The result can be paginated and filtered by period and/or specific employee/employees. The result contains a list of absence periods.
|
| POST |
/company/time-offs
|
Adds absence data for absence types with time unit set to days.
|
| DEL |
/company/time-offs/{id}
|
Deletes absence period data for absence types with time unit set to days.
|
| GET |
/company/time-offs/{id}
|
Gets an absence period for absences with time unit set to days. Mocked via Mockzilla.
|
| GET |
/company/absence-periods
|
Fetches absence periods for absences with time unit set to hours. The result can be paginated and filtered by period and/or specific employee/employees. The result contains a list of hourly absence periods.
|
| POST |
/company/absence-periods
|
Adds absence data for absence types with time unit set to hours. Note that creating periods for absence types with certificate requirement enabled is not supported!
|
| DEL |
/company/absence-periods/{id}
|
Deletes absence period data for absence types with time unit set to hours.
|
| GET |
/company/document-categories
|
This endpoint is responsible for fetching all document categories of the company. The result contains a list of document categories.
|
| POST |
/company/documents
|
This endpoint is responsible for uploading documents for the company employees. Available as a Mockzilla mock endpoint.
|
| GET |
/company/custom-reports/reports
|
This endpoint provides you with metadata about existing custom reports in your Personio account, such as report name, report type, report date / timeframe.
|
| GET |
/company/custom-reports/reports/{report_id}
|
This endpoint provides you with the data of an existing Custom Report.
|
| GET |
/company/custom-reports/columns
|
This endpoint provides human-readable labels for report table columns. It is particularly important if you get a report with custom attributes or absence data to match the column IDs to the translation.
|