Skip to main content
GET
Get posts from a profile

Endpoint

Authentication

Include your API key in the request header:

Parameters

string
required
The professional profile whose posts 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 (linkedin.com/in/<slug>). Pass just the slug, not the /in/ prefix.
integer
default:"10"
Number of posts to fetch.
  • Minimum: 1 — 0 or a negative value is rejected with 400
  • Maximum: 100 — a higher value is clamped, not rejected
  • Default: 10
boolean
default:"false"
Also return the profile’s reposts without commentary, which are otherwise filtered out. Each one comes back as the repost itself, with the original nested under resharedPost — the same shape a quote repost has:
  • postType is "repost", id is the repost’s own activity URN and date is when it was reposted;
  • content is "", and the item carries no counts of its own (reactionCount, commentCount, sharesCount and reactionsByType are omitted);
  • author and profile are the reposting profile, which repostedBy names too;
  • resharedPost is the original post, with its own author, text, media and counts.
Collaborative posts are also returned when this is on. Accepts true / false (or 1 / 0); any other value is a free 400. The price does not change.
string
Cursor for the next page. Pass back the paginationToken from the previous response, unchanged; omit it to start from the beginning. A value this API did not issue is rejected with 400. Keep paging while hasMore is true.
integer
default:"0"
deprecated
Not supported on this endpoint. This feed is cursor-paginated and ignores offsets, so a non-zero start is rejected with 400 rather than silently returning the first page again. Use paginationToken.

Pagination

Request the first page without paginationToken, then pass the token from each response into the next request. Stop when hasMore is false. The feed also carries reposts, which are filtered out of posts unless you pass includeReposts=true, so a page can contain fewer posts than you asked for while more still remain — always trust hasMore rather than the number of items returned.

Response

array
Array of professional posts
string
Cursor to pass back as paginationToken to fetch the next page.
boolean
Whether the feed holds more posts behind this page. Keep paging while it is true — see Pagination.
integer
The count this page was requested with.

Example Request

Example Response

Posts come back in a page object, not a bare array. The second tab shows a repost without commentary, as returned with includeReposts=true (trimmed to the fields that differ from an ordinary post).

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 / COMPANY_NOT_FOUND
  • 402 — QUOTA_EXHAUSTED
  • 429 — RATE_LIMITED
  • 500 — INTERNAL_ERROR
  • 503 — SERVICE_UNAVAILABLE

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.
Posts are returned in reverse chronological order (newest first).
Cache results when possible to avoid redundant requests for the same profile.
Fetching an organization’s posts rather than a person’s? Use Get Company Posts, which takes the same companyUrlOrUrn as Get Company and so accepts a company name on its own.

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.

Example:

"urn:li:fsd_profile:ACoAAA8BYqEBCGLg_vT_ca6mMEqkpp9nVffJ3hc"

count
integer
default:10

Number of posts to fetch (default: 10). A higher value is clamped to 100; 0 or a negative value is a 400.

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

Not supported on this endpoint. This feed is cursor-paginated and ignores offsets, so a non-zero value is rejected with 400 rather than silently returning the first page again. Page with paginationToken instead.

Required range: x >= 0
paginationToken
string

Cursor for the next page: pass back the paginationToken from the previous response, unchanged. Omit it to start from the beginning. A value this API did not issue is rejected with 400. Keep paging while hasMore is true.

includeReposts
boolean
default:false

Also return the reposts WITHOUT commentary, which are otherwise filtered out. Each one comes back as the repost itself: postType: "repost", id = the repost's own activity URN, date = when it was reposted, content = "", no counts of its own (reactionCount, commentCount, sharesCount, reactionsByType omitted), the reposting profile or page as author and profile, repostedBy, and the original post nested under resharedPost with its own counts - the same shape a quote repost has. Collaborative posts are also returned when this is on. Accepts true/false (or 1/0); any other value is a free 400. The price does not change.

Response

Successfully fetched posts

posts
object[]

Posts on this page. Reposts without commentary are filtered out unless includeReposts=true, so a page can hold fewer items than count while more remain — trust hasMore.

paginationToken
string | null

Cursor to pass back as paginationToken to fetch the next page.

Example:

"dXJuOmxpOmFjdGl2aXR5Ojc0ODk4OTQ2NzU5MjgwMjcxMzY="

hasMore
boolean

Whether the feed holds more posts behind this page. Keep paging while true.

pageSize
integer

The count this page was requested with.

Example:

10