Skip to main content

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.

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.

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

scoperequested
w_member_socialalways — required to post on a personal account.
openid, profilealways — needed to mint the URN.
emailextended only.
r_organization_social, w_organization_socialextended only — gated behind MDP.
Org posting requires both MDP approval and the 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 our Linkedin-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 fire token.expiring seven days ahead so you can prompt your user.

Posting

text.json
{
  "account": { "platform": "linkedin", "id": "..." },
  "text": "Personal LinkedIn post"
}

Constraints

Preflight rules