LinkedIn API Rate Limits: Daily Quotas, 429s and Higher Limits
LinkedIn API rate limits are daily quotas counted per application and per member, and they reset at midnight UTC. LinkedIn does not publish most limits; you see yours on your app's Analytics tab in the Developer Portal. Published examples include Share on LinkedIn at 150 requests per member and 100,000 per app per day, and Sign In with LinkedIn using OpenID Connect at 500 per member and 100,000 per app.
LinkedIn's limits are simpler in shape than most platforms' and harder to look up. Every limit is a daily count, there is no per-second or per-15-minute window in the docs, and most numbers are only visible inside your own app. For what you can access in the first place, see Is the LinkedIn API free? and, for ads data, the LinkedIn Advertising API.
How LinkedIn API rate limits work
- Two counters. The application limit is the total calls your app can make in a day. The member limit is the calls your app can make with one member's token in a day source.
- Per endpoint. Each endpoint has its own daily numbers.
- Daily reset at midnight UTC. It is a fixed day, not a rolling 24 hours.
- Mostly unpublished. LinkedIn says standard limits are not in the documentation. Open your app in the Developer Portal and go to the Analytics tab. It only lists endpoints you have called at least once, so make one test call to each endpoint you plan to use.
- Email alerts. Developer admins get an email when the app passes 75% of an endpoint's quota. Alerts arrive about 1 to 2 hours late and cover only application-level limits, not member-level ones.
LinkedIn API rate limits that are published
| Product | Per member per day | Per app per day |
|---|---|---|
| Share on LinkedIn (posting for a member) | 150 | 100,000 |
| Sign In with LinkedIn using OpenID Connect | 500 | 100,000 |
| Verified on LinkedIn, Development and Lite tiers | 500 | 5,000 |
| Verified on LinkedIn, Plus tier | Custom | Custom |
For Marketing API products such as the Advertising API and Community Management API, the numbers sit in your Developer Portal, not in public docs.
The LinkedIn 429 error
Over a limit, LinkedIn returns HTTP 429 with the message "Resource level throttle limit for calls to this resource is reached." source. In rare cases it also returns 429 to protect its infrastructure; those clear on their own. LinkedIn's docs do not describe rate limit headers, so you cannot read your remaining quota from responses. Count calls yourself.
Because the limit is daily, a 429 from a quota can last until midnight UTC. Backing off for a few seconds does not help. Retry briefly once or twice, in case it was an infrastructure 429, then park that member or endpoint until the reset.
How many calls can you really make per day?
A scheduling tool: 600 members each publish 4 posts a day. That is 4 calls per member (limit 150) and 2,400 for the app (limit 100,000). If each post with an image also needs an upload call, double it: still 4.8% of the app's limit. LinkedIn's limits are not the problem for a normal posting tool.
A login check gone wrong: your web app calls the OpenID Connect userinfo endpoint on every page view. A member who opens 30 pages an hour for 17 hours makes 510 calls and gets a 429 that lasts until midnight UTC. Read the claims from the ID token once at sign-in and keep them in your session.
Compliance archiving: LinkedIn's Compliance API guidance asks partners to spread requests evenly through each hour, with no bursts. Its table puts 1,001 to 5,000 members at up to 7,500 requests an hour, about 1.5 per second.
Python: a daily counter that matches LinkedIn's
import datetime, random, time, requests
from collections import Counter
class DailyBudget:
def __init__(self, member_limit, app_limit, margin=0.95):
self.member_limit = int(member_limit * margin)
self.app_limit = int(app_limit * margin)
self.day, self.members, self.app = None, Counter(), 0
def take(self, member_id):
today = datetime.datetime.now(datetime.timezone.utc).date()
if today != self.day: # LinkedIn resets at midnight UTC
self.day, self.members, self.app = today, Counter(), 0
if self.app >= self.app_limit or self.members[member_id] >= self.member_limit:
return False
self.members[member_id] += 1
self.app += 1
return True
share_budget = DailyBudget(member_limit=150, app_limit=100_000)
def post_for(member_id, token, payload):
if not share_budget.take(member_id):
raise RuntimeError("daily budget used; queue for after 00:00 UTC")
for attempt in range(3):
r = requests.post("https://api.linkedin.com/rest/posts", json=payload, timeout=30,
headers={"Authorization": "Bearer " + token,
"LinkedIn-Version": "YYYYMM",
"X-Restli-Protocol-Version": "2.0.0"})
if r.status_code != 429:
r.raise_for_status()
return r.headers.get("x-restli-id")
time.sleep(random.uniform(2, 10)) # brief retry in case it is an infrastructure 429
raise RuntimeError("429 persists; treat as quota until midnight UTC")
Set LinkedIn-Version to a version your app supports. The counter lives in memory here; in production keep it in Redis or your database so all workers share it.
How to get higher LinkedIn API limits
- Check the Analytics tab and cut redundant calls first. LinkedIn's error guide asks you to do this before anything else.
- If you are already a LinkedIn partner, contact your partner support channel with your usage and the endpoint.
- If you are not, apply to a LinkedIn partner program. Higher limits and most data access come with partner status.
Higher limits do not widen scope. The official API reads data for members who authorize your app and organizations they administer. It does not offer search over other people's public profiles.
When a paid API is simpler
If you need public company pages or public posts rather than acting for a logged-in member, the LinkedIn API is the wrong tool at any limit. ScrapeIO allows 300 requests a minute per API key, with no daily or monthly cap beyond the credits you hold. A 429 from ScrapeIO costs nothing, and neither do failed calls, private or not-found answers, or cached repeats.
ScrapeIO's linkedin company API, linkedin company posts API and linkedin profile API read public LinkedIn data at 1 credit a call, and the linkedin ads search API searches LinkedIn's public ad library. It cannot post or message. Agents can use the LinkedIn MCP server.
FAQ
What are LinkedIn's API rate limits?
Daily limits per app and per member, set per endpoint. Most are not published; Share on LinkedIn is 150 per member and 100,000 per app a day.
When do LinkedIn API limits reset?
At midnight UTC every day.
Where can I see my LinkedIn API limits?
In the Developer Portal: select your app and open the Analytics tab. Endpoints appear after your first call to them.
What does a 429 from LinkedIn mean?
Your app or member hit the daily limit for that resource, or, rarely, LinkedIn is protecting its infrastructure. The first lasts until midnight UTC; the second clears on its own.
Does LinkedIn send rate limit headers?
Its docs do not describe any. Keep your own count per member and per app.
Sources
Checked on 9 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/rate-limits
- https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/error-handling
- https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/share-on-linkedin
- https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin-v2
- https://learn.microsoft.com/en-us/linkedin/consumer/integrations/verified-on-linkedin/faq
- https://learn.microsoft.com/en-us/linkedin/compliance/request-limits-and-patterns
- https://developer.linkedin.com/partner-programs
100 free credits, no card. Credits never expire.
Get API key