# LinkedIn API Rate Limits: Daily Caps and 429 Fixes

LinkedIn API rate limits: application and member daily caps, the midnight UTC reset, Development tier numbers, where to find your limits, and 429 fixes.

Canonical page: https://www.tryadeli.com/blog/linkedin-api-rate-limit
Last updated: 2026-11-02

By Nick Reyes, Co-founder and CTO, Adeli. Published 2026-11-02.

## 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](https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/rate-limits) 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](https://learn.microsoft.com/en-us/linkedin/marketing/increasing-access) 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](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/community-management-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](https://www.linkedin.com/developers/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:

```typescript
// 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](https://www.tryadeli.com/blog/linkedin-post-analytics-api) 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](https://www.tryadeli.com/blog/x-api-rate-limit), [Instagram API rate limits](https://www.tryadeli.com/blog/instagram-api-rate-limit), and [Facebook Graph API rate limits](https://www.tryadeli.com/blog/facebook-graph-api-rate-limit).

## 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](https://www.tryadeli.com/docs/api/analytics/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](https://www.tryadeli.com/docs/api/posts/publish-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](https://www.tryadeli.com/social-media-posting-api), and reads LinkedIn analytics through the [analytics API](https://www.tryadeli.com/social-media-analytics-api).

For the full posting flow, see the [LinkedIn posting API guide](https://www.tryadeli.com/blog/linkedin-posting-api).

## 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.

## Related Adeli pages

- [Social Media Posting & Scheduling API](https://www.tryadeli.com/social-media-posting-api.md): Adeli's social media posting and scheduling API publishes to Instagram, TikTok, YouTube, Facebook, X, and Bluesky in one request, now or at a set time. Free to start.
- [Social Media Analytics API](https://www.tryadeli.com/social-media-analytics-api.md): Adeli's analytics API: Instagram, TikTok, Facebook Page, and YouTube insights endpoints, plus per-post engagement on every post an account has made.
- [Social Media API for Vertical SaaS Platforms](https://www.tryadeli.com/use-cases/vertical-saas.md): Give your small-business customers posting, scheduling, analytics, inbox, and Meta ads inside your vertical SaaS, through one API.
- [All posts on the Adeli blog](https://www.tryadeli.com/blog.md)

## About the author

Nick Reyes is the CTO behind Adeli and builds its API, its platform integrations, and the docs. He is a product engineer with 10 years of experience at Phantom, Airbnb, and Google.
