Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The Middleware Platform powers a number of integrations with LinkedIn products. Once a customer enables an integration with your CRM via the Onboarding Configuration Plugin, certain integration types require you to send various integration configuration data for the customer.
Each configuration has a unique key and a specific value data type as described below.
Note
The latest API version is 202603. Use this version in the LinkedIn-Version header for all API requests to access the most recent features and improvements.
Integration Types
| Type | Description | Product | Integration Context |
|---|---|---|---|
| APPLY_CONNECT | Used for the Apply Connect integration. | LinkedIn Recruiter | organization URN |
| APPLY_WITH_LINKEDIN | Used for the Apply with LinkedIn integration. | LinkedIn Recruiter | organization URN |
| CSA_API | Used to access recruiter data as part of Recruiter System Connect | LinkedIn Recruiter. | contract URN |
| IN_ATS_INDICATOR | Used for the In-ATS Indicator feature within Recruiter System Connect. | LinkedIn Recruiter | organization URN |
| ONE_CLICK_EXPORT | Used for the One-Click Export feature within Recruiter System Connect. | LinkedIn Recruiter | organization URN |
| PROFILE_PLUGIN | Used for the Profile Plugin portion of Recruiter System Connect. | LinkedIn Recruiter | organization URN |
| RECOMMENDED_MATCHES | Used for the Recommended Matches feature within Recruiter System Connect. | LinkedIn Recruiter | organization URN |
| UNIFIED_SEARCH | Used for the Unified Search feature within Recruiter System Connect. | LinkedIn Recruiter | organization URN |
| CRM_CSA_API | Used to access recruiter data as part of Talent CRM Connect | LinkedIn Recruiter. | contract URN |
| CRM_ONE_CLICK_EXPORT | Used for the CRM One-Click Export feature within Talent CRM Connect. | LinkedIn Recruiter | organization URN |
| IN_CRM_INDICATOR | Used for the In-ATS Indicator feature within Talent CRM Connect. | LinkedIn Recruiter | organization URN |
| CRM_PROFILE_PLUGIN | Used for the Profile Plugin portion of Talent CRM Connect. | LinkedIn Recruiter | organization URN |
Integration Configuration Keys
| Configuration Key | Description | Integration Types | Required | Program |
|---|---|---|---|---|
| CALLBACK_URL | Customer's HTTPS endpoint which will listen for candidate export events. The URL should be unique per customer. Value Format: string | ONE_CLICK_EXPORT | Yes | Recruiter System Connect |
| JOB_POSTING_VIEWERS | Governs who may view job postings within the One-Click Export drop-down. Only valid value is "ALL_PRODUCT_USERS". Value Format: string | ONE_CLICK_EXPORT | Yes, if a customer will not be using ACLs or the ATS does not support Sync ACLs. | Recruiter System Connect |
| APPLICATION_VIEWERS | Governs who may view job-related data (Interview Feedback, Notes, Applications, and Stages) within the In-ATS indicator. Only valid value is "ALL_PRODUCT_USERS". Value Format: string | IN_ATS_INDICATOR | Yes, if a customer will not be using ACLs or the ATS does not support Sync ACLs. | Recruiter System Connect |
| CALLBACK_URL | Customer's HTTPS endpoint which will listen for candidate export events. The URL should be unique per customer. Value Format: string | CRM_ONE_CLICK_EXPORT | Yes | CRM Connect |
Sync Integration Configurations
Upsert Integration Configurations
Once a customer creates an integration requiring configuration, you must create the configuration using the following API before they can enable the integration.
Values for the integration key are obtained via the ATS Integration Configuration Plugin when a customer enables integrations.
Request Body Fields
| Field | Description | Format | Required |
|---|---|---|---|
| configurationValue | The value of the specific configuration | Depends on the configuration key | Yes |
Sample Integration Configurations Upsert Request
curl --location --globoff --request PUT 'https://api.linkedin.com/rest/integrationConfigurations?ids[0].integrationContext=urn%3Ali%3Aorganization%3A{org_id}&ids[0].integrationType=CRM_ONE_CLICK_EXPORT&ids[0].tenantType=RECRUITER&ids[0].configurationName=CALLBACK_URL' \
--header 'x-restli-method: batch_update' \
--header 'LinkedIn-Version: 202602' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {token}' \
--data '{
"entities": {
"integrationContext=urn%3Ali%3Aorganization%3A{org_id}&integrationType=CRM_ONE_CLICK_EXPORT&tenantType=RECRUITER&configurationName=CALLBACK_URL": {
"configurationValue": {
"string": "https://customer.callback.com/goes/here"
}
}
}
}'
curl --location --globoff --request PUT 'https://api.linkedin.com/rest/integrationConfigurations?ids[0].integrationContext=urn%3Ali%3Aorganization%3A{org_id}&ids[0].integrationType=CRM_ONE_CLICK_EXPORT&ids[0].tenantType=RECRUITER&ids[0].configurationName=CALLBACK_URL' \
--header 'x-restli-method: batch_update' \
--header 'LinkedIn-Version: 202603' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {token}' \
--data '{
"entities": {
"integrationContext=urn%3Ali%3Aorganization%3A{org_id}&integrationType=CRM_ONE_CLICK_EXPORT&tenantType=RECRUITER&configurationName=CALLBACK_URL": {
"configurationValue": {
"string": "https://customer.callback.com/goes/here"
}
}
}
}'
URL:
PUT https://api.linkedin.com/v2/atsIntegrations/integrationContext={integrationContext}&integrationType={integrationType}&tenantType={tenantType}&dataProvider=ATS/configurations?ids={configuration key}
Headers:
Authorization: Bearer {token}
x-restli-method: batch_update
Sample URL:
PUT https://api.linkedin.com/v2/atsIntegrations/integrationContext=urn:li:organization:{org_id}&integrationType=ONE_CLICK_EXPORT&tenantType=RECRUITER&dataProvider=ATS/configurations?ids=CALLBACK_URL&ids=JOB_POSTING_VIEWERS
Request Body:
{
"entities": {
"CALLBACK_URL": {
"configurationValue": {
"string": "https://customer.callback.com/goes/here"
}
},
"JOB_POSTING_VIEWERS": {
"configurationValue": {
"string": "ALL_PRODUCT_USERS"
}
}
}
}
Sample Integration Configurations Upsert Response
Returns 200 OK, and you will find the status of each entity in the response body.
{
"results": {
"configurationName=CALLBACK_URL&integrationContext=urn%3Ali%3Aorganization%3A{org_id}&integrationType=CRM_ONE_CLICK_EXPORT&tenantType=RECRUITER": {
"status": 204
}
},
"errors": {}
}
{
"results": {
"JOB_POSTING_VIEWERS": {
"status": 204
},
"CALLBACK_URL": {
"status": 204
}
},
"errors": {}
}
Delete Integration Configurations
DELETE https://api.linkedin.com/v2/atsIntegrations/integrationContext={integrationContext}&integrationType={integrationType}&tenantType={tenantType}&dataProvider=ATS/configurations?ids={configuration key}
Note
You can only delete the following configurations: JOB_POSTING_VIEWERS or APPLICATION_VIEWERS
Sample Integrations Configurations Delete Response
Returns 200 OK response code, and you will find the status of each entity in the response body.
Sample Integrations Configurations Delete Response Body
{
"errors": {},
"results": {
"CALLBACK_URL": {
"status": 204
}
}
}
Note
Be sure to check the response for error statuses corresponding to individual entities you submit.
Verify Integration Configurations
After creating or updating integration configurations, use the following API to retrieve what was submitted.
Sample Integration Configurations Get Request
curl --location --globoff 'https://api.linkedin.com/rest/integrationConfigurations?ids[0].integrationContext=urn%3Ali%3Aorganization%3A{org_id}&ids[0].integrationType=CRM_ONE_CLICK_EXPORT&ids[0].tenantType=RECRUITER&ids[0].configurationName=CALLBACK_URL' \
--header 'LinkedIn-Version: 202602' \
--header 'Authorization: Bearer {token}'
curl --location --globoff 'https://api.linkedin.com/rest/integrationConfigurations?ids[0].integrationContext=urn%3Ali%3Aorganization%3A{org_id}&ids[0].integrationType=CRM_ONE_CLICK_EXPORT&ids[0].tenantType=RECRUITER&ids[0].configurationName=CALLBACK_URL' \
--header 'LinkedIn-Version: 202603' \
--header 'Authorization: Bearer {token}'
GET https://api.linkedin.com/v2/atsIntegrations/integrationContext={integrationContext}&integrationType={integrationType}&tenantType={tenantType}&dataProvider=ATS/configurations?ids={config key}
Sample Integration Configurations Get Response
A successful request will return configuration values in the response body and a 200 OK response code.
Sample Integration Configurations Get Response Body
{
"results": {
"configurationName=CALLBACK_URL&integrationContext=urn%3Ali%3Aorganization%3A{org_id}&integrationType=CRM_ONE_CLICK_EXPORT&tenantType=RECRUITER": {
"configurationValue": {
"string": "https://customer.callback.com/goes/here"
}
}
},
"statuses": {},
"errors": {}
}
{
"errors": {},
"results": {
"CALLBACK_URL": {
"configurationValue": {
"string": "https://customer.callback.com/goes/here"
}
}
}
}