Skip to main content
GET
Get articles a profile has published

Endpoint

Authentication

Include your API key in the request header:

Parameters

string
required
The professional profile whose published articles to fetch. Accepts any of:
  • Profile URN, recommended for consistency: a profile’s public identifier (slug) can change over time, the URN does not. Example: urn:li:fsd_profile:ACoAAA8BYqEBCGLg_vT_ca6mMEqkpp9nVffJ3hc
  • Public identifier (slug), also fine. Example: williamhgates
  • Profile URL. Example: https://www.linkedin.com/in/williamhgates (a trailing slash makes no difference)
The slug is the last path segment of a profile URL. Pass just the slug, not the /in/ prefix.Member profiles only: a company page URL or URN is rejected with a 400 error, free of charge.
integer
default:"10"
Number of articles to fetch per page.
  • Minimum: 1 — 0 or a negative value is rejected with 400
  • Maximum: 100 — a higher value is clamped, not rejected
  • Default: 10
integer
default:"0"
Offset of the first article to return, counted from the newest. Supported on this endpoint — unlike the other profile feeds, this one is paged by offset rather than by cursor. Pass 0 (or omit it) for the first page, then advance it by the count you requested. The response hands you the next value as nextStart. See Pagination.
  • Minimum: 0 — a negative value is rejected with 400
  • Maximum: 100,000 — a higher value is capped, not rejected

Response

array
Array of published articles, newest first
boolean
true while this page came back with articles, which means it is worth asking for the next offset. The last populated page also reports true — the feed signals its end with an empty page, so expect one final request that returns articles: [] and hasMore: false. See Pagination.
integer
The start value to request next. Present only when hasMore is true.

Example Request

Example Response

Errors

See Error Handling for the full list of error codes and recommended handling.
  • 400 — MISSING_PARAMETER / INVALID_PARAMETER / INVALID_URN
  • 401 — INVALID_API_KEY
  • 404 — PROFILE_NOT_FOUND
  • 402 — QUOTA_EXHAUSTED
  • 429 — RATE_LIMITED
  • 500 — INTERNAL_ERROR
  • 503 — SERVICE_UNAVAILABLE

Pagination

This is the one profile feed paged by offset rather than by cursor, because upstream exposes no cursor for it. There is no paginationToken on this endpoint.
  1. Request the first page with start=0 (or omit start).
  2. If hasMore is true, request the next page with the nextStart the response gave you.
  3. Continue until hasMore is false.
nextStart advances by the count you requested, not by the number of articles you received. If you build the offset yourself, add your requested count — prefer nextStart, which already holds that value. count is a ceiling, not a quota: a page can come back with fewer articles than you asked for (a requested 20 routinely delivers 19) because the window indexes the underlying list and items it cannot represent are dropped from the page. A short page is not the end of the feed — only an empty page is.

Notes

This endpoint consumes 1 credit from your credit balance per API call, regardless of the count parameter value. Errors are free — with one exception: a 404 not found costs 1 credit. See Quotas.
Stop paging on hasMore: false, never on a short page. A page holding fewer articles than the count you requested is normal, and a client that treats the first short page as the end of the feed will silently miss articles.
This feed carries metadata only. There are no engagement counts — no reaction or comment totals — and no article body: description is the opening of the text, around 150 characters. Do not expect those fields to appear on an article object.
A company page URL or URN is rejected with a free 400 INVALID_PARAMETER. For organizations, use Get Company Posts.
Articles come back newest first, so an incremental sync only needs the first page or two: page until you reach an articleUrn you already stored, then stop.

Use Cases

Thought-leadership tracking

Follow the long-form pieces a prospect or competitor publishes over time

Expertise mapping

Infer what a member writes about in depth, beyond their headline

Content library

Build a durable index of a profile’s published writing, keyed on articleUrn

Outreach personalisation

Open a conversation on an article the person actually wrote

Authorizations

X-API-Key
string
header
required

Query Parameters

profileUrlOrUrn
string
required

The professional profile to fetch. Accepts a profile URN (recommended for consistency, since a profile's public identifier can change over time while the URN does not; example urn:li:fsd_profile:ACoAAA8BYqEBCGLg_vT_ca6mMEqkpp9nVffJ3hc), a public identifier/slug (also fine; example williamhgates), or a full profile URL (example https://www.linkedin.com/in/williamhgates; a trailing slash is ignored). The slug is the last path segment of a profile URL, so pass just the slug, not the /in/ prefix. Member profiles only: a company page URL or URN is rejected with a 400 error, free of charge.

Example:

"urn:li:fsd_profile:ACoAAA8BYqEBCGLg_vT_ca6mMEqkpp9nVffJ3hc"

count
integer
default:10

Number of articles to fetch per page (default: 10). A value above 100 is clamped to 100, not rejected. The value is a ceiling: a page can come back with fewer articles than requested.

Required range: 1 <= x <= 100
start
integer
default:0

Offset of the first article to return, counted from the newest. Supported on this endpoint: this feed is paged by offset, not by cursor. Pass 0 (or omit) for the first page, then advance by the count you requested - the response hands you that value as nextStart. Keep paging while hasMore is true.

Required range: x >= 0
Example:

20

Response

Successfully fetched profile articles

articles
object[]

Published articles, newest first.

hasMore
boolean

Whether the feed holds more articles behind this page. Stop paging when it is false; a short page is not the end of the feed.

nextStart
integer

The start value to request next. Present only when hasMore is true.

Example:

10