• Blog
  • Pricing
Login
Free TrialGet a Demo
Get a Demo
ZenABM

ABM made easy. Plug-and-play account scoring and analytics.

Follow us

LinkedInFacebookYouTubeX
Start for FreeLoginBook a Demo

Product

  • All Features
  • AI Agent - Zena
  • Dashboards
  • AI Reporting
  • Expert Skills
  • MCP Server
  • Companies Engagements
  • Multi-Channel Revenue Attribution
  • ABM Campaign Analytics Dashboards
  • Company Buyer's Intent
  • LinkedIn Ad Campaign Insights
  • Job Titles Insights
  • CRM Sync
  • Webhooks
  • API

Use Cases

  • ABM Campaign Management and Performance Tracking
  • Account Scoring
  • LinkedIn Campaign Management and Optimization
  • For LinkedIn Ads and ABM Agencies
  • Agency MCP Server

Free Tools

  • ABM Budget Calculator
  • LinkedIn Ads Count Calculator
  • LinkedIn TLA Generator
  • Experts Chat
  • LinkedIn Single Image Ad Creator

Case Studies

  • Productive's ABM Success Story
  • Valueships's LinkedIn TLA Case Study
  • Flowfuse's ABM Success Story

LinkedIn Optimization

  • Build Campaigns with AI
  • Budget Savers
  • Bidding Agent
  • Exclusions
  • Impression Capping
  • Workflows

Resources

  • Documentation
  • Release Notes
  • Reports & Templates
  • Blog
  • Case Studies
  • ABM Benchmarks Report
  • LinkedIn Ads Agencies Directory
  • ABM Clay Templates
  • LinkedIn ABM Skills for Claude
  • LinkedIn ABM Strategy
  • Running ABM on LinkedIn: The Ultimate Guide
  • Events
  • TLA Bootcamp
  • AI for ABM & LinkedIn Ads Week

Competitors comparison

  • ZenABM vs Fibbler
  • ZenABM vs Factors.ai
  • DemandSense Alternatives
  • Recotap Alternative

Company

  • Pricing
  • Contact
  • Brand Assets
  • Become a partner

Legal

  • Terms of Use
  • Privacy Policy
  • Data Policy

©2026 ZenABM - All Rights Reserved.

  1. Home
  2. Blog
  3. Campaign Structure & Strategy
Campaign Structure & Strategy

LinkedIn Ads API: What It Is, How to Access It, and When to Use an MCP Server Instead

Emilia Korczynska
Emilia Korczynska
LinkedInPublished Jun 20, 2026·Updated Jun 22, 2026

Share this post

LinkedInXFacebook
LinkedIn Ads API: What It Is, How to Access It, and When to Use an MCP Server Instead

Summarize with AI:

View as Markdown

Table of Contents

  • All about the LinkedIn Ads API: quick summary
  • What the LinkedIn Ads API actually is
  • How to get access to the LinkedIn Ads API
  • Authentication, scopes, and API versioning
  • What you can do with the LinkedIn Ads API
  • The hard part: what the LinkedIn Ads API does not do for you
  • When to use an MCP server instead of the LinkedIn Ads API
  • The Takeaway
  • FAQs

If you have ever tried to pull campaign data out of Campaign Manager programmatically, you have run into the LinkedIn Ads API.

The first thing to understand is that there is no single “LinkedIn Ads API” at all.

What people call the LinkedIn Ads API is actually the LinkedIn Marketing API, a whole family of separate APIs for campaigns, reporting, audiences, and conversions, each with its own access process, scopes, and rules.

This post is the practical answer to the three questions that come up constantly: how to get access, what you can actually build, and whether it is worth wiring up the raw API directly or whether an MCP server is the smarter move.

It covers what the API family contains, how to get approved and authenticated, where the hard parts hide, and when to skip the raw API entirely.

All about the LinkedIn Ads API: quick summary

Here’s a quick overview of the article:

  • There is no one LinkedIn Ads API. It is the LinkedIn Marketing API, a family that includes the Advertising API (account structure, campaigns, creatives, targeting), the Reporting API (analytics), Matched and Predictive Audiences, and the Conversions API.
  • Access is gated. You create an app in the LinkedIn Developer Portal, apply to the Advertising API under the Products tab, start in a Development tier, then apply for Standard tier with a video demo. Audiences APIs are a separate private program with a review that can take up to 60 days.
  • Auth is 3-legged OAuth 2.0 with scopes like rw_ads, r_ads_reporting, and rw_dmp_segments, plus a monthly LinkedIn-Version header (for example 202605).
  • The hard part is the logic. The API is raw plumbing. Routing, token refresh, versioning, throttling, and pagination are all yours to build.
  • Most teams should layer an MCP server on top. An MCP server repackages these endpoints as plain-English tools that an AI can call, so you ask a question instead of writing a request. ZenABM’s MCP server does this and adds the CRM and pipeline join, plus eCTR and eCPC, two metrics Campaign Manager never shows.

