Get Post
curl --request POST \
--url https://api.linkupapi.com/v2/content \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"post_url": "<string>"
}
}
'import requests
url = "https://api.linkupapi.com/v2/content"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": { "post_url": "<string>" }
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({account_id: '<string>', action: '<string>', params: {post_url: '<string>'}})
};
fetch('https://api.linkupapi.com/v2/content', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v2/content",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'account_id' => '<string>',
'action' => '<string>',
'params' => [
'post_url' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v2/content"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"post_url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v2/content")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"post_url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/content")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"post_url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"shareAudience": "PUBLIC",
"backend_urn": "urn:li:activity:7497818529442742272",
"activity_id": "7497818529442742272",
"shareUrl": "https://www.linkedin.com/posts/williamhgates_a-city-mobilizes-against-a-stubborn-health-activity-7497818529442742272-yNR5",
"text": "After a major surge in dengue fever, the Brazilian city of Belém went all in to fight the virus...",
"numLikes": 560,
"numComments": 90,
"numShares": 38,
"reactions": { "LIKE": 497, "EMPATHY": 21, "APPRECIATION": 20, "PRAISE": 10, "INTEREST": 8, "ENTERTAINMENT": 1 },
"actor_name": "Bill Gates",
"actor_description": "Chair, Gates Foundation and Founder, Breakthrough Energy",
"actor_image": "https://media.licdn.com/dms/image/...",
"actor_profile_url": "https://www.linkedin.com/in/williamhgates",
"created_time": 1787619240,
"published_at": 1787619240,
"content": {
"type": "article",
"title": "A city mobilizes against a stubborn health threat",
"subtitle": "gatesnotes.com",
"url": "https://www.gatesnotes.com/...",
"thumbnail": "https://media.licdn.com/dms/image/..."
},
"post_images": [],
"is_reshare": false,
"post_url": "https://www.linkedin.com/posts/williamhgates_a-city-mobilizes-against-a-stubborn-health-activity-7497818529442742272-yNR5"
},
"metadata": {
"action": "get",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-08-25T11:20:00Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Post not found or not accessible with this account"
},
"metadata": {
"action": "get",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-08-25T11:20:00Z"
}
}
Content
Get Post
Retrieve a single post from its URL.
POST
/
v2
/
content
Get Post
curl --request POST \
--url https://api.linkupapi.com/v2/content \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"post_url": "<string>"
}
}
'import requests
url = "https://api.linkupapi.com/v2/content"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": { "post_url": "<string>" }
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({account_id: '<string>', action: '<string>', params: {post_url: '<string>'}})
};
fetch('https://api.linkupapi.com/v2/content', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v2/content",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'account_id' => '<string>',
'action' => '<string>',
'params' => [
'post_url' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v2/content"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"post_url\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v2/content")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"post_url\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/content")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"post_url\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"shareAudience": "PUBLIC",
"backend_urn": "urn:li:activity:7497818529442742272",
"activity_id": "7497818529442742272",
"shareUrl": "https://www.linkedin.com/posts/williamhgates_a-city-mobilizes-against-a-stubborn-health-activity-7497818529442742272-yNR5",
"text": "After a major surge in dengue fever, the Brazilian city of Belém went all in to fight the virus...",
"numLikes": 560,
"numComments": 90,
"numShares": 38,
"reactions": { "LIKE": 497, "EMPATHY": 21, "APPRECIATION": 20, "PRAISE": 10, "INTEREST": 8, "ENTERTAINMENT": 1 },
"actor_name": "Bill Gates",
"actor_description": "Chair, Gates Foundation and Founder, Breakthrough Energy",
"actor_image": "https://media.licdn.com/dms/image/...",
"actor_profile_url": "https://www.linkedin.com/in/williamhgates",
"created_time": 1787619240,
"published_at": 1787619240,
"content": {
"type": "article",
"title": "A city mobilizes against a stubborn health threat",
"subtitle": "gatesnotes.com",
"url": "https://www.gatesnotes.com/...",
"thumbnail": "https://media.licdn.com/dms/image/..."
},
"post_images": [],
"is_reshare": false,
"post_url": "https://www.linkedin.com/posts/williamhgates_a-city-mobilizes-against-a-stubborn-health-activity-7497818529442742272-yNR5"
},
"metadata": {
"action": "get",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-08-25T11:20:00Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Post not found or not accessible with this account"
},
"metadata": {
"action": "get",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-08-25T11:20:00Z"
}
}
Overview
Returns the details of one post (author, text, media, reaction and comment counts) from its URL. Same post shape asPOST /v2/profiles → get_posts.
This endpoint consumes 1 credit per call. Ignore this if you’re on per-seat pricing: usage is unlimited.
Request
string
required
Your API key for authentication.
string
required
The unique identifier of the account to use.
string
required
Must be
"get".object
Show params properties
Show params properties
string
required
URL of the post (
/posts/...-activity-<id>-xxx or /feed/update/urn:li:activity:<id>). A bare urn:li:activity:<id> is also accepted.Response
boolean
Indicates whether the request was successful.
object
Show data properties
Show data properties
string
Activity URN of the post (
urn:li:activity:...).string
Numeric part of the activity URN, as a string.
string
Public URL of the post.
string
Text content of the post.
integer
Publication time as a Unix timestamp (seconds).
integer
Total number of reactions.
integer
Number of comments.
integer
Number of reposts.
object
Reaction counts by type (
LIKE, EMPATHY, PRAISE, INTEREST, APPRECIATION, ENTERTAINMENT).object
Attached media.
type is one of text, image, article, video, document, poll, celebration; the other fields depend on the type (images, title, url, thumbnail…).string
Name of the author.
string
Headline of the author.
string
Profile URL of the author.
boolean
true when the post is a repost. The original post is then available in original_post.string
The URL that was queried.
object
{
"success": true,
"data": {
"shareAudience": "PUBLIC",
"backend_urn": "urn:li:activity:7497818529442742272",
"activity_id": "7497818529442742272",
"shareUrl": "https://www.linkedin.com/posts/williamhgates_a-city-mobilizes-against-a-stubborn-health-activity-7497818529442742272-yNR5",
"text": "After a major surge in dengue fever, the Brazilian city of Belém went all in to fight the virus...",
"numLikes": 560,
"numComments": 90,
"numShares": 38,
"reactions": { "LIKE": 497, "EMPATHY": 21, "APPRECIATION": 20, "PRAISE": 10, "INTEREST": 8, "ENTERTAINMENT": 1 },
"actor_name": "Bill Gates",
"actor_description": "Chair, Gates Foundation and Founder, Breakthrough Energy",
"actor_image": "https://media.licdn.com/dms/image/...",
"actor_profile_url": "https://www.linkedin.com/in/williamhgates",
"created_time": 1787619240,
"published_at": 1787619240,
"content": {
"type": "article",
"title": "A city mobilizes against a stubborn health threat",
"subtitle": "gatesnotes.com",
"url": "https://www.gatesnotes.com/...",
"thumbnail": "https://media.licdn.com/dms/image/..."
},
"post_images": [],
"is_reshare": false,
"post_url": "https://www.linkedin.com/posts/williamhgates_a-city-mobilizes-against-a-stubborn-health-activity-7497818529442742272-yNR5"
},
"metadata": {
"action": "get",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-08-25T11:20:00Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Post not found or not accessible with this account"
},
"metadata": {
"action": "get",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-08-25T11:20:00Z"
}
}
Was this page helpful?