The Workleap API developer portal shows all Workleap API endpoints and describes their attributes, request structure, and responses. You can also use the developer portal to generate and edit payloads for each endpoint and send requests.
This article outlines how to create a new user in the developer portal via the POST - Create a user endpoint. However, it is intended to help you understand how to use the developer portal and send requests to any Workleap API endpoint.
Create a user via the Workleap API developer portal
To create a user via the Workleap API, you need to send a request to the create a user endpoint. Open the POST - Create a user endpoint page in our API developer portal to see more details about this endpoint.
First, find the Request body section. Here, you see all the attributes that you can include in your payload request. attributes define the data types that the API expects to receive through payload requests.
In the Request body section, you can see the attributes for create a user POST requests are:
name
title
emails
phoneNumbers
urn:workleap:params:scim:schemas:extension:user:2.0:User
Notice that next to its name, each attribute has a Required status, Type, and Description.
Required - Shows whether an attributes is mandatory or not. If a required parameter is missing from your payload request, you'll get an error response.
Type - Shows the type of value that goes with the attribute.
Description - Describes in plain language what each attribute is.
From the Required column, you see that there is only 1 required attribute for create a user POST requests—emails
. That means payload requests to this endpoint must at least have a value for that attribute; otherwise, they will be rejected.
emails
has the following description in the Description column:
A list of emails associated with the user. The first email is considered the primary email and the secondary emails are considered personal emails.
And what about urn:workleap:params:scim:schemas:extension:user:2.0:User
? This is an example of a custom schema extension. Essentially, it is a customized grouping of attributes.
To take a closer look at the attributes that make up urn:workleap:params:scim:schemas:extension:user:2.0:User
, find the default JSON payload example under the attribute list.
This is the payload section you want to analyze
This is the payload section you want to analyze
"urn:workleap:params:scim:schemas:extension:user:2.0:User": { "productAssignations": ["string"], "bio": "string", "executiveAssignations": ["string"], "collaboratorAssignations": ["string"], "employeeIdentifier": "string", "inviteOnMemberCreation": true }
This custom schema extension is made up of the following attributes:
productAssignations
bio
executiveAssignations
collaboratorAssignations
employeeIdentifier
inviteOnMemberCreation
To learn about what these attributes are, scroll down in the developer portal or use Ctrl/Cmd + F to search for the WorkleapUserRequestExtension section. Here, you see the following table, which shows a Required status, Type, and Description for the attributes above:
Name | Required | Type | Description |
| false | string[] | An array of 3 letters product identifiers indicating which Workleap products the user has been assigned to. The allowed 3 letters product identifiers are Officevibe (wov), Onboarding (onb), LMS (lms), Skills (sks), Pingboard (pbd), Performance (wpm) and Workleap AI (wai). |
| false | string | The bio of the user. This is a short description of the user. |
| false | string[] | An array of team product identifiers indicating which Workleap products the user has been assigned to as an executive. The allowed 3 letters product identifiers are Officevibe (wov), Onboarding (onb), LMS (lms), Skills (sks), Pingboard (pbd), Performance (wpm) and Workleap AI (wai). |
| false | string[] | An array of team product identifiers indicating which Workleap products the user has been assigned to as a collaborator. The allowed 3 letters product identifiers are Officevibe (wov), Onboarding (onb), LMS (lms), Skills (sks), Pingboard (pbd), Performance (wpm) and Workleap AI (wai). |
| false | string | A field to store a custom employee identifier for the user entity. |
| false | boolean | Indicates if the user should be invited upon member creation. |
The Description column shows the expected values for each attribute. If your payload uses other values or formats than those described in the developer portal, your request will fail.
Effects of blank attributes
For most non-required attributes, if the field is left blank in your payload, that data simply isn't sent to Workleap (i.e., nothing related to those attributes changes).
However, some attributes, such as productAssignations
, executiveAssignations
, and collaboratorAssignations
, are tied to the user's roles and product accesses. Because of that, payloads with those attributes reflect what the user's status should be after processing your request.
To give an example, if you were to send an update user PUT request to update an existing user who has access to Officevibe, Performance, and LMS and left the productAssignations
field blank, the API would remove all of their product accesses.
Generate an API key
All requests sent to the Workleap API require an API key generated from your Workleap account for validation.
To generate an API key:
Log in to Workleap and open Settings.
Select Provisioning from the side menu.
Select Connect/View Settings next to API Provisioning.
Select Create Key under Organization management API keys.
Copy the API key and store it securely.
Important: The full API key is only shown once at the time of creation and cannot be recovered if you lose access to it.
Add an API key to a request header
An API key must be in the header of all request payloads sent to the Workleap API.
To add an API key to a request header in the Workleap API developer portal:
Open the Workleap API developer portal.
Select an endpoint from the left-hand list.
Click the Try it button.
Find
workleap-subscription-key
under Headers*.Copy and paste your API key in the value field next to
workleap-subscription-key
.
*Caution: Do not paste your API key into the subscription key field under Authorization.
Create a payload
You can use the Workleap API developer portal to generate formatted payloads for each endpoint. To do so:
Open the Workleap API developer portal.
Select an endpoint from the left-hand list.
Click the Try it button.
Add your API key to the
workleap-subscription-key
under Headers (as outlined in the section above).Locate the Body section to find an editable, preformatted payload for the chosen endpoint.
Add values as needed for each attribute. You can simply replace the attribute type with the desired value.
Make sure all required attributes have a value.
The generated payload is shown at the bottom of the interface under HTTP request. It updates automatically when you make changes to the sections above.
Send your request
Once you have added a value to all the desired attributes of your payload, you can select Send to send your request. After processing your request, the Workleap API will send you a response (see next section).
Note: If you want to use the generated request payload in another API tool, select Copy to copy the payload to your clipboard.
Responses
All API requests get a response that shows the outcome (i.e., whether or not the requested action was successful). If an API request is unsuccessful, the response shows why the request failed.
In the Workleap API developer portal, you can find a list of all the response codes that correspond with each endpoint. For create a user POST requests, you can see that the successful response code is 201.
For 201 (Created) responses, the Workleap API sends you a response payload that outlines the current state of the created user. It might look something like this:
Example 201 (Created) response
Example 201 (Created) response
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User", "urn:workleap:params:scim:schemas:extension:user:2.0:User"],
"userName": null,
"name": {
"givenName": "happy. gilmore",
"familyName": ""
},
"displayName": "happy. gilmore",
"title": "",
"emails": [{
"value": "happy.gilmore@yourcompany.com",
"type": "Work",
"primary": true
}],
"phoneNumbers": [],
"preferredLanguage": "en-US",
"active": false,
"urn:workleap:params:scim:schemas:extension:user:2.0:User": {
"imageUrl": null,
"imageUrls": {},
"isTeamManager": false,
"isOrganizationAdmin": false,
"isReportingManager": false,
"memberState": "Created",
"timeZone": "UTC",
"assignedProducts": [],
"preferredLanguages": ["en-US"],
"bio": "",
"executiveAssignations": [],
"collaboratorAssignations": [],
"employeeIdentifier": ""
},
"id": "615f99e1-18a9-47ca-988f-d47a9c14dfbd",
"meta": {
"resourceType": "User",
"created": "2025-08-14T00:17:32.313+00:00",
"lastModified": null,
"version": "1"
}
}
Notice that the created user in the example above now has the id
value 615f99e1-18a9-47ca-988f-d47a9c14dfbd
. id
values are generated and assigned when new users are created and are what tie all future user management actions to the user.
Note: For many Workleap API user management endpoints, id
is a required attribute (e.g., PUT - Update a user).