What the LinkedIn Ads API actually is

Start with the naming, because it trips up almost everyone.

When you search for “LinkedIn Ads API”, you are looking for the LinkedIn Marketing API.

LinkedIn Marketing APIs
LinkedIn Marketing APIs

It is not one endpoint, but a set of related APIs that each cover a different slice of advertising work.

Here is how the family breaks down in practice:

  • Advertising API (account structure): create and manage campaign groups, campaigns, ad sets, and creatives, and set budgets, schedules, bidding, and targeting. This is the part most people mean when they say the LinkedIn Ads API.
    LinkedIn Developers page showing the Advertising API and its ads management, analytics and audience APIs

    Advertising APIs by LinkedIn
  • Reporting API (analytics): pull performance numbers like impressions, clicks, spend, and conversions at the account, campaign, or creative level, plus demographic breakdowns. This runs through the adAnalytics endpoint.
  • Matched Audiences (DMP Segments): upload contact or company lists, stream users and companies into segments, and set up website retargeting. This is a separate, private program.
  • Predictive Audiences: seed an audience with your own data and let LinkedIn’s AI model find members most likely to convert. Also part of the private Audiences program.
  • Conversions API: send conversion events back to the LinkedIn server-side so attribution does not rely only on the browser pixel.
  • Community Management and Lead Sync APIs: manage organic Page content and sync lead gen form submissions, which often sit alongside an ads integration.

The reason this matters is that access, scopes, and even rate limits differ from one member of the family to the next.

Getting approved for the Advertising API does not automatically give you the Audiences APIs, since you apply for those separately.

Before writing a line of code, you need to know which APIs your use case actually touches.

How to get access to the LinkedIn Ads API

Access to the LinkedIn Ads API is not open.

You apply, and LinkedIn reviews you.

Here is the path, start to finish.

  • Step 1: Create a LinkedIn Page and a developer app. You need an associated LinkedIn Page first, then you create a developer application at the LinkedIn Developer Portal. The app is the identity that makes API calls on your behalf.
LinkedIn Developers My apps page with arrow pointing to Create app button for API access
Creating a private app in the LinkedIn Developer Portal to access the LinkedIn Ads API
  • Step 2: Apply to the Advertising API. Inside your app, go to the Products tab and request the Advertising API. You complete an access form describing your use case. LinkedIn reviews it against its restricted-use-case rules, so a vague or non-compliant description gets rejected. This review is where the wait comes in, and it can take several days or longer.
  • Step 3: Build in the Development tier. Once approved, you start in a Development tier. You map your nine-digit ad account IDs to your app, generate a test token, and build against real endpoints with limited scope. This is your sandbox.
  • Step 4: Apply for Standard tier. When your integration works, you submit a tier upgrade request. For the Advertising API, that request includes a video showing how your platform creates, edits, or optimizes LinkedIn campaigns. Standard tier is what unlocks production-grade access.
  • Step 5 (if you need audiences): apply separately. The Matched Audiences and Predictive Audiences APIs are a private program. You fill in a separate interest form, and LinkedIn contacts you only if you meet its criteria, which it says can take up to 60 days. You also need Advertising API access first as a prerequisite.

None of this is hard exactly, but it is gated and slow.

If the goal is just to read your own campaign data into an AI tool this week, that approval timeline alone is a strong argument for using an MCP server that already holds the access.

For a sense of what reading that data looks like once it flows, the post on how to automate LinkedIn ad reporting shows the end state.

Authentication, scopes, and API versioning

Once you have access, every call to the LinkedIn Ads API has to be authenticated, versioned, and scoped correctly.

This is where a lot of first integrations break.

3-Legged OAuth 2.0

The API uses 3-legged OAuth 2.0.

A member authorizes your app, you receive an access token tied to that member’s permissions, and you use that token on every request. Access tokens expire, so you also handle refresh tokens and re-authorization.

If you forget to refresh, your integration silently stops working until someone notices the empty report.

Scopes (Permissions)

Each API needs specific scopes.

A few you will meet often:

  • rw_ads to read and write campaigns, ad sets, and creatives.
  • r_ads_reporting to read analytics from the reporting endpoint.
  • rw_dmp_segments to manage matched and predictive audiences.

