Get Profile Viewers
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": {
"count": 123,
"offset": 123
}
}
'import requests
url = "https://api.linkupapi.com/v2/profiles"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"count": 123,
"offset": 123
}
}
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: {count: 123, offset: 123}})
};
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' => [
'count' => 123,
'offset' => 123
]
]),
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 \"count\": 123,\n \"offset\": 123\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 \"count\": 123,\n \"offset\": 123\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 \"count\": 123,\n \"offset\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"viewers": [
{
"title": "Someone at The Hive Company",
"image_url": "https://media.licdn.com/media/AAYQBAT4...",
"is_blurred": true,
"cta_action": "View",
"profile_url": null,
"entity_urn": null
},
{
"title": "Jane Doe",
"image_url": "https://media.licdn.com/dms/image/v2/...",
"is_blurred": false,
"cta_action": "Connect",
"profile_url": "https://www.linkedin.com/in/janedoe",
"entity_urn": "urn:li:fsd_profile:ACoAA..."
}
],
"total_results": 2,
"pagination": {
"offset": 0,
"count": 2,
"total": 87,
"has_more": true,
"next_offset": 10
}
},
"metadata": {
"action": "get_viewers",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-04-26T10:35:00Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "account_id is required."
},
"metadata": {
"action": "get_viewers",
"account_id": null,
"credits_consumed": 0,
"timestamp": "2026-04-26T10:35:00Z"
}
}
Profiles
Get Profile Viewers
Retrieve the list of people who recently viewed your profile.
POST
/
v2
/
profiles
Get Profile Viewers
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": {
"count": 123,
"offset": 123
}
}
'import requests
url = "https://api.linkupapi.com/v2/profiles"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"count": 123,
"offset": 123
}
}
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: {count: 123, offset: 123}})
};
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' => [
'count' => 123,
'offset' => 123
]
]),
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 \"count\": 123,\n \"offset\": 123\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 \"count\": 123,\n \"offset\": 123\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 \"count\": 123,\n \"offset\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"viewers": [
{
"title": "Someone at The Hive Company",
"image_url": "https://media.licdn.com/media/AAYQBAT4...",
"is_blurred": true,
"cta_action": "View",
"profile_url": null,
"entity_urn": null
},
{
"title": "Jane Doe",
"image_url": "https://media.licdn.com/dms/image/v2/...",
"is_blurred": false,
"cta_action": "Connect",
"profile_url": "https://www.linkedin.com/in/janedoe",
"entity_urn": "urn:li:fsd_profile:ACoAA..."
}
],
"total_results": 2,
"pagination": {
"offset": 0,
"count": 2,
"total": 87,
"has_more": true,
"next_offset": 10
}
},
"metadata": {
"action": "get_viewers",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-04-26T10:35:00Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "account_id is required."
},
"metadata": {
"action": "get_viewers",
"account_id": null,
"credits_consumed": 0,
"timestamp": "2026-04-26T10:35:00Z"
}
}
Overview
Returns the list of users who recently viewed the authenticated account’s profile (Premium “Who Viewed My Profile” data). Pagination is offset-based — setcount for the page size and offset to skip ahead.
This endpoint consumes 1 credit per 10 results returned. Some viewers can be blurred (the platform anonymizes non-Premium-tier visitors when out of quota); they appear with
is_blurred: true and lack profile_url. 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_viewers".object
Response
boolean
Indicates whether the request was successful.
object
Show data properties
Show data properties
array
List of viewer objects.
Show viewer item properties
Show viewer item properties
string
Display label (e.g.
"Public Speaker in the Staffing and Recruiting industry from London" for blurred viewers, or the person’s full name when revealed).string
URL of the profile picture (or generic blurred avatar).
boolean
true when the platform has anonymized the viewer (Premium quota exceeded or visitor used Private mode).string
Action label the platform proposes (e.g.
"View", "Connect").string
Public profile URL —
null when is_blurred is true.string
Unique identifier of the viewer —
null when is_blurred is true. Treat it as an opaque string and pass it back exactly as returned.integer
Number of viewers returned in this response.
object
Show pagination properties
Show pagination properties
integer
Offset of the first viewer in this response.
integer
Number of viewers returned (mirrors
total_results).integer
Total number of viewers reported by the platform (may be
0 when not exposed).boolean
true if more viewers are available beyond this batch.integer
Offset to send as
offset in the next request. null when exhausted.object
{
"success": true,
"data": {
"viewers": [
{
"title": "Someone at The Hive Company",
"image_url": "https://media.licdn.com/media/AAYQBAT4...",
"is_blurred": true,
"cta_action": "View",
"profile_url": null,
"entity_urn": null
},
{
"title": "Jane Doe",
"image_url": "https://media.licdn.com/dms/image/v2/...",
"is_blurred": false,
"cta_action": "Connect",
"profile_url": "https://www.linkedin.com/in/janedoe",
"entity_urn": "urn:li:fsd_profile:ACoAA..."
}
],
"total_results": 2,
"pagination": {
"offset": 0,
"count": 2,
"total": 87,
"has_more": true,
"next_offset": 10
}
},
"metadata": {
"action": "get_viewers",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-04-26T10:35:00Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "account_id is required."
},
"metadata": {
"action": "get_viewers",
"account_id": null,
"credits_consumed": 0,
"timestamp": "2026-04-26T10:35:00Z"
}
}
Was this page helpful?