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.
Warning
Deprecation Notice: The Marketing Version 202508 (Marketing August 2025) will be sunset on August 17, 2026. We recommend that you migrate to the latest versioned APIs to avoid disruptions. For information on all the supported versions, refer to the migrations documentation. If you haven’t yet migrated and have questions, submit a request on the LinkedIn Developer Support Portal.
DMP Segments act as staging entities, which can take in user information from a third-party provider, map them to LinkedIn member profiles, and output Ad Segments, which can then be used with other LinkedIn ads APIs. A DMP segment is tied to a sponsored account.
All API requests are represented in protocol 2.0.0 and require the header:
X-Restli-Protocol-Version: 2.0.0
Permissions
| Permission | Description |
|---|---|
| rw_dmp_segments | Access an authenticated member's DMP Segments. Can manage and read audience DMP segments. This permission belongs to the Audiences program and is not granted automatically as part of the LinkedIn Marketing API Program. |
Create DMP Segment
Creates an empty DMP Segment.
Schema
| Field Name | Type | Description |
|---|---|---|
| account | urn | The sponsored account urn that this DMP segment belongs to. Refer Find Ad Accounts By Authenticated User API to select an ad account. |
| description | string (optional) | A description for this DMP segment. |
| destinations | See DMP Segment Destinations | The destinations and various metadata that the content of this segment will be onboarded to. Currently, the only accepted value is LINKEDIN. |
| name | string | The name of this DMP segment. |
| sourcePlatform | string | The platform from which profiles are imported. Pick the ENUM that fits your organization's use case: DIRECT_API (a LinkedIn advertiser using matched audiences for its own ad account(s)), AGENCY_API (an agency managing audiences on behalf of multiple clients), or PARTNER_API (a platform enabling many LinkedIn advertisers to sync audiences at scale, not an agency). For CSV list upload segments, use LIST_UPLOAD instead. See DMP Segment List Uploads for details. |
| sourceSegmentId | string (optional) | The foreign key on the source platform. This is an optional field that will be indexed and can be used by the source platform to find their segments. |
| type | USER, COMPANY, USER_LIST_UPLOAD, COMPANY_LIST_UPLOAD | The content type of the profiles being imported into this DMP segment. Use USER or COMPANY for streaming segments. For CSV list upload segments, use USER_LIST_UPLOAD or COMPANY_LIST_UPLOAD (with sourcePlatform set to LIST_UPLOAD) — see DMP Segment List Uploads. |
Note
A sponsored account can have a maximum of 1,000 DMP segments. Attempting to create a segment beyond this limit returns a 429 error with code SEGMENT_LIMIT_EXCEEDED. Delete unused segments to free up capacity before creating new ones.
Sample Request
POST https://api.linkedin.com/rest/dmpSegments
{
"name":"DMP Segment 1",
"sourcePlatform":"PARTNER_API",
"account":"urn:li:sponsoredAccount:516848833",
"type":"USER",
"destinations":[
{
"destination":"LINKEDIN"
}
]
}
A successful response returns a 201 Created HTTP status code and the segment ID in the x-restli-id response header.
If the sponsored account has reached the 1,000 segment limit, the API returns a 429 error response:
{
"code": "SEGMENT_LIMIT_EXCEEDED",
"errorDetailType": "com.linkedin.common.error.BadRequest",
"message": "Account has reached the maximum limit of 1000 segments. Please delete unused segments before creating new ones.",
"errorDetails": {
"inputErrors": [
{
"description": "Account has reached the maximum limit of 1000 segments. Please delete unused segments before creating new ones.",
"input": {
"value": {
"stringValue": "urn:li:sponsoredAccount:{accountId}"
},
"inputPath": {
"fieldPath": "/DMPSegment/account"
}
},
"code": "SEGMENT_LIMIT_EXCEEDED",
"maxValue": 1000
}
]
},
"status": 429
}
Get DMP Segment
Retrieve details of a DMP segment using the segment ID. The response returns all the fields listed for the create request and the following additional fields.
Schema
| Field Name | Type | Description |
|---|---|---|
| created | long | Creation timestamp. |
| lastModified | long | Last updated timestamp. |
| id | long | The DMP segment id. |
| inputCount | long (optional) | The number of input entities (companies or users) that the source platform has pushed to this segment. |
| destinations | Object | Please refer destinations segment info to see additional fields returned. |
Sample Request
Sample Response
{
"created":1505229479000,
"destinations":[
{
"created":1505229479000,
"lastModified":1505229479000,
"status":"BUILDING",
"destinationSegmentId": "urn:li:adSegment:848336"
}
],
"name":"Test DMP Segment 2",
"sourcePlatform":"PARTNER_API",
"id":11204,
"lastModified":1505229479000,
"type":"USER",
"account":"urn:li:sponsoredAccount:516848833"
}
Get Multiple DMP Segments
Fetch information on multiple DMP segments in one request.
Sample Request
Sample Response
{
"statuses": {},
"results": {
"10804": {
"created": 1505229200000,
"destinations": [
{
"created": 1505229200000,
"lastModified": 1505229200000,
"status": "BUILDING",
"destinationSegmentId": "urn:li:adSegment:848336"
}
],
"name": "Test DMP Segment 1",
"sourcePlatform": "PARTNER_API",
"id": 10804,
"lastModified": 1505229200000,
"type": "USER",
"account": "urn:li:sponsoredAccount:516848833"
},
"10814": {
"created": 1505229479000,
"destinations": [
{
"created": 1505229479000,
"lastModified": 1505229479000,
"status": "BUILDING",
"destinationSegmentId": "urn:li:adSegment:999336"
}
],
"name": "Test DMP Segment 2",
"sourcePlatform": "PARTNER_API",
"id": 10814,
"lastModified": 1505229479000,
"type": "USER",
"account": "urn:li:sponsoredAccount:516848833"
}
},
"errors": {}
}
This request always returns a 200 OK HTTP status. If some of the IDs in the request are invalid, the results for the other IDs are returned. If none of the IDs in the batch are valid, the empty response { "statuses": {}, "results": {}, "errors": {}} is returned.
Update DMP Segment
Perform partial updates to some of the fields of a DMP Segment. Only name , description , and sourceSegmentId can be modified.
Sample Request
POST https://api.linkedin.com/rest/dmpSegments/10804
{
"patch": {
"$set": {
"name": "New Name"
}
}
}
A successful response returns a 204 No Content HTTP status code.
Find DMP Segments by Account
Use the q=account parameter and the account URN to find DMP segments by the associated sponsored account. For more granular results, add sourcePlatform and sourceSegmentId query parameters to the query.
Sample Request
GET https://api.linkedin.com/rest/dmpSegments?q=account&account=urn:li:sponsoredAccount:516848833
Sample Response
{
"elements": [
{
"account": "urn:li:sponsoredAccount:516848833",
"created": 1505229200000,
"destinations": [
{
"created": 1505229200000,
"destinationSegmentId": "urn:li:adSegment:848336",
"lastModified": 1505229200000,
"status": "BUILDING"
}
],
"id": 10804,
"lastModified": 1505229200000,
"name": "Test DMP Segment 1",
"sourcePlatform": "PARTNER_API",
"type": "USER"
},
{
"account": "urn:li:sponsoredAccount:516848833",
"created": 1505229479000,
"destinations": [
{
"created": 1505229479000,
"destinationSegmentId": "urn:li:adSegment:999336",
"lastModified": 1505229479000,
"status": "BUILDING"
}
],
"id": 10814,
"lastModified": 1505229479000,
"name": "Test DMP Segment 2",
"sourcePlatform": "PARTNER_API",
"type": "USER"
}
],
"paging": {
"count": 10,
"links": [],
"start": 0,
"total": 2
}
}
Delete DMP Segment
Delete a DMP segment using the segment ID. The response returns 204 No Content if the deletion succeeds. Everything related to this DMP segment will be deleted altogether as well, including the DMP segment destinations, the corresponding Ad segment, the DMP segment list (if there's any). You must have write access to the sponsored account that owns the DMP segment to be able to delete it. Otherwise, you'll get a 403 Forbidden error response. Deleting unused segments also frees up capacity toward the 1,000 DMP segments per sponsored account limit.
Sample Request
Sample Response
With http header enabled, you should see the following response.
HTTP/2 204
etag: W/"21"
X-Restli-Protocol-version: 2.0.0
Batch Delete DMP Segments
Delete a batch of DMP segments using segment IDs. Note that all the DMP segments must be under the same sponsored account. The response returns 204 No Content for each segment deleted successfully, or an error for each segment that failed to be deleted. For each batch delete request, all the segments must belong to the same sponsored account. You must have write access to the sponsored account that owns the DMP segments; otherwise, you'll get a 403 Forbidden error response for those segments. Deleting unused segments also frees up capacity toward the 1,000 DMP segments per sponsored account limit. All API requests are represented in protocol 2.0.0 and require the header:
X-Restli-Protocol-Version: 2.0.0
Sample Request
Sample Response
{
"results": {
"10001": {
"status": 204
},
"10002": {
"status": 204
}
},
"errors": {}
}
Pagination
The dmpSegments API implements pagination using the start and count parameters for finding DMP Segments by account.
For more information, see Pagination.
API Error Details
The table below lists commonly encountered errors.
| Code | Message | Description |
|---|---|---|
| 400 | Bad request | Malformed requests, such as if the input dmp segment ID is not a number. |
| 400 | Error deleting AdSegments for dmp destination {dmpSegment ID}. | AdSegment is being used in active campaigns. |
| 403 | No WRITE access to {sponsored account URN}. | Viewer is not present or user is not authorized to delete the dmp segment. |
| 404 | Entity with key {adSegment ID} is not found. | DMP segment of the provided ID in the path doesn't exist. |
| 429 | Account has reached the maximum limit of 1000 segments. Please delete unused segments before creating new ones. | SEGMENT_LIMIT_EXCEEDED — Sponsored account has reached the maximum limit of 1,000 DMP segments. Delete unused segments before creating new ones. |
