LinkedIn API Rate Limits: Daily Caps and 429 Fixes

By Nick ReyesPublished 6 min read

The short answer

LinkedIn API rate limits are daily caps that reset at midnight UTC. Each endpoint has an application limit for your whole app and a member limit for each LinkedIn user's token. Going over returns HTTP 429. LinkedIn doesn't publish standard limits; your app's Analytics tab in the Developer Portal shows them. Community Management Development tier allows 500 calls per app and 100 per member a day.

LinkedIn API rate limits are daily caps on how many calls your app can make to each endpoint, and they reset at midnight UTC. Every endpoint has two: an application limit for your whole app and a member limit for each LinkedIn user whose token you call with. When either runs out, LinkedIn answers HTTP 429 until the reset.

LinkedIn doesn't publish most of the numbers. Its rate limiting page says standard limits are left out of the documentation, so you find yours in the Developer Portal, one endpoint at a time. This post covers how the limits work, the published Community Management numbers, where to look up the rest, and how to handle a 429.

How do LinkedIn API rate limits work?

LinkedIn API rate limits count calls per endpoint over a 24-hour period, split into an application limit and a member limit. Both reset at midnight UTC every day. These rules come from LinkedIn's rate limiting docs on Microsoft Learn:

Concept How it works
Window 24 hours, resetting at midnight UTC
Application limit The total calls your app can make in a day
Member limit The calls your app can make with one member's token in a day
Per endpoint Each endpoint has its own daily limit
Over the limit HTTP 429
Published? Standard limits aren't; the Developer Portal shows yours

Member limits are counted per app. LinkedIn defines it as the calls "a single member per application" can make. If your product posts for 50 customers, each customer's token has its own member budget, and all 50 draw on the one application budget.

What is the LinkedIn API daily limit?

The one published LinkedIn API daily limit is for the Community Management API on Development tier: 500 calls per app and 100 calls per member every 24 hours. LinkedIn's Increasing Access page lists the tier restrictions:

Development tier Standard tier
Calls per app 500 per 24 hours No restrictions listed
Calls per member 100 per 24 hours No restrictions listed
BATCH_GET calls Not allowed Allowed
Webhooks for social actions Push notifications off Available
Time limit Build your use case within 12 months Not listed
How you get it Default after LinkedIn vets your app A separate application with a screen recording

The Community Management FAQ in LinkedIn's overview notes these were raised from 100 per app and 10 per member.

Other LinkedIn products publish access tiers without call counts. The Advertising API's Development tier caps how many ad accounts you can edit (five). For Sign In with LinkedIn, the Advertising API, and the rest, the daily call limits are whatever the Developer Portal shows for your app.

How do I see my LinkedIn API rate limits in the developer portal?

Your LinkedIn API rate limits are on your app's Analytics tab in the LinkedIn Developer Portal, listed per endpoint. The steps:

  1. Open LinkedIn Developer Portal → My Apps.
  2. Select your app.
  3. Open the Analytics tab. It shows each endpoint's usage today and its daily limit.

An endpoint shows up only after your app has called it at least once that day (UTC). To look up the limit for an endpoint you haven't used, make one test call to it, then refresh the Analytics page. Plan new features this way before you build them: one test call tells you whether the feature fits in the day's budget.

What happens when you hit the LinkedIn API rate limit?

When you hit a LinkedIn API rate limit, every further call to that endpoint returns HTTP 429 until midnight UTC. The limit doesn't roll over, so a 429 at 9:00 UTC means 15 hours without that endpoint for that app or member.

Three details from LinkedIn's docs:

  • Alerts are for application limits only. Your app's developer admins get an email when the app passes 75% of an endpoint's quota. Member-level breaches send nothing.
  • Alerts arrive late. LinkedIn expects a delay of about 1 to 2 hours after the threshold, so a fast spike can hit 100% before the email lands. Another endpoint passing 75% later the same day sends a new alert.
  • Some 429s aren't yours. LinkedIn may return 429 for infrastructure protection in rare cases. The docs say service returns to normal on its own.

How should you handle a 429 from the LinkedIn API?

Handle a LinkedIn 429 by pausing calls to that endpoint, for that member or the whole app, until the daily reset. Retrying in a loop gets you nothing, because the counter doesn't move until midnight UTC. LinkedIn's rate limiting page documents no rate-limit headers for the reset time, so compute it yourself:

// Next reset of LinkedIn's daily limits: midnight UTC.
function msUntilLinkedInReset(now = new Date()): number {
  const reset = Date.UTC(
    now.getUTCFullYear(),
    now.getUTCMonth(),
    now.getUTCDate() + 1,
  );
  return reset - now.getTime();
}
 
