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
/v1/posts/{id}3 creditsCache-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.
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
/v1/posts/{id}/reactions2 creditsStub — returns 501. The backend will need to resolve `activity:<id>` → `ugcPost:<id>` (different IDs) before calling the voyager SocialDashReactions graphql endpoint.
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_atis the truth for the reaction breakdown at capture time.