Docs / Posts
get_post
Read one post.
This action only reads. It changes nothing, so it is safe to try.
What you give it
| Input | What it is | Where to get it |
|---|---|---|
postneeded | A post link or a post social id or a post id. The LinkedIn post: its URL, or its id (socialId) from an earlier result. | On LinkedIn, click the More icon (the three dots) at the top right of the post, then "Copy link to post". Or run search_posts and use posts[].url from its answer.13 more places to get it
|
connectionIdoptional | A connection id. Which of your LinkedIn accounts to act from (its id from list_linkedin_accounts). Omit to use your first live one. | Run list_linkedin_accounts and use accounts[].id from its answer.15 more places to get it
|
Call it
curl -X POST https://api.heyreagent.com/v1/actions/get_post \
-H "Authorization: Bearer YOUR_KEY" \
-H "content-type: application/json" \
-d '{"post":"PASTE_POST_LINK_HERE"}'The same call in JavaScript
const response = await fetch("https://api.heyreagent.com/v1/actions/get_post", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_KEY",
"content-type": "application/json",
},
body: JSON.stringify({
"post": "PASTE_POST_LINK_HERE"
}),
});
const answer = await response.json();
console.log(answer);The same call in Python
import requests
response = requests.post(
"https://api.heyreagent.com/v1/actions/get_post",
headers={"Authorization": "Bearer YOUR_KEY"},
json={
"post": "PASTE_POST_LINK_HERE",
},
)
print(response.json())The same call in n8n
Add an HTTP Request node and fill it in like this:
| Method | POST |
| URL | https://api.heyreagent.com/v1/actions/get_post |
| Send Headers | On. Name Authorization, Value Bearer YOUR_KEY |
| Send Body | On. Body Content Type JSON, Specify Body Using JSON, then paste the body below |
{
"post": "PASTE_POST_LINK_HERE"
}Put your own key where it says YOUR_KEY. Put your own value where it says PASTE_…_HERE: the table above says where each one comes from. New here? Start with your first call.
What you get back
When it worked, the answer is { "ok": true, "result": { … } }. Inside result:
id | A post id. Other actions take it. |
socialId | A post social id. Other actions take it. |
shareUrl | A post link. Other actions take it. |
title | string |
text | string |
date | string |
parsedDatetime | string |
reactionCounter | number |
commentCounter | number |
repostCounter | number |
impressionsCounter | number |
userReacted | LIKE | PRAISE | APPRECIATION | EMPATHY | INTEREST | ENTERTAINMENT |
author.publicIdentifier | A public identifier. Other actions take it. |
author.id | string or null |
author.name | string or null |
author.isCompany | boolean |
author.headline | string |
author.profilePictureUrl | string |
writtenBy.id | string |
writtenBy.publicIdentifier | string |
writtenBy.name | string |
permissions.canReact | boolean |
permissions.canShare | boolean |
permissions.canPostComments | boolean |
isRepost | boolean |
repostId | string |
repostParsedDatetime | string |
repostedBy.publicIdentifier | string or null |
repostedBy.id | string or null |
repostedBy.name | string or null |
repostedBy.isCompany | boolean |
repostedBy.headline | string |
repostedBy.profilePictureUrl | string |
repostContent.id | string |
repostContent.date | string |
repostContent.parsedDatetime | string |
repostContent.text | string |
mentions[].url | string |
mentions[].start | number |
mentions[].length | number |
attachments[].id | string |
attachments[].fileSize | number |
attachments[].unavailable | boolean |
attachments[].mimetype | string |
attachments[].url | string |
attachments[].urlExpiresAt | number |
attachments[].type | poll |
attachments[].sticker | boolean |
attachments[].gif | boolean |
attachments[].duration | number |
attachments[].voiceNote | boolean |
attachments[].fileName | string |
attachments[].startsAt | number or null |
attachments[].expiresAt | number or null |
attachments[].timeRange | number or null |
attachments[].displayName | string or null |
attachments[].organization | string or null |
poll.id | string |
poll.totalVotesCount | number |
poll.question | string |
poll.isOpen | boolean |
group.id | string |
group.name | string |
group.private | boolean |
jobPosting.id | string or null |
jobPosting.title | string |
jobPosting.location | string |
article.id | string or null |
article.title | string |
article.url | string |
article.author | string |
article.publishedAt | string |
article.excerpt | string |
article.pictureUrl | string |
analytics.impressions | number |
analytics.engagements | number |
analytics.engagementRate | number |
analytics.clicks | number |
analytics.clickthroughRate | number |
analytics.pageViewersFromThisPost | number |
analytics.followersGainedFromThisPost | number |
analytics.membersReached | number |
A field that does not apply to an answer is left out, or is null. There are 110 more fields nested inside these.
When it did not work, the answer is { "ok": false, "error": "…", "message": "…" }. What each error means.
Good to know
- This is how a post link becomes a socialId.
- author.id is null for some authors (the published sample shows it for a company page).
- permissions.canPostComments and permissions.canReact say whether a comment or a reaction will be accepted.
In Claude or ChatGPT
Once connected, ask in your own words. The assistant sees this action as a tool with the same name, get_post, and the same inputs.