Rate limits
Three layers of limits apply: per client IP, per API key (or OAuth grant), and per LinkedIn account. A refusal is HTTP 429 with code rate_limited and a retryAt time; the API also sends Retry-After.
Per IP
| Requests | Burst | Sustained |
|---|---|---|
| All API and MCP requests | 120 | 300 per minute |
OAuth endpoints (/register, /authorize, /token) | 10 | 20 per minute |
Per API key
Counted per API key (per OAuth grant for MCP clients), shared between the MCP server and the REST API.
| Limit | Default |
|---|---|
| Requests and tool calls | 120 per minute |
| Writes submitted or queued | 20 per hour |
| Writes submitted or queued | 200 per UTC day |
Running an approved action does not count again: it was counted when proposed.
Per LinkedIn account
Each LinkedIn account has a daily budget per kind of action and a minimum gap between two actions of a kind, plus random jitter, so it never acts on a fixed cadence. The defaults stay well below what LinkedIn tolerates for a real member.
| Kind | Per day | Minimum gap | Plus random jitter up to |
|---|---|---|---|
invitation | 20 | 3 min | 4 min |
invitation_accept | 25 | 1 min | 2 min |
dm | 40 | 1 min | 2 min |
post | 3 | 30 min | 20 min |
comment | 30 | 1 min | 2 min |
reaction | 80 | 20 s | 40 s |
read | 600 | 2 s | 3 s |
profile_view | 80 | 20 s | 40 s |
health | 24 | 1 min | 30 s |
If LinkedIn pushes back (a checkpoint or repeated errors), a safety breaker pauses the account and calls fail with account_paused until it resumes.
Updated · Markdown version
