Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
As LinkedIn partners, use LinkedIn's Provisioning API to create, configure, and manage developer applications on behalf of your customers which is an initial step in managing and enabling their integrations. You can also rotate and manage application secrets to maintain security.
Getting Started
Requesting Access
In order to access the specialized Provisioning APIs, reach out to a LinkedIn Partner Engineering representative to have a developer application configured with the required permissions.
All API requests require authorization .
Create Application
Use the following endpoint to create a child application:
POST https://api.linkedin.com/v2/provisionedApplications
Request Body Fields
| Field | Description | Format | Required |
|---|---|---|---|
| uniqueForeignId | A unique ID that represents the child application being created, as seen from the parent/calling application. This value must be unique across all child applications that belong to the parent application. Attempting to create more than one child with the same uniqueForeignId value will result in a conflict error. Use your customer identifier for this value. | String | Yes |
| name | Display name of the child application. This value will be shown to users in the OAuth 2.0 authorization dialog for 3-legged scenarios. Additionally, it will be used by LinkedIn as a reference value. Note: Usage of "LinkedIn" in name is no supported. |
String (max 50 chars) Format: "{ATS Name} - {Customer Name}" | Yes |
| description | A brief description of the child application. This value is only used by LinkedIn administration and is not shown to end-users of the application. | String | Yes |
| oauth2AuthorizedCallbackUrls | List of fully qualified OAuth 2.0 redirect URLs to allow. | String[] | No |
| validJsSdkDomains | List of fully qualified JavaScript SDK domain names. | String[] | No |
sample request body
{
"description": "My favorite customer",
"name": "My ATS - My Customer",
"oauth2AuthorizedCallbackUrls": [
"https://www.foo.com/",
"https://www.bar.com/"
],
"uniqueForeignId": "07d5284a-d0a1-45a3-93c0-ac69c9c78",
"validJsSdkDomains": [
"https://www.foo.js",
"https://www.bar.js"
]
}
Response Code
A successful request will return a 201 Created response code.
Response Body Fields
| Field | Description | Format |
|---|---|---|
| key | URN representing the application that was created. | String |
| credentials.client_id | Client ID value used during OAuth 2.0 token request flow. | String |
| credentials.client_secret | Client Secret value used during OAuth 2.0 token request flow. May be up to 256 characters in length and contain non-alphanumeric characters. | String |
Sample Response
{
"credentials": {
"client_id": "1234567890",
"client_secret": "ABCDEFGHIJKL"
},
"key": "urn:li:developerApplication:234"
}
Update Application
Use the following endpoint to update a child application:
POST https://api.linkedin.com/v2/provisionedApplications/{developer application URN}
Note
Obtain the developer application URN from the key field in the Create Application response.
This action will write over the existing list of Javascript SDK domain names with the list of domains in the request body of this POST call. As such, be sure to take note of the JS domains created with each child application.
Request Body Fields
| Field | Description | Format | Required |
|---|---|---|---|
| validJsSdkDomains | List of fully qualified JavaScript SDK domain names. | String[] | No |
Sample Request Body
{
"patch": {
"$set": {
"validJsSdkDomains": [
"https://www.foo.js",
"https://www.bar.js"
]
}
}
}
Response Code
A successful request will return a 204 No Content response code.
Get Application
Use the following endpoint to get attributes of a child application:
GET https://api.linkedin.com/v2/provisionedApplications?q=credentialsByUniqueForeignId&uniqueForeignId={uniqueForeignId}
Request Parameter
| Field | Description | Format | Required |
|---|---|---|---|
| uniqueForeignId | Unique ID of the child application supplied during the creation of the child application. | String | Yes |
Response Code
A successful request will return a 200 OK response code.
Sample Response
{
"elements": [
{
"credentials": {
"client_id": "123abc456defga"
},
"uniqueForeignId": "Unique Foreign ID",
"name": "Test Application",
"description": "This is my test application",
"validJsSdkDomains": [
"http://linkedin.com",
"https://linkedin.com"
],
"key": "urn:li:developerApplication:1234567",
"oauth2AuthorizedCallbackUrls": [
"https://www.linkedin.com.com/oauth2/callback",
"http://www.linkedin.com/oauth2/callback"
]
}
]
}
Important
Do not use the client_id and client_secret generated through the Provisioning API right away for token generation or widget loading. Wait at least 5 minutes after creating a child app before performing operations such as:
- Generating access tokens
- Loading widgets with the
client_id
Error Codes
The following error codes can be returned:
| Error Code | Description |
|---|---|
| 404: uniqueForeignId not found | In the situation where the requested foreign ID is not found to be associated with an application managed by the parent application making the request, an HTTP 404 response is returned. |
| 409: uniqueForeignId already exists | In the case where a create call is made and a uniqueForeignID value is provided that is already associated to a child application controlled by the parent calling application, an HTTP 409 - Conflict response code is returned. A parent application will not accept the creation of multiple tenant applications that share the same uniqueForeignId value. |
| 429: request limit exceeded | If the calling application has exceeded its call throttle limits, an HTTP 429 – Too Many Requests status code is returned. |
Manage Application Secrets
Rotate and delete secrets for your child applications to maintain security. Each application can have up to two active secrets, allowing you to rotate credentials without service interruption.
For detailed instructions and API documentation, see Application Secret Management.