If your token is missing a scope, the call fails.

Confirm which permissions your app holds under the Auth tab in the Developer Portal before assuming the issue is elsewhere.

Monthly API Versioning

LinkedIn Marketing API versioning docs showing the LinkedIn-Version header format for LinkedIn Ads API calls
LinkedIn Marketing API versioning documentation by LinkedIn

The LinkedIn Marketing API is versioned by month.

You pass a LinkedIn-Version header in the format YYYYMM, for example, 202605 for the May 2026 version. The docs label these versions in an li-lms-2026-05 style.

LinkedIn ships new versions monthly and deprecates old ones, so a version hard-coded last year can be sunset, and your calls start returning errors.

You have to track the version calendar and migrate, or your integration ages out.

Here is what a basic authenticated campaign read looks like with all three pieces in place:

curl ‘https://api.linkedin.com/rest/adAccounts/123456789/adCampaigns?q=search’
-H ‘Authorization: Bearer {ACCESS_TOKEN}’
-H ‘LinkedIn-Version: 202605’
-H ‘X-Restli-Protocol-Version: 2.0.0’

That is three headers before asking a single question about performance.

Multiply that across dozens of endpoints, refresh cycles, and monthly version bumps, and you start to see why the raw API is a project rather than a quick win.

What you can do with the LinkedIn Ads API

Once authenticated, the LinkedIn Ads API is genuinely powerful.

Here is the practical map of what each part lets you do.

Create and Manage Campaigns

The account structure endpoints let you build and edit the whole campaign tree.

You create campaign groups, then campaigns, then creatives, and you set the budget, schedule, bidding model, and status on each.

The core resource is the ad campaigns endpoint under an ad account:

POST /rest/adAccounts/{adAccountId}/adCampaigns
GET /rest/adAccounts/{adAccountId}/adCampaigns/{campaignId}
POST /rest/adAccounts/{adAccountId}/adCampaigns/{campaignId} (partial update)

A partial update is how you change one field, like pausing a campaign or raising a daily budget, without resending the whole object.

This is the layer that powers programmatic optimization, where a script reads performance and then writes a budget or status change back.

Manage Targeting

Targeting is expressed as a boolean structure of include and exclude facets, like locations, job titles, seniorities, industries, and skills.

You build a conjunction of disjunctions, which means “match all of these groups, where each group is any-of.”

It is precise and verbose, and getting targeting JSON right by hand is one of the fiddlier parts of the API.

Build Matched and Predictive Audiences

With the DMP Segment endpoints you create audience segments and either upload a CSV of companies or contacts, or stream users and companies in dynamically.

The base resource is /rest/dmpSegments.

Predictive Audiences go a step further: you give LinkedIn a seed (a contact list, a company list, a conversion, or a lead form) and its AI builds a high-intent lookalike from millions of engagement signals.

There are real constraints to keep in mind, like a minimum audience size of 300 and a mandatory geo filter on predictive audiences.

Pull Analytics and Reporting

The reporting side runs through a single endpoint, /rest/adAnalytics, with three finder methods.

You use analytics when grouping by one element (a pivot), statistics when grouping by up to three, and attributedRevenueMetrics for revenue attribution.

You can request up to 20 metrics per call. A simple spend-and-clicks pull by campaign looks like this:

GET /rest/adAnalytics?q=analytics&pivot=CAMPAIGN
&dateRange=(start:(year:2026,month:5,day:1),end:(year:2026,month:5,day:31))
&timeGranularity=ALL
&fields=impressions,clicks,costInUsd,externalWebsiteConversions

Manage Conversions

The Conversions API lets you send conversion events to LinkedIn server-side, which makes attribution sturdier than a browser pixel alone.

This is the piece that ties an ad click to a downstream action, and it is the foundation of any honest revenue story.

If connecting spend to outcomes is the goal, this and the reporting API are where the work happens.

Alex Fine (Co-founder at understory), who builds these integrations for clients, put the appeal of working at this layer well in his post.

“MCPs (Model Context Protocol servers) are basically secure bridges between Claude (or ChatGPT, but I prefer Claude) and your business tools. Think of them like translators that let you use plain English to pull information from any software with an API. If the tool you’re using has a solid API, you can probably build an MCP for it. And if you can build an MCP for it, you can talk to it like you’d talk to a person.”

The point he makes is the one worth keeping: the API is the foundation, but the experience most teams actually want is conversation, and that is a layer above the API.

The hard part: what the LinkedIn Ads API does not do for you

The documentation does not lead with this part.

The LinkedIn Ads API gives you endpoints, not answers.

