Posts

Single-post detail and reactor lists.

The Posts surface fetches a specific LinkedIn post by activity ID — body, author, ugcPost URN, reaction breakdown by type, and view counts where LinkedIn exposes them. Then enumerate the reactors for warm-list building or distribution analytics.

Activity IDs vs ugcPost IDs

LinkedIn uses two IDs for the same post:

  • activity:<id> — the integer in /feed/update/urn:li:activity:<id>/ URLs. This is what you start with.
  • ugcPost:<id> — a separate integer that addresses the post in the "social" subsystem. Used for reactions, comments, and saves.

LinkFetch's GET /v1/posts/:id accepts the activity ID. The response includes the matching ugc_post_urn so you can call reactions and outbound actions without a separate lookup. Don't conflate them — they look identical (both ~19-digit integers) but are not interchangeable.

Get post by activity ID

GET/v1/posts/{id}3 credits
Get Post
Normalized post detail — text, author, reaction breakdown, counts.

Cache-first. `id` is the numeric `activity:<id>` from `/feed/update/urn:li:activity:<id>/` URLs. On cache miss returns 422 and the extension captures via voyager `feed/updatesV2` on your signed-in LinkedIn tab, normalizes to the `PostPayload` shape, and POSTs to `/ingest`. Response includes `ugc_post_urn` (needed for reactions/comments), `posted_at` (derived from the activity ID's snowflake timestamp), reaction breakdown by type (LIKE / PRAISE / EMPATHY / …), and view/impression counts when LinkedIn exposes them.

parameters
This endpoint resolves through the Chrome extension when the row isn't cached. Open it in the full playground to capture via extension.

Returns the normalised post: text, author, attachments, posted_at (derived from the activity-ID snowflake timestamp, not the "posted N days ago" string), reaction breakdown by type (LIKE / PRAISE / EMPATHY / INTEREST / APPRECIATION / ENTERTAINMENT / FUNNY), and view counts when present.

List reactions on a post

GET/v1/posts/{id}/reactions2 credits
Get Post Reactions
Members who reacted to a post (migration pending).

Stub — returns 501. The backend will need to resolve `activity:<id>` → `ugcPost:<id>` (different IDs) before calling the voyager SocialDashReactions graphql endpoint.

parameters
This endpoint resolves through the Chrome extension when the row isn't cached. Open it in the full playground to capture via extension.

Paginated reactors with name, headline, and reaction type. Great for warm-list building. The response is shaped like /v1/profiles lite — each reactor carries enough context to feed into a follow-up /v1/profiles lookup if you need the full record.

Notes

  • 3 credits per post detail, 2 credits per reactions page.
  • Posts cache for 7 days; the extension re-captures on miss.
  • Reactor counts can change after the call; meta.fetched_at is the truth for the reaction breakdown at capture time.