Posts & Engagement

Posts & Engagement

Voyager provides full post lifecycle management — create posts, react with any of LinkedIn’s 6 reaction types, comment, edit, delete, and monitor engagement. All engagement endpoints are pure HTTP (REST + GraphQL fallback).

Every Voyager response is wrapped in the standard envelope { success, statusCode, message, data, errors }. The JSON examples below show only the endpoint-specific payload — access res.data.<field> in your client. See Introduction for the full envelope shape.

Create a Post

curl -X POST "$BASE/api/post" \
-H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
-H "Content-Type: application/json" \
-d '{
"text": "Excited to share our latest findings on AI infrastructure scaling.\n\nKey takeaways:\n- Latency matters more than throughput\n- Cache everything you can\n- Measure from the edge\n\n#AI #Engineering #Infrastructure"
}'
{
"success": true,
"postUrn": "urn:li:share:7180123456789012345",
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7180123456789012345/"
}

Like a Post

React to a post with any of LinkedIn’s 6 reaction types:

curl -X POST "$BASE/api/like" \
-H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
-H "Content-Type: application/json" \
-d '{
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7180123456789012345/",
"reactionType": "PRAISE"
}'

Reaction Types

TypeEmojiDescription
LIKEThumbs upDefault reaction
PRAISEClapCelebrating
APPRECIATIONHeartLove
EMPATHYHugSupportive / Caring
INTERESTLightbulbInsightful
ENTERTAINMENTLaughFunny

If reactionType is omitted, it defaults to LIKE.

Unlike a Post

curl -X POST "$BASE/api/like" \
-H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
-H "Content-Type: application/json" \
-d '{
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7180123456789012345/",
"unlike": true
}'

Comment on a Post

curl -X POST "$BASE/api/comment" \
-H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
-H "Content-Type: application/json" \
-d '{
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7180123456789012345/",
"comment": "Great insight! We have been seeing similar trends in our infrastructure work."
}'

Delete a Comment

Delete by matching text (finds your comment that matches the provided text):

curl -X POST "$BASE/api/comment" \
-H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
-H "Content-Type: application/json" \
-d '{
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7180123456789012345/",
"comment": "Great insight! We have been seeing similar trends",
"delete": true
}'

Or delete by URN directly:

curl -X DELETE "$BASE/api/comment" \
-H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
-H "Content-Type: application/json" \
-d '{"commentUrn": "urn:li:comment:(activity:7180123456789012345,7180987654321098765)"}'

Delete a Post

curl -X POST "$BASE/api/post" \
-H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
-H "Content-Type: application/json" \
-d '{
"text": "Excited to share our latest findings",
"delete": true
}'

Get a Person’s Posts

curl -H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
"$BASE/api/posts?profileUrl=https://www.linkedin.com/in/janesmith/&limit=10"

Get Post Reactions

See who reacted to a specific post:

curl -H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
"$BASE/api/posts/7180123456789012345/reactions?limit=50"

Get Post Comments

curl -H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
"$BASE/api/posts/7180123456789012345/comments?limit=50"

The postId in URLs like /api/posts/:postId/comments is the numeric activity ID. Extract it from a post URL: urn:li:activity:7180123456789012345 has postId 7180123456789012345.

Feed & Content Discovery

Your Feed

curl -H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
"$BASE/api/feed?start=0&count=20"
curl -H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
"$BASE/api/feed/topics?count=10"

Search Content

curl -H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
"$BASE/api/search/content?keywords=AI+infrastructure&count=10"

Follow / Unfollow

# Follow a profile
curl -X POST "$BASE/api/follow" \
-H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
-H "Content-Type: application/json" \
-d '{"profileUrl": "https://www.linkedin.com/in/janesmith/"}'
# Unfollow
curl -X POST "$BASE/api/follow" \
-H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
-H "Content-Type: application/json" \
-d '{"profileUrl": "https://www.linkedin.com/in/janesmith/", "unfollow": true}'

Your Engagement History

See posts you have liked and comments you have written:

curl -H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
"$BASE/api/reactions?count=20"

Notifications

Get engagement notifications on your own content (likes, comments, mentions):

curl -H "Authorization: Bearer $KEY" \
-H "X-User-Id: $USER" \
"$BASE/api/notifications?count=20"