Everything between “I have a question” and “here is the data” is yours to build.

  • You build the routing logic. When you want “top ad sets by cost per landing page click last week,” no single endpoint returns that. You have to know to hit the campaigns endpoint for the ad set list, the adAnalytics endpoint for the metrics, stitch them together, compute the derived metric, and sort. The API will not figure out which endpoint a question maps to. You write that decision tree yourself, for every kind of question.
  • You handle auth refresh. Tokens expire. You build the refresh flow, store tokens securely, and recover gracefully when a member’s authorization lapses. Get this wrong, and the integration dies quietly.
  • You handle versioning. Because versions ship monthly and old ones sunset, you track the version calendar and migrate before your version is deprecated. This is ongoing maintenance, not a one-time setup.
  • You handle throttling and pagination. The API enforces rate limits and returns a 429 when you exceed them, so you implement exponential backoff and retries. The reporting endpoint adds its own ceiling, around 45 million metric values over a five-minute window and a cap on result size, so large pulls have to be chunked. Results paginate, so you loop until you have everything.

The same lesson that applies to LinkedIn campaign structure applies here: the structure is logical, but you have to model it yourself.

The API hands you primitives.

Turning primitives into a working LinkedIn Ads reporting API integration that a non-engineer can actually use is the real work, and it never quite ends because the platform keeps moving underneath you.

This is exactly why the smarter move for most teams is not to build directly on the API and instead go for a tool like ZenABM, or, even better, its MCP server.

Claude Code output comparing last 7 and previous 7 days of LinkedIn ads spend, CTR and CPM via ZenABM MCP
Using the ZenABM MCP server in Claude Code to get a weekly LinkedIn ads review and comparison of the last 7 days and the previous 7 days

When to use an MCP server instead of the LinkedIn Ads API

An API is the raw plumbing. An MCP server is the layer that makes that plumbing usable by an AI.

The two are not competitors: an MCP server sits on top of an API.

MCP stands for Model Context Protocol, an open standard that lets an AI tool like Claude or ChatGPT call external tools and pull live data.

An MCP server is the bridge.

It exposes a set of tools with plain-language descriptions the model can read, and the AI decides which tool to call based on your question.

An API is a vending machine where you need the exact button codes. An MCP server is the assistant standing next to it who reads your request in plain English and hands you what you asked for.

The routing logic described above, the part you would otherwise build yourself, is what an MCP server already encodes.

Instead of writing the decision tree that maps “top ad sets by eCPC” to three endpoints and a join, you ask the question, and the AI picks the tools.

Ali Yildirim, founder at Understory, described doing exactly this for his own ad account.

“We just built a custom LinkedIn Ads MCP that lets us analyze our ad account in plain english and it’s changed how I report on our internal campaigns. Instead of exporting data and manually building dashboards, I can ask Claude a question and get the answer instantly. The tool connects directly to LinkedIn’s API and pulls campaign data in real time. I can see exactly which company sizes, industries, and seniorities are seeing our ads, then spot optimization opportunities on the spot.”

Notice the phrase “connects directly to LinkedIn’s API.” The MCP server did not replace the API.

It wrapped it.

That is the whole pattern.

This is what ZenABM’s MCP server does, with one important addition.

It reads the LinkedIn Marketing APIs, then joins company-level LinkedIn ad engagement to your CRM. That join is what makes it more than a thin wrapper: the AI can reason about accounts, creatives, ABM funnel stages, intent, and closed-won revenue, not just raw ad metrics.

Connect it at https://zenabm.com/mcp, where it exposes 60+ tools, and read questions are safe, while write actions ask for explicit confirmation before anything changes.

ZenABM dashboard showing company-level ads engagement data per campaign by pulling first party intent signals from LinkedIn API
ZenABM dashboard showing company-level ad engagement data per campaign by pulling first-party intent signals from the LinkedIn API
ZenABM's current vs total engagement score
ZenABM’s current and total engagement scores help surface hot accounts.
ABM stage tracking and customization in ZenABM
ABM stage tracking and customization in ZenABM
ZenABM campaign effectiveness dashboard with ROAS, ad spend and influenced pipeline for ABM reporting
ZenABM ABM Campaign Effectiveness Metrics LinkedIn
Claude confirms the ZenABM MCP server is connected, listing 50+ tools for campaigns, accounts and metrics
ZenABM MCP server setup inside Claude Code
AI chat using the ZenABM MCP server to pull LinkedIn ad performance data into a table for new ad copy
Using the ZenABM MCP server to make ad copy informed by data
Claude Code terminal using the ZenABM MCP server to pull an executive summary of ABM pipeline data
Using the ZenABM MCP server in Claude Code to get an executive summary of your LinkedIn ABM program

