Get Profile Posts
curl --request POST \
--url https://api.linkupapi.com/v2/profiles \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"profile_url": "<string>",
"count": 123,
"cursor": "<string>",
"include_reshares": true
}
}
'import requests
url = "https://api.linkupapi.com/v2/profiles"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"profile_url": "<string>",
"count": 123,
"cursor": "<string>",
"include_reshares": True
}
}
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: {
profile_url: '<string>',
count: 123,
cursor: '<string>',
include_reshares: true
}
})
};
fetch('https://api.linkupapi.com/v2/profiles', 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/profiles",
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' => [
'profile_url' => '<string>',
'count' => 123,
'cursor' => '<string>',
'include_reshares' => true
]
]),
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/profiles"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"profile_url\": \"<string>\",\n \"count\": 123,\n \"cursor\": \"<string>\",\n \"include_reshares\": true\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/profiles")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"profile_url\": \"<string>\",\n \"count\": 123,\n \"cursor\": \"<string>\",\n \"include_reshares\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/profiles")
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 \"profile_url\": \"<string>\",\n \"count\": 123,\n \"cursor\": \"<string>\",\n \"include_reshares\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"profile_url": "https://www.linkedin.com/in/williamhgates",
"profile_urn": "urn:li:fsd_profile:ACoAAA8BYqEBCGLg_vT_ca6mMEqkpp9nVffJ3hc",
"posts": [
{
"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": 545,
"numComments": 88,
"numShares": 37,
"reactions": { "LIKE": 484, "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
}
],
"total_results": 1,
"pagination": {
"count": 1,
"has_more": true,
"next_cursor": "1|dXJuOmxpOmFjdGl2aXR5Ojc0OTc4MTg1Mjk0NDI3NDIyNzItMTc4NzYxOTI0MDE1MQ==",
"pages_fetched": 1
}
},
"metadata": {
"action": "get_posts",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-08-25T10:48:18Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "profile_url is required"
},
"metadata": {
"action": "get_posts",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-08-25T10:48:18Z"
}
}
Profiles
Get Profile Posts
Retrieve the posts published by a user, newest first.
POST
/
v2
/
profiles
Get Profile Posts
curl --request POST \
--url https://api.linkupapi.com/v2/profiles \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"profile_url": "<string>",
"count": 123,
"cursor": "<string>",
"include_reshares": true
}
}
'import requests
url = "https://api.linkupapi.com/v2/profiles"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"profile_url": "<string>",
"count": 123,
"cursor": "<string>",
"include_reshares": True
}
}
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: {
profile_url: '<string>',
count: 123,
cursor: '<string>',
include_reshares: true
}
})
};
fetch('https://api.linkupapi.com/v2/profiles', 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/profiles",
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' => [
'profile_url' => '<string>',
'count' => 123,
'cursor' => '<string>',
'include_reshares' => true
]
]),
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/profiles"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"profile_url\": \"<string>\",\n \"count\": 123,\n \"cursor\": \"<string>\",\n \"include_reshares\": true\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/profiles")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"profile_url\": \"<string>\",\n \"count\": 123,\n \"cursor\": \"<string>\",\n \"include_reshares\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/profiles")
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 \"profile_url\": \"<string>\",\n \"count\": 123,\n \"cursor\": \"<string>\",\n \"include_reshares\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"profile_url": "https://www.linkedin.com/in/williamhgates",
"profile_urn": "urn:li:fsd_profile:ACoAAA8BYqEBCGLg_vT_ca6mMEqkpp9nVffJ3hc",
"posts": [
{
"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": 545,
"numComments": 88,
"numShares": 37,
"reactions": { "LIKE": 484, "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
}
],
"total_results": 1,
"pagination": {
"count": 1,
"has_more": true,
"next_cursor": "1|dXJuOmxpOmFjdGl2aXR5Ojc0OTc4MTg1Mjk0NDI3NDIyNzItMTc4NzYxOTI0MDE1MQ==",
"pages_fetched": 1
}
},
"metadata": {
"action": "get_posts",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-08-25T10:48:18Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "profile_url is required"
},
"metadata": {
"action": "get_posts",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-08-25T10:48:18Z"
}
}
Overview
Fetches the posts authored by a specified user (their Activity › Posts tab). Results are returned in reverse-chronological order and only include the user’s own posts — reactions, comments and reshares are excluded unlessinclude_reshares is set. Pagination is cursor-based — pass the next_cursor returned by a previous call to fetch the next page.
This endpoint consumes 1 credit per 10 results returned. Ignore this if you’re on per-seat pricing: usage is unlimited.
To search posts by keyword or across several authors, use
POST /v2/content → search instead.Request
string
required
Your API key for authentication.
string
required
The unique identifier of the account to use.
string
required
Must be
"get_posts".object
Show params properties
Show params properties
string
required
URL of the target user’s profile on the connected platform.
integer
default:10
Number of posts to return (max
500).string
Pagination cursor returned by a previous request as
pagination.next_cursor. Omit for the first page.boolean
default:false
Also return the user’s activity items (reshares, liked or commented posts). Those items carry an
activity_header such as "Jane Doe likes this".Response
boolean
Indicates whether the request was successful.
object
Show data properties
Show data properties
array
List of posts, newest first.
Show post item properties
Show post item properties
string
Activity URN of the post (
urn:li:activity:...). Use it with the content actions (like, comment, get_comments…).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.integer
Number of posts returned in this response.
string
The profile URL that was queried.
string
The full URN of the queried profile.
object
{
"success": true,
"data": {
"profile_url": "https://www.linkedin.com/in/williamhgates",
"profile_urn": "urn:li:fsd_profile:ACoAAA8BYqEBCGLg_vT_ca6mMEqkpp9nVffJ3hc",
"posts": [
{
"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": 545,
"numComments": 88,
"numShares": 37,
"reactions": { "LIKE": 484, "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
}
],
"total_results": 1,
"pagination": {
"count": 1,
"has_more": true,
"next_cursor": "1|dXJuOmxpOmFjdGl2aXR5Ojc0OTc4MTg1Mjk0NDI3NDIyNzItMTc4NzYxOTI0MDE1MQ==",
"pages_fetched": 1
}
},
"metadata": {
"action": "get_posts",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-08-25T10:48:18Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "profile_url is required"
},
"metadata": {
"action": "get_posts",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-08-25T10:48:18Z"
}
}
Was this page helpful?