async function callLinkedIn(url: string, token: string, init: RequestInit = {}) {
  const res = await fetch(url, {
    ...init,
    headers: {
      ...init.headers,
      Authorization: `Bearer ${token}`,
      "Linkedin-Version": "202610",
      "X-Restli-Protocol-Version": "2.0.0",
    },
  });
 
  if (res.status === 429) {
    // Park this endpoint for this member (or the whole app) until the reset.
    throw new RateLimitedError(msUntilLinkedInReset());
  }
  return res;
}

How to apply it:

  • Track who hit the limit. If your Analytics tab shows the app under its limit, the 429 came from one member's budget. Park that member's calls, not everyone's.
  • Retry the rare infrastructure 429. If neither budget is near its limit, retry once or twice with backoff and jitter.
  • Never blindly retry post creation. If a POST /rest/posts response is unclear, check whether the post exists before sending it again, or you can publish it twice.
  • Tell the user. "LinkedIn's daily limit reached, try again after midnight UTC" beats a silent failure.

How do you stay under LinkedIn's daily limits?

You stay under LinkedIn's daily limits by caching what you read, spending calls on writes, and counting calls per member. On Development tier, 500 calls a day across every customer goes fast. Where the calls go:

Call pattern Cost Cheaper approach
Refreshing analytics on every page load One call per view Cache results and refresh on a schedule
Member post analytics One call per metric per post Request only the metrics you show; store lifetime totals
Looking up Pages one by one One call per Page, since BATCH_GET is blocked on Development tier Cache the member's Pages after connect
Polling for comments and reactions One call per check Poll less often; social action webhooks need Standard tier
Page post statistics One call can return several posts Ask for a list of share URNs in one request

The LinkedIn post analytics API guide shows the analytics calls, including which ones return several posts at once.

LinkedIn API rate limits vs other networks

LinkedIn counts calls per day; most other social APIs count per 15 minutes, per hour, or per second. That changes how you schedule work:

Network Limit window What a limit error means
LinkedIn 24 hours, reset at midnight UTC Wait for the daily reset
X API v2 Mostly 15 minutes Wait minutes, per the reset header
Instagram and Facebook Graph API Rolling usage windows Back off and spread calls out

For the details on the others, see our posts on X API rate limits, Instagram API rate limits, and Facebook Graph API rate limits.

How does Adeli handle LinkedIn rate limits?

Adeli handles LinkedIn rate limits by caching analytics, returning a clear 429 rate_limited error, and never auto-retrying LinkedIn writes. What Adeli's docs describe:

  • Analytics come from snapshots. LinkedIn account insights serve a snapshot refreshed at most every six hours, with fetchedAt. When LinkedIn rate-limits a refresh, you get the previous snapshot with stale: true instead of an error.
  • Rate limits are a typed error. Publishing to LinkedIn returns 429 rate_limited, with retryAfterSeconds when a delay is known.
  • No duplicate posts. Adeli doesn't automatically retry LinkedIn writes, so an automatic retry never publishes the same post twice.
  • One integration for every network. The same API key publishes to LinkedIn, Instagram, Facebook, TikTok, YouTube, X, and Bluesky through Adeli's posting API, and reads LinkedIn analytics through the analytics API.

For the full posting flow, see the LinkedIn posting API guide.

faq

Frequently asked questions

Are LinkedIn API rate limits per user or per app?

Both. LinkedIn sets an application limit, the total calls your app can make in a day, and a member limit, the calls your app can make with one member's token in a day. Either one running out returns HTTP 429 until the limits reset at midnight UTC.

How do I increase my LinkedIn API rate limit?

For the Community Management API, apply for Standard tier from your app's Products tab in the Developer Portal. LinkedIn lists Standard tier as having no restrictions, but the application needs a screen recording of your product, and LinkedIn may decline an upgrade even when an app meets the requirements.

Does LinkedIn warn you before you hit the rate limit?

Yes, for application limits only. LinkedIn emails your app's developer admins when the app passes 75% of an endpoint's quota, about 1 to 2 hours after it happens. Member-level limits trigger no alert, so a single busy user can hit 429 with no warning.

Is a LinkedIn 429 error always caused by my app?

No. LinkedIn's rate limiting docs say it may return 429 as part of infrastructure protection in rare cases, and that the API returns to normal on its own. If your Developer Portal Analytics tab shows you well under the limit, retry later with backoff.

Power your next project
with one ads & social media API

Give your users publishing, scheduling, and analytics through one integration your team can actually maintain.

Try with agents

Start with free credits. No credit card required.