It also surfaces two metrics Campaign Manager never shows:

  • eCTR, the effective click-through rate to your landing page, meaning the share of impressions that turn into an actual landing-page click rather than a like or a comment.
  • eCPC, the effective cost per landing-page click, meaning what you really paid for each visitor who reached the page.

To compute those from the raw API yourself, you would pull impressions and the right click type, separate landing-page clicks from social engagement, and do the math per ad, per week.

ZenABM’s MCP server has that baked in.

So when should you use the raw API versus an MCP server?

Build on the API directly if you are a platform shipping a product to other advertisers, or you need to write automation that does not exist anywhere else.

Use an MCP server if the goal is to analyze, report on, and ask questions about your own LinkedIn ad performance, which is what most marketing and GTM teams actually want

Deanonymize LinkedIn ad engagements, get intent, accounts scoring (starting @$59/month!)

37 Days Free Trial

Try ZenABM Now

The Takeaway

The LinkedIn Ads API is not one thing. It is a family of gated, versioned, scope-specific endpoints that each require their own approval path, their own auth logic, and their own maintenance as LinkedIn ships monthly version updates.

The Advertising API handles account structure.

The Reporting API handles analytics.

Matched and Predictive Audiences are a separate private program.

The Conversions API handles server-side attribution.

Getting useful answers out of any of them means building the routing, the refresh cycle, the pagination loops, and the derived metrics yourself.

For teams building a product on top of LinkedIn’s ad infrastructure, that build is the job and the API is the right starting point.

For marketing and GTM teams whose actual goal is to understand what their LinkedIn spend is doing, the raw API is several months of engineering before you get to the first insight.

An MCP server like ZenABM’s skips that path: it holds the API access, handles the plumbing, and surfaces the data as plain-English questions Claude or another AI can answer directly.

It also adds what the raw API cannot give you on its own, namely, the CRM join, eCTR, eCPC, and company-level engagement scored against your ABM funnel.

If the goal is to query your own LinkedIn Ads data without building and maintaining the infrastructure underneath it, ZenABM offers a 37-day free trial, and the MCP server connects in a few minutes.

You can also book a demo with us to know more!

FAQs

Is there one LinkedIn Ads API?

No. What people call the LinkedIn Ads API is the LinkedIn Marketing API, a family of separate APIs. The main ones are the Advertising API for account structure and campaigns, the Reporting API for analytics through the adAnalytics endpoint, Matched and Predictive Audiences for segments, and the Conversions API for server-side events. Each can require its own access approval and scopes.

How do I get access to the LinkedIn Ads API?

Create a developer app in the LinkedIn Developer Portal, then apply to the Advertising API under the Products tab and complete the access form. You build in a Development tier first, then apply for Standard tier with a video demo of your integration. The Matched and Predictive Audiences APIs are a separate private program you apply to on their own, and that review can take up to 60 days.

What authentication does the LinkedIn Ads API use?

It uses 3-legged OAuth 2.0. A member authorizes your app, you get an access token scoped to their permissions, and you refresh it as it expires. You also pass a monthly LinkedIn-Version header in YYYYMM format, and you need the right scopes, like rw_ads for campaign management or r_ads_reporting for analytics.

What is the difference between the LinkedIn Ads API and an MCP server?

The API is a set of endpoints you call with exact instructions. An MCP server sits on top of that API and exposes its capabilities as plain-English tools an AI can read and call, so you ask a question instead of writing a request. They are complementary, not competing. An MCP server like ZenABM’s connects to the LinkedIn Marketing API behind the scenes and lets you query your data in natural language.

Should I build on the LinkedIn Ads API or use an MCP server?

Build on the API directly if you are shipping a product to other advertisers or you need custom write automation. Use an MCP server if you want to analyze, report on, and ask questions about your own LinkedIn ad performance. For most marketing teams the MCP route is faster, skips the approval and maintenance burden, and adds context the raw API does not, like the CRM join and eCTR and eCPC. You can start a free ZenABM trial and connect the MCP server in a few minutes.

Share this post

LinkedInXFacebook

Author

Emilia Korczynska

Emilia Korczynska

LinkedIn

Share this post

LinkedInXFacebook

Try Zena AI Agent

Ask our experts about LinkedIn Ads & ABM. Get instant answers with sources.

Emilia KorczynskaAli YildirimVeronika VebereTim DavidsonMaximilian Herczeg
+20 experts
Try it free

Stay up to date with ZenABM

Get the latest ABM insights in your inbox.

Latest in Blog

Back to Blog