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 202503 (Marketing March 2025) has been sunset. 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.
The LinkedIn Reporting APIs provide key insights on performance such as clicks, impressions, ad spend and professional demographics information such as metrics by professional demographic values at the account, campaign or creative levels.
Permissions
| Permission | Description |
|---|---|
| r_ads_reporting | Retrieve reporting for advertising accounts. |
Ad Analytics
The adAnalytics endpoint supports three finder methods:
- Analytics: Use when grouping by one element (known as a pivot).
- Statistics: Use when grouping by up to three elements.
- AttributedRevenueMetrics: Use to request revenue attribution metrics.
Note
- The
adAnalyticsendpoint currently does not support pagination. - Some metrics are not available with professional demographic pivots. These are noted in the metrics available table.
- An empty response is returned if there's no activity to report or if you don't have read access to the requested advertising data.
- Requests to
adAnalyticscan have a long list of query parameters causing them to exceed max request URL lengths. If you encounter a 414 error or expect to have long request URLs, refer to the query tunneling guide for how to adjust your calls.
The adAnalytics endpoint supports two finder methods:
- Analytics: Use to group by one element (pivot).
- Statistics: Use to group by up to three elements.
Note
- The
adAnalyticsendpoint currently does not support pagination. - Some metrics are not available with professional demographic pivots. These are noted in the metrics available table.
- An empty response is returned if there's no activity to report or if you don't have read access to the requested advertising data.
- Requests to
adAnalyticscan have a long list of query parameters causing them to exceed max request URL lengths. If you encounter a 414 error or expect to have long request URLs, refer to the query tunneling guide for how to adjust your calls.
Retention
The retention period for data depends on the type of request. Following are the types of requests and their retention periods:
- Requests for performance data (for example, by account, campaign, or creative) are retained for ten (10) years.
- Professional demographics data (for example, by member title, job function, or seniority) is retained for two (2) years.
Restrictions
The following restrictions apply based on your query parameters.
- An empty response is returned if there's no activity to report or if you don't have read access to the requested advertising data.
- Pagination is not supported.
- Some metrics are not available with specific pivots (e.g. conversion or professional demographics pivots). These are noted in the metrics available table.
- When
timeGranularity=ALL, if either the start or end date of a request range is outside the 6-month daily retention period, the dates are automatically rounded to month boundaries, and the entire month's data is included in the response. Example: If a request is made on 8/1/2021 withdateRange.start = 1/15/2021anddateRange.end = 7/15/2021, thendateRange.startis automatically adjusted to 1/1/2021. This is because 1/15/2021 is outside of a 6 month retention period for daily data, whereas monthly data for January is still within the 2 year retention period. - Response is limited to 15,000 elements.
- Professional Demographic pivots only support the top 100 professional demographic values for each creative for each day. Example: If a creative is shown to members with 1,000 different titles, a query for the impressions for that creative with a
MEMBER_JOB_TITLEpivot returns the 100 titles with the most impressions for that creative for that day. - Professional Demographic values are not returned for ads receiving engagement from too few members.
- Professional Demographic pivots have a minimum threshold of 3 events. Professional Demographic values with less than 3 events are dropped from the query results.
- Professional Demographic pivots don't support carousel metrics.
Delays
Performance metrics such as metrics about a creative, campaign, or account are near real-time. Metrics based on any member professional demographics such as company size and job function can be delayed by 12 to 24 hours.
The videoWatchTime and averageVideoWatchTime metrics are subject to a delay of up to 48 hours.
Accuracy
To protect LinkedIn member privacy, professional demographic metrics are approximate. To learn more about this approximation, refer to this article.
Because metrics are approximate, you can observe minor inconsistencies when comparing:
- Similar time ranges. Example: Reporting on results over 7 days vs 8 days.
- The sum of daily metrics to the full corresponding time period.
- Reporting levels. Example: Adding campaign level data and comparing it to account level data.
To minimize the effect of this approximation, select:
- A full time period instead of adding up daily metrics for that time period.
- The highest reporting level you want to view. Example: selecting account level data instead of adding up campaign level data.
Non-Targeted Companies
Analytics can be pivoted by company name to organize results by company name and understand which companies saw a campaign or ad creative. These results can include companies that were not targeted in a campaign even if the advertiser explicitly targeted specific companies to see their campaign. This is possible for any of the following reasons:
- LinkedIn members who work at more than one company.
- LinkedIn members who switch jobs during the campaign's duration.
- Audience expansion is turned on.
- Targeted companies are parent companies of other companies.
- Advertiser changed the companies targeted during the campaign.
Metrics Available
For more details on the schema information, refer to the Metrics Available table.
Professional Demographic Pivot Fields Restrictions
The following fields are present only for non-demographic pivots (i.e. not MEMBER_):
- conversionValueInLocalCurrency
- cardImpressions
- cardClicks
- viralCardImpressions
- viralCardClicks
- approximateMemberReach
Analytics Finder
The Analytics Finder is used to specify a single pivot.
GET https://api.linkedin.com/rest/adAnalytics?q=analytics&pivot={pivot}&timeGranularity={time}&dateRange={dateRange}&{facet}=List({URN_1},{URN_2})
Query Parameters
For more details on the query parameters information, refer to the Query Parameters table.
Sample Request
The following sample request returns creative level analytics for a particular campaign beginning in 2024.
GET https://api.linkedin.com/rest/adAnalytics?q=analytics&pivot=CREATIVE&timeGranularity=ALL&dateRange=(start:(year:2024,month:1,day:1))&campaigns=List(urn%3Ali%3AsponsoredCampaign%3A1234567)
Sample Response
{
"elements": [
{
"clicks": 177,
"impressions": 54494,
"dateRange": {
"end": {
"day": 24,
"month": 5,
"year": 2025
},
"start": {
"day": 1,
"month": 1,
"year": 2024
}
},
"pivotValues": [
"urn:li:sponsoredCreative:1234567"
]
}
],
"paging": {
"count": 10,
"links": [],
"start": 0
}
}
Note
- We currently don't support queries to get analytics for deleted shares that were promoted as Sponsored Content. As creatives for Sponsored Content reference a particular share, you can retrieve analytics for the deleted share by requesting analytics for the creatives that sponsored the deleted share.
- To retrieve analytics data on a video entity, you can refer to the Video Analytics API.
Requesting specific metrics in the Analytics Finder
LinkedIn requires you to mention specific metrics in a request, using the fields query parameter. Otherwise, only impressions and clicks are returned by default. Request up to 20 metrics. The following metrics are supported:
- externalWebsiteConversions
- dateRange
- impressions
- landingPageClicks
- likes
- shares
- costInLocalCurrency
- pivotValues
Note
Each metric is separated by a comma after the fields= keyword.
In the following sample request, the fields parameter specifies a limited set of metrics.
Sample Request
GET https://api.linkedin.com/rest/adAnalytics?q=analytics&dateRange=(start:(year:2024,month:5,day:28),end:(year:2024,month:9,day:30))&timeGranularity=DAILY&accounts=List(urn%3Ali%3AsponsoredAccount%3A502840441)&pivot=MEMBER_COMPANY&fields=externalWebsiteConversions,dateRange,impressions,landingPageClicks,likes,shares,costInLocalCurrency,pivotValues
Sample Response
{ "elements": [
{
"pivotValues": [
"urn:li:organization:1111"
] ,
"dateRange": {
"start": {
"month": 5,
"year": 2024,
"day": 28
},
"end": {
"month": 5,
"year": 2024,
"day": 28
}
},
"landingPageClicks": 0,
"costInLocalCurrency": "0.0",
"impressions": 6,
"shares": 0,
"externalWebsiteConversions": 0,
"likes": 0
},
{
"pivotValues": [
"urn:li:organization:1111"
] ,
"dateRange": {
"start": {
"month": 5,
"year": 2024,
"day": 29
},
"end": {
"month": 5,
"year": 2024,
"day": 29
}
},
"landingPageClicks": 11,
"costInLocalCurrency": "19.91833",
"impressions": 165,
"shares": 0,
"externalWebsiteConversions": 0,
"likes": 0
}]}
Data Throttling
LinkedIn limits the amount of data that can be requested from this endpoint within a short time window. If an application exceeds the upper limit of data returned in a 5-minute window, requests are throttled. To reduce data load, use field parameters as described in the Requesting Specific Fields in the Analytics Finder.
Data limit for all queries over a 5 min interval: 45 million metric values (where metric value is the value for a metric specified in the fields parameter).
Example of data limit computation for the request/response:
- Metrics requested: 9
- Number of records returned: 2 (1 per day)
- Total data cost of query: 9 *2 = 18 metric values
Statistics Finder
The Statistics Finder can be used to specify up to three pivots.
LinkedIn requires you to specify metrics in your request using the fields query parameter. Otherwise, only impressions and clicks are returned by default. You can request up to 20 metrics. For an example of a request that calls specific metrics, refer to Requesting Specific Fields in the Analytics Finder.
GET https://api.linkedin.com/rest/adAnalytics?q=statistics&pivots=List({pivot_1},{pivot_2},{pivot_3})&timeGranularity={time}&{facet}=List({URN_1},{URN_2})
Query Parameters
For more details on the query parameters information, refer to the Query Parameters table.
Sample Request
The following sample request returns campaign level statistics for a particular ad account beginning in 2024.
GET https://api.linkedin.com/rest/adAnalytics?q=statistics&pivots=List(CAMPAIGN)&dateRange=(start:(year:2024,month:1,day:1))&timeGranularity=DAILY&campaigns=List(urn:li:sponsoredAccount:1234567)
Sample Response
{
"elements": [
{
"clicks": 177,
"impressions": 54494,
"dateRange": {
"end": {
"day": 23,
"month": 5,
"year": 2025
},
"start": {
"day": 1,
"month": 1,
"year": 2024
}
},
"pivotValues": [
"urn:li:sponsoredCampaign:1234567"
]
}
],
"paging": {
"count": 10,
"links": [],
"start": 0
}
}
Attributed Revenue Metrics Finder
The Attributed Revenue Metrics Finder can be used when specifying up to three pivots to demonstrate LinkedIn marketing’s influence on revenue using your CRM data. For more information, refer to the Revenue Attribution Report.
Prerequisites
To share your CRM data to Campaign Manager:
- Set up a Business Manager for your business
- Claim ad accounts from Campaign Manager that your business owns
- Connect one of the supported CRM to your Business Manager:
Considerations
- The RevenueAttributionMetrics are only available for accounts that have connected their CRM to LinkedIn.
- After you’ve connected your CRM data to Campaign Manager, it can take up to 72 hours initially for data to be available in the response.
- Only ACCOUNT, CAMPAIGN_GROUP, CAMPAIGN pivots are supported.
- Metrics are only available within the last 1 year date range, so the dateRange must be between 30 and 366 days (inclusive).
opportunityAmountInUsdandopenOpportunitiesare available only whendateRange.endis set to today's date in UTC. Otherwise, these two fields are not returned.- You can collate Revenue Attribution Metrics with other ad metrics (like impressions, clicks) by matching with same
pivotsanddateRangein other finders.
Requesting specific metrics in the Attributed Revenue Metrics Finder
Use fields=revenueAttributionMetrics to retrieve all metrics in the RevenueAttributionMetrics object. Alternatively, specify individual metrics by including them in the fields parameter, such as fields=dateRange,pivotValues,revenueAttributionMetrics:(openOpportunities,revenueWonInUsd). Refer to Field Projections for more details on using field projections.
GET https://api.linkedin.com/rest/adAnalytics?q=attributedRevenueMetrics&pivots=List({pivot_1},{pivot_2},{pivot_3})&account={URN_1}&{facet}=List({URN_2},{URN_3})
Query Parameters
| Parameter | Description | Format | Required |
|---|---|---|---|
| q | Designates the query finder. This must be set to attributedRevenueMetrics for the Attributed Revenue Metrics Finder. |
String | Yes |
| pivots | Pivot of results, by which each report data point is grouped. Accepts up to 3 values. The following enum values are supported:
|
Array of Strings | Yes |
| dateRange.start | Represents the inclusive start time range of the analytics. Start date should be within the last 1 year. | Date object | Yes |
| dateRange.end | Represents the inclusive end time range of the analytics. The field must be after start time if it's present. If unset, it indicates an open range from start time to everything after. | Date object | No |
| account | Match result by sponsored ad account facet. | Account URN | Yes |
| campaigns | Match result by campaign facets. Defaults to empty. | Array of Sponsored Campaign URN | No |
| campaignGroups | Match result by campaign group facets. the default value is set to empty. | Array of Campaign Group URN | No |
Sample Request
The following sample groups Revenue Attribution Metrics by Campaign for a particular ad account for the year 2025.
GET https://api.linkedin.com/rest/adAnalytics?q=attributedRevenueMetrics&fields=revenueAttributionMetrics,dateRange,pivotValues&dateRange=(start:(year:2025,month:03,day:1),end:(year:2025,month:05,day:31))&account=List(urn%3Ali%3AsponsoredAccount%3A12345)&pivots=List(ACCOUNT)
Sample Response
{
"elements": [
{
"revenueAttributionMetrics": {
"returnOnAdSpend": 10.0,
"openOpportunities": 200,
"opportunityWinRate": 0.75,
"revenueWonInUsd": "1000.0",
"closedWonOpportunities": 100,
"opportunityAmountInUsd": "2000.0",
"averageDaysToClose": 75.0,
"averageDealSizeInUsd": "10.0"
},
"dateRange": {
"end": {
"day": 31,
"month": 12,
"year": 2025
},
"start": {
"day": 1,
"month": 1,
"year": 2025
}
},
"pivotValues": [
"urn:li:sponsoredCampaign:1234567"
]
}
],
"paging": {
"count": 10,
"links": [],
"start": 0
}
}
Reporting Microsoft Bing Locations
The ad reporting mechanism now uses the Microsoft Bing location dataset. In addition to targeting, the adAnalytics endpoint adds new professional demographic pivots for Bing location information for the following professional demographic categories:
- MEMBER_COUNTRY_V2
- MEMBER_REGION_V2
- MEMBER_COUNTY
Note
All use of the Microsoft Bing Maps location data is subject to Microsoft Bing Maps and MapPoint Web Service End User Terms of Use and Embedded Maps Service Terms of Use and the Microsoft Privacy Statement. By accessing any Microsoft Bing Maps location data, you're agreeing to be bound by these Microsoft terms.
Member Country
Sample Request
GET https://api.linkedin.com/rest/adAnalytics?accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)&dateRange=(start:(day:28,month:7,year:2019))&pivot=(MEMBER_COUNTRY_V2)&q=analytics&timeGranularity=ALL&fields=impressions,pivotValues
Sample Response
{
"elements":[
{
"pivotValues": [
"urn:li:geo:1"
],
"impressions":29
},
{
"pivotValues": [
"urn:li:geo:2"
],
"impressions":28
},
{
"pivotValues": [
"urn:li:geo:3"
],
"impressions":28
}
],
"paging":{
"count":10,
"start":0,
"links":[
{
"rel":"next",
"href":"/adAnalytics?q=analytics&timeGranularity.value=ALL&dateRange=(start:(day:28,month:7,year:2019))&start=10&count=10&pivot.value=_MEMBER_COUNTRY_V2&accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)&fields=impressions,pivotValues",
"type":"application/json"
}
]
}
}
Member Region
Sample Request
GET https://api.linkedin.com/rest/adAnalytics?accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)&dateRange=(start:(day:28,month:7,year:2019))&pivot=MEMBER_REGION_V2&q=analytics&timeGranularity=ALL&fields=impressions,pivotValues
Sample Response
{
"elements":[
{
"pivotValues": [
"urn:li:geo:1"
],
"impressions":29
},
{
"pivotValues": [
"urn:li:geo:2"
],
"impressions":28
},
{
"pivotValues": [
"urn:li:geo:3"
],
"impressions":28
}
],
"paging":{
"count":10,
"start":0,
"links":[
{
"rel":"next",
"href":"/adAnalytics?q=analytics&timeGranularity=ALL&dateRange=(start:(day:28,month:7,year:2019))&start=10&count=10&pivot=_MEMBER_COUNTRY_V2&accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)&fields=impressions,pivotValues",
"type":"application/json"
}
]
}
}
Member County
Sample Request
GET https://api.linkedin.com/rest/adAnalytics?accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)&dateRange=(start:(day:28,month:7,year:2019))&pivot=MEMBER_COUNTY&q=analytics&timeGranularity=ALL&fields=impressions,pivotValues
Sample Response
{
"elements":[
{
"pivotValues": [
"urn:li:geo:1"
],
"impressions":29
},
{
"pivotValues": [
"urn:li:geo:2"
],
"impressions":28
},
{
"pivotValues": [
"urn:li:geo:3"
],
"impressions":28
}
],
"paging":{
"count":10,
"start":0,
"links":[
{
"rel":"next",
"href":"/adAnalyticsV2?q=analytics&timeGranularity=ALL&dateRange=(start:(day:28,month:7,year:2019))&start=10&count=10&pivot=_MEMBER_COUNTRY_V2&accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)&fields=impressions,pivotValues",
"type":"application/json"
}
]
}
}
URN Resolution
The URNs returned in the pivotValues field can be resolved to a human-readable name using the APIs in API URN Resolution.
Ad Analytics Sample Request
The following sample gets analytics for each member country/region.
GET https://api.linkedin.com/rest/adAnalytics?accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)&dateRange=(start:(day:28,month:7,year:2019))&pivot=(MEMBER_COUNTRY_V2)&q=analytics&timeGranularity=ALL&fields=impressions,pivotValues
Ad Analytics Sample Response
{
"elements":[
{
"pivotValues": [
"urn:li:geo:1"
],
"impressions":29
},
{
"pivotValues": [
"urn:li:geo:2"
],
"impressions":28
},
{
"pivotValues": [
"urn:li:geo:3"
],
"impressions":28
}
],
"paging":{
"count":10,
"start":0,
"links":[
{
"rel":"next",
"href":"/adAnalytics?q=analytics&timeGranularity.value=ALL&dateRange=(start:(day:28,month:7,year:2019))&start=10&count=10&pivot.value=_MEMBER_COUNTRY_V2&accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)&fields=impressions,pivotValues",
"type":"application/json"
}
]
}
}
To resolve the geo URN, we can use the Geo API to retrieve the country/region name.
Geo Sample Request
GET https://api.linkedin.com/v2/geo/1?locale=(language:en,country:US)
Geo Sample Response
{
"defaultLocalizedName": {
"locale": {
"country": "US",
"language": "en"
},
"value": "United States"
},
"id": 1
}
API Error Details
| HTTP Status Code | Error Message | Description |
|---|---|---|
| 400 | MISSING_FIELD | A required query parameter is missing. Ensure required parameters such as q, pivot (Analytics Finder), or pivots (Statistics Finder) are included in the request. |
| 400 | INVALID_VALUE_FOR_FIELD | An invalid value was provided for a query parameter. Verify that values for pivot, timeGranularity, and other enum parameters are valid. |
| 400 | START_DATE_AFTER_END_DATE | The start date cannot be after the end date. Verify that dateRange.start is set to a date earlier than dateRange.end. |
| 400 | DATE_TOO_EARLY | The date value is before the allowed minimum. The requested date is outside the supported retention period. |
| 401 | EMPTY_ACCESS_TOKEN | Authentication failed. Ensure a valid, non-empty, non-expired OAuth2 access token is included in the Authorization header. |
| 403 | USER_NOT_AUTHORIZED | The user does not have access to the requested advertising data. Ensure the r_ads_reporting permission is granted and the authenticated user has access to the specified account, campaign, or creative URN. |
| 404 | NOT_FOUND | The requested resource was not found. Verify that the account, campaign, or creative URN provided in the request is correct. |
| 414 | REQUEST_URI_TOO_LONG | The request URL exceeds the maximum allowed length. Use query tunneling when the list of query parameters is too long. |
| 429 | TOO_MANY_REQUESTS | The data request limit has been exceeded. More than 45 million metric values were requested in a 5-minute window. Reduce data load by specifying only required fields using the fields parameter. |
| 500 | INTERNAL_ERROR | An unexpected server-side error occurred. Retry the request. |
| 503 | UNDER_MAINTENANCE | The service is temporarily unavailable. Retry the request after a brief delay. |
