Create an employee
Learn how to update employee data fields using Bob’s API
Before you start, review Fields and lists metadata to understand how field IDs and list values work. .
Endpoint URL
To create an employee, use the Create company employee endpoint:
POST https://api.hibob.com/v1/people
Testing tip: We recommend testing this endpoint using an external tool like Postman, rather than the “Try It!” feature. The request parameters need to be formatted exactly as shown below.
How to find out field IDs
You can fetch all available field IDs with Fields Metadata. This will return the fields, with their IDs and other properties:
{
"id": "root.email",
"categoryId": "about",
"categoryDisplayName": "About",
"category": "about",
"name": "Email",
"description": null,
"jsonPath": "email",
"type": "text",
"typeData": {},
"historical": false
},
{
"id": "home.mobilePhone",
"categoryId": "personalContact",
"categoryDisplayName": "Personal contact details",
"category": "personalContact",
"name": "Personal mobile",
"description": null,
"jsonPath": "home.mobilePhone",
"type": "text",
"typeData": {},
"historical": false
}
Request body example
POST /v1/people/2813193532448179017
{
"firstName": "John",
"surname": "Doe",
"email": "[email protected]",
"work": {
"site": "New-York",
"startDate": "2025-09-04",
"title":"Chief Engineer",
"department": "Administration"
}
}Notes:
- Mandatory fields: When creating a new employee, there are 5 required fields:
first name,last name,start date(from Work table) andsite(from Work table).- Recommended fields:
- When the system creates a new employee record in Bob, it also creates a row in the employee's Work table. If the values in this row are not provided correctly upon creation, the user needs to update these values later.
- We recommend providing the whole Work table row, including
work.titleandwork.department.- Reference fields: Values that are references to lists (like
site,work.department, orwork.title) must match existing values in the corresponding list. Otherwise, the request will return an error.
How to build the request body
When sending the POST request, you should send a JSON request body that includes the fields (in a format "id": "value") you want to include when creating the employee:
-
Root fields, like
root.firstNameorroot.emailshould be mentioned with the field name only, for example,firstName. -
Other fields should appear as a structure. For example,
work.departmentshould be sent as a JSON structure:"work": {"department": "Administration"}- An easy way to find out how to consruct the field is to read it using People Search, then look at the JSON structure in the search response to see how to reference the field.
Response format and values
The API returns a machine-readable JSON with additional calculated and read-only properties, such as:
fullName,displayName— derived from the provided name parts.work.tenureDuration,work.tenureYears,work.tenureDurationYears,work.durationOfEmployment,work.yearsOfService— calculated from start dates. IfstartDateis in the future, these values are zero until that date.work.shortStartDate— a formatted version ofstartDate.avatarUrl,coverImageUrl— managed by the server (default images if not provided).
Permissions required
The Service User calling the API must have the correct permissions to create or update employee data. The exact permissions depend on the fields and their categories.
If the service user lacks the right permissions, you may see authorization or field-specific errors.
Make sure the Service User has:
- Features > People > Add new people to the company permission.
- Edit permissions in People’s data and Features for the relevant categories (defined in each field’s metadata).
- Access rights to the employee being created or updated.
To learn more about permissions and access rights, see Categories and permissions.
For details on the available fields, see the People reference guide.
Important: The system doesn’t alert you if only partial permissions are granted. When testing, verify that all expected fields were updated and review any errors that may relate to missing permissions.
Updated 18 days ago
