LinkedIn’s Versioned REST API. v1 covers personal posting only; org/Company posting requires the Marketing Developer Platform (MDP) and ships in a follow-up slice.Documentation Index
Fetch the complete documentation index at: https://docs.letmepost.dev/llms.txt
Use this file to discover all available pages before exploring further.
Connect
POST /v1/accounts/connect/linkedin. OAuth 2.0, three-legged. After complete, we call /userinfo to mint a stable urn:li:person:* author URN and store it on the platform_accounts row.
Scopes
| scope | requested |
|---|---|
w_member_social | always — required to post on a personal account. |
openid, profile | always — needed to mint the URN. |
email | extended only. |
r_organization_social, w_organization_social | extended only — gated behind MDP. |
w_organization_social scope. Until MDP clears, extended org scopes are off and linkedin.author.org_not_supported fires if you try.
Version pinning
LinkedIn sunset five API versions in six months from 2024–2025. We pin a single version for ourLinkedin-Version header and upgrade internally; the public version tracker (GET /v1/platform-versions) shows the current pin and any in-flight migration. When LinkedIn announces a sunset, you’ll see version.deprecated on accounts that need attention.
Token lifecycle
LinkedIn tokens are 60 days, no refresh. Re-auth is mandatory at expiry. We firetoken.expiring seven days ahead so you can prompt your user.
Posting
text.json
Constraints
- Text: 3000 graphemes max, emoji-aware (
linkedin.text.max_graphemes) - Author URN must be
urn:li:person:*(linkedin.author.urn_format) - Org URNs rejected in v1 (
linkedin.author.org_not_supported)