Unified.to
All articles

How to Get Your LinkedIn Ads API Key


May 25, 2026

LinkedIn Ads doesn't use a simple API key. Access to the LinkedIn Marketing/Advertising API runs through a vetted Developer app and 3-legged OAuth—you register an app, apply for access to the Advertising API, and once approved, your customers authorize it through OAuth. There's no copy-paste key to grab.

This guide walks through what you actually need: creating the app, getting through LinkedIn's access review (the step that surprises people), and the OAuth flow that issues your tokens.

Key takeaways

  • There is no LinkedIn Ads "API key." You create a LinkedIn Developer app, get approved for the Advertising API, and use 3-legged OAuth to get access tokens.
  • Access is gated: you submit an access-request form describing your use case, and LinkedIn reviews it. Generic data collection gets rejected; ads management and reporting use cases get approved.
  • Marketing/Ads APIs require 3-legged OAuth (acting on behalf of a member). The 2-legged client-credentials flow is explicitly not allowed for Ads.
  • You configure an exact redirect URI (no wildcards) and request the scopes your use case needs.

Before you start

You need a LinkedIn account and a LinkedIn Company Page (apps must be associated with a Page). For live ad operations you'll be working against Enterprise or Business ad accounts with at least one admin user. Budget time for the access review—approval isn't instant, and rejected applications require creating a new app to reapply.

Step 1: Create a LinkedIn Developer app

  1. Go to the LinkedIn Developer Portal and create a new app.
  2. Associate it with your LinkedIn Company Page and fill in the app details (name, logo, business info). Incomplete company info is a common rejection reason, so complete this fully.
  3. Once created, the app gives you a Client ID and Client Secret under the Auth tab. Store the secret securely—server-side only.

Step 2: Add the Advertising API and apply for access

This is the step that's unique to LinkedIn and trips most people up.

  1. In your app, open the Products tab.
  2. Request the Advertising API (part of the broader Marketing Developer Platform).
  3. Complete the access-request form, describing your ads management or reporting use case clearly.

LinkedIn reviews the application. Access is reserved for qualified ads management, reporting, and marketing-platform use cases—not for generic data collection or profile enrichment. If your application is rejected, LinkedIn surfaces the reason in the Developer Portal (missing company info, unsupported use case), and you create a new app to reapply.

Until you're approved, your OAuth calls for Marketing scopes won't succeed. So plan for this review as a real step in your timeline, not a formality.

Step 3: Configure your redirect URI

Under the app's Auth settings, add your OAuth 2.0 redirect URI(s). LinkedIn requires an exact match—no wildcards. For a multi-environment setup, register each environment's URI explicitly (or use separate apps per environment).

Step 4: Run the 3-legged OAuth flow

For anything Ads/Marketing, you act on behalf of a member, so you use the Authorization Code (3-legged) flow.

  1. Send the user to LinkedIn's authorization endpointhttps://www.linkedin.com/oauth/v2/authorization — with:
    • response_type=code
    • client_id
    • redirect_uri (exactly as registered)
    • scope (space-delimited list of the Marketing permissions you need)
    • state (a random string for CSRF protection)
  2. The user logs in and consents. LinkedIn redirects back to your redirect URI with code and state. Validate that state matches what you sent.
  3. Exchange the code for a token. Your backend POSTs to https://www.linkedin.com/oauth/v2/accessToken with grant_type=authorization_code, the code, your redirect_uri, client_id, and client_secret.
  4. Store and use the token. You receive an access token (and, depending on context, a refresh token) with an expiry. Call the API with Authorization: Bearer {access_token}, and refresh or re-authorize before the token lapses.

A note on the other flows: the 2-legged client-credentials flow exists, but it's only for non-member resources and is explicitly not accepted by Marketing/Ads APIs. And "Sign in with LinkedIn" (OpenID Connect) is for identity only—its ID token can't call ad APIs. For LinkedIn Ads, assume 3-legged OAuth.

Keeping your credentials secure

  • Client secret is server-side only—never in client code or a public repo. Store it in environment variables or a secrets manager.
  • Tokens are per-member: store each customer's access token, scope, expiry, and the member ID that authorized it, mapped to your workspace. Refresh proactively so scheduled syncs don't break.
  • Request minimal scopes—campaign read vs. write—and communicate to customers why each is needed.

Rate limits, briefly

LinkedIn enforces both application-level and member-level daily quotas, per endpoint, resetting at midnight UTC. Throttling returns HTTP 429. Standard limits aren't published—you see your app's actual limits in the Developer Portal Analytics after calling an endpoint. Respect any Retry-After header, back off exponentially, and run heavy syncs as background jobs rather than tying them to UI requests.

Frequently asked questions

What's my LinkedIn Ads API key? There isn't one. LinkedIn Ads uses a Developer app plus 3-legged OAuth—you get a Client ID and Client Secret, then obtain per-member access tokens through the OAuth flow.

Why was my Advertising API access rejected? Usually incomplete company info or a use case LinkedIn doesn't support (generic data collection, enrichment). Fix the issue, create a new app, and reapply with a clear ads-management or reporting use case.

Can I use client-credentials (2-legged) OAuth for LinkedIn Ads? No. Marketing/Ads APIs require the 3-legged Member Authorization flow. The 2-legged flow only works for certain non-member resources.

How long do LinkedIn access tokens last? Access tokens are time-limited and may come with a refresh token depending on context. Track expiry per member and refresh or re-authorize before it lapses.

Do I need a special ad account? The Advertising API works with Enterprise or Business ad accounts with at least one admin user.

Connecting LinkedIn Ads alongside your other ad platforms

Getting through LinkedIn's app review and OAuth flow is real work—and it's work you repeat for every ad platform. Google Ads needs a developer token plus OAuth; Meta needs an app, access token, and business verification; each has its own object model and reporting semantics.

Unified.to collapses that into one integration. Unified provides LinkedIn Ads through its normalized Advertising API—working with ad accounts (organizations), campaigns, groups, ads, creatives, targeting, and performance reports as consistent objects—alongside Google Ads, Meta Ads, TikTok Ads, Amazon Advertising, and Microsoft Advertising, across one connection model. You pull cross-platform performance from a single endpoint (GET /ads/{connection_id}/report) with normalized KPI selectors, and read/write campaign controls without per-platform branching. Unified manages each platform's authorization—including LinkedIn's 3-legged OAuth—so you handle credentials and token refresh in one place, not fifteen.

It's the same pattern that lets teams like Humi ship integrations in days rather than building each one in-house: integrate once per category, and get every platform in it.

Start your 30-day free trial

Book a demo

All articles