Post
A post or repost, as profiles.posts and profiles.activity return it. posts.enrich returns this same record by URL or bare urn, with comments included.
Fields #
| Field | Type | Notes |
|---|---|---|
urn | string | The activity's numeric id, with the urn:li:activity: prefix stripped. This is the id, not the full urn - reconstruct it yourself as urn:li:activity:<id> if you need the prefixed form. |
share_urn | string | The full prefixed urn (urn:li:share:...), unlike urn beside it. LinkedIn returns it that way, and the prefix is what distinguishes a share from an activity - the two fields carry the same id in different conventions on purpose. |
url | string | |
author | PostAuthor | |
text | string | |
posted_at | string (RFC 3339) | Decoded from the activity id, which encodes a Unix millisecond timestamp in its top bits. The feed carries no timestamp field of its own. Absent when the date could not be decoded, rather than present and wrong. |
content_type | string | One of text, image, video, document, article. Derived from which media component the payload populated, not a field LinkedIn sends. |
media | PostMedia[] | |
article | PostArticle | |
mentions | PostMention[] | |
hashtags | string[] | |
reaction_count | integer | |
comment_count | integer | |
repost_count | integer | |
reactions_by_type | ReactionCount[] | The breakdown behind reaction_count. |
is_repost | boolean | A repost with commentary nests the original; a plain repost does not, and the only marker is the header line LinkedIn renders. Both set this flag. |
reposted_post | ActivityTargetPost | |
comments | PostComment[] | The top comments. Returned only by posts/enrich - profiles/posts returns posts without them, because a feed page carries no comment bodies. |
scraped_at | string (RFC 3339) | When this record was taken. On every record, because "never cached" is only a credible claim if the record says when it was fetched. |
Absent is not null: a field we did not get is omitted rather than sent as an empty string, so you can tell "LinkedIn does not have this" from "this person left it blank".
Sample #
{
"urn": "7000000000000000000",
"share_urn": "urn:li:share:7000000000000000000",
"url": "https://www.linkedin.com/feed/update/urn:li:activity:7000000000000000000/",
"author": {
"name": "Satya Nadella",
"url": "https://www.linkedin.com/in/satyanadella",
"headline": "Chairman and CEO at Microsoft",
"avatar_url": "https://media.licdn.com/dms/image/..."
},
"text": "Congratulations to the team on today's launch.",
"posted_at": "2026-08-28T09:11:00Z",
"content_type": "image",
"media": [ { "...": "PostMedia" } ],
"mentions": [ { "...": "PostMention" } ],
"hashtags": ["AI", "Copilot"],
"reaction_count": 412,
"comment_count": 38,
"repost_count": 12,
"reactions_by_type": [
{ "type": "PRAISE", "count": 210 },
{ "type": "LIKE", "count": 160 }
],
"is_repost": false,
"comments": [ { "...": "PostComment" }, { "...": "PostComment" } ],
"scraped_at": "2026-09-01T10:00:04Z"
}