Search People
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": {
"search_url": "<string>",
"keyword": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"title": "<string>",
"company_name": "<string>",
"company_url": [
"<string>"
],
"past_company": [
"<string>"
],
"location": [
"<string>"
],
"school_url": [
"<string>"
],
"industry": [
"<string>"
],
"network": [
"<string>"
],
"connection_of": "<string>",
"follower_of": "<string>",
"offset": 123,
"count": 123
}
}
'import requests
url = "https://api.linkupapi.com/v2/profiles"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"search_url": "<string>",
"keyword": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"title": "<string>",
"company_name": "<string>",
"company_url": ["<string>"],
"past_company": ["<string>"],
"location": ["<string>"],
"school_url": ["<string>"],
"industry": ["<string>"],
"network": ["<string>"],
"connection_of": "<string>",
"follower_of": "<string>",
"offset": 123,
"count": 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: {
search_url: '<string>',
keyword: '<string>',
first_name: '<string>',
last_name: '<string>',
title: '<string>',
company_name: '<string>',
company_url: ['<string>'],
past_company: ['<string>'],
location: ['<string>'],
school_url: ['<string>'],
industry: ['<string>'],
network: ['<string>'],
connection_of: '<string>',
follower_of: '<string>',
offset: 123,
count: 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' => [
'search_url' => '<string>',
'keyword' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'title' => '<string>',
'company_name' => '<string>',
'company_url' => [
'<string>'
],
'past_company' => [
'<string>'
],
'location' => [
'<string>'
],
'school_url' => [
'<string>'
],
'industry' => [
'<string>'
],
'network' => [
'<string>'
],
'connection_of' => '<string>',
'follower_of' => '<string>',
'offset' => 123,
'count' => 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 \"search_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_url\": [\n \"<string>\"\n ],\n \"past_company\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"school_url\": [\n \"<string>\"\n ],\n \"industry\": [\n \"<string>\"\n ],\n \"network\": [\n \"<string>\"\n ],\n \"connection_of\": \"<string>\",\n \"follower_of\": \"<string>\",\n \"offset\": 123,\n \"count\": 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 \"search_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_url\": [\n \"<string>\"\n ],\n \"past_company\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"school_url\": [\n \"<string>\"\n ],\n \"industry\": [\n \"<string>\"\n ],\n \"network\": [\n \"<string>\"\n ],\n \"connection_of\": \"<string>\",\n \"follower_of\": \"<string>\",\n \"offset\": 123,\n \"count\": 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 \"search_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_url\": [\n \"<string>\"\n ],\n \"past_company\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"school_url\": [\n \"<string>\"\n ],\n \"industry\": [\n \"<string>\"\n ],\n \"network\": [\n \"<string>\"\n ],\n \"connection_of\": \"<string>\",\n \"follower_of\": \"<string>\",\n \"offset\": 123,\n \"count\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"profiles": [
{
"name": "Jane Doe",
"job_title": "Growth Marketing Specialist",
"connection_level": "2nd degree",
"location": "Greater Nice Metropolitan Area",
"profile_url": "https://www.linkedin.com/in/janedoe",
"profile_picture": "https://media.licdn.com/dms/image/..."
}
],
"total_results": 1,
"total_available_results": 15400
},
"metadata": {
"action": "search_people",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-04-28T12:00:00Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "At least one search parameter is required."
},
"metadata": {
"action": "search_people",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-03-24T12:00:00Z"
}
}
Profiles
Search People
Search for profiles using various filters.
POST
/
v2
/
profiles
Search People
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": {
"search_url": "<string>",
"keyword": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"title": "<string>",
"company_name": "<string>",
"company_url": [
"<string>"
],
"past_company": [
"<string>"
],
"location": [
"<string>"
],
"school_url": [
"<string>"
],
"industry": [
"<string>"
],
"network": [
"<string>"
],
"connection_of": "<string>",
"follower_of": "<string>",
"offset": 123,
"count": 123
}
}
'import requests
url = "https://api.linkupapi.com/v2/profiles"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"search_url": "<string>",
"keyword": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"title": "<string>",
"company_name": "<string>",
"company_url": ["<string>"],
"past_company": ["<string>"],
"location": ["<string>"],
"school_url": ["<string>"],
"industry": ["<string>"],
"network": ["<string>"],
"connection_of": "<string>",
"follower_of": "<string>",
"offset": 123,
"count": 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: {
search_url: '<string>',
keyword: '<string>',
first_name: '<string>',
last_name: '<string>',
title: '<string>',
company_name: '<string>',
company_url: ['<string>'],
past_company: ['<string>'],
location: ['<string>'],
school_url: ['<string>'],
industry: ['<string>'],
network: ['<string>'],
connection_of: '<string>',
follower_of: '<string>',
offset: 123,
count: 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' => [
'search_url' => '<string>',
'keyword' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'title' => '<string>',
'company_name' => '<string>',
'company_url' => [
'<string>'
],
'past_company' => [
'<string>'
],
'location' => [
'<string>'
],
'school_url' => [
'<string>'
],
'industry' => [
'<string>'
],
'network' => [
'<string>'
],
'connection_of' => '<string>',
'follower_of' => '<string>',
'offset' => 123,
'count' => 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 \"search_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_url\": [\n \"<string>\"\n ],\n \"past_company\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"school_url\": [\n \"<string>\"\n ],\n \"industry\": [\n \"<string>\"\n ],\n \"network\": [\n \"<string>\"\n ],\n \"connection_of\": \"<string>\",\n \"follower_of\": \"<string>\",\n \"offset\": 123,\n \"count\": 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 \"search_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_url\": [\n \"<string>\"\n ],\n \"past_company\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"school_url\": [\n \"<string>\"\n ],\n \"industry\": [\n \"<string>\"\n ],\n \"network\": [\n \"<string>\"\n ],\n \"connection_of\": \"<string>\",\n \"follower_of\": \"<string>\",\n \"offset\": 123,\n \"count\": 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 \"search_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_url\": [\n \"<string>\"\n ],\n \"past_company\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"school_url\": [\n \"<string>\"\n ],\n \"industry\": [\n \"<string>\"\n ],\n \"network\": [\n \"<string>\"\n ],\n \"connection_of\": \"<string>\",\n \"follower_of\": \"<string>\",\n \"offset\": 123,\n \"count\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"profiles": [
{
"name": "Jane Doe",
"job_title": "Growth Marketing Specialist",
"connection_level": "2nd degree",
"location": "Greater Nice Metropolitan Area",
"profile_url": "https://www.linkedin.com/in/janedoe",
"profile_picture": "https://media.licdn.com/dms/image/..."
}
],
"total_results": 1,
"total_available_results": 15400
},
"metadata": {
"action": "search_people",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-04-28T12:00:00Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "At least one search parameter is required."
},
"metadata": {
"action": "search_people",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-03-24T12:00:00Z"
}
}
Overview
Search for profiles using a combination of keyword, company, location, school, and other filters. Supports pagination for retrieving large result sets. There are two ways to define the search — pick whichever fits:- Friendly filters — pass human-readable values (e.g.
location: "Paris",title: "CEO") and the API resolves them to the underlying ids for you. - Copied LinkedIn search URL — build the search visually on LinkedIn, copy the page URL, and pass it as
search_url. Every filter is replicated verbatim, including ones with no friendly mapping (service category, profile language, open to volunteering, school free text, …).
This endpoint consumes 1 credit per 10 results returned. 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
"search_people".object
Show params properties
Show params properties
string
A copied LinkedIn people search URL (
https://www.linkedin.com/search/results/people/?...), pasted as-is. When provided, its filters are used as-is and take precedence over the friendly filters below. The best way to replicate a complex search or to use filters that have no friendly mapping. Returns INVALID_PARAMS if the URL is not a people search or carries no filter at all.string
General keyword to search for across profiles.
string
Filter by first name.
string
Filter by last name.
string
Filter by current job title.
string
Filter by current company name.
string | string[]
Filter by company page URL, or a company id from Typeahead. Accepts a single string or an array of strings for multiple companies.
string | string[]
Filter by past company name, URL or id. Accepts a single string or an array.
string | string[]
Filter by location name (e.g.,
"San Francisco", ["Paris", "London"]) or location id from Typeahead. Accepts a single string or an array.string | string[]
Filter by school page URL or school id. Accepts a single string or an array.
string | string[]
Filter by industry. Accepts a single string or an array.
string | string[]
Filter by network relationship. Accepted values:
"F" (1st degree), "S" (2nd degree), "O" (3rd degree and beyond). Accepts a single string or an array (e.g., ["F", "S"]).string
Filter to show connections of a specific profile (profile URL, identifier, or the id returned by Typeahead
people).string
Filter to show followers of a specific company or profile.
integer
default:0
Index of the first result to return (0-based). Combine with
count to paginate. Any value works — it does not have to align to a page boundary.integer
default:10
Number of results to return, starting at
offset.Response
boolean
Indicates whether the request was successful.
object
Show data properties
Show data properties
array
integer
Number of profiles returned.
integer
Total number of matching profiles available.
{
"success": true,
"data": {
"profiles": [
{
"name": "Jane Doe",
"job_title": "Growth Marketing Specialist",
"connection_level": "2nd degree",
"location": "Greater Nice Metropolitan Area",
"profile_url": "https://www.linkedin.com/in/janedoe",
"profile_picture": "https://media.licdn.com/dms/image/..."
}
],
"total_results": 1,
"total_available_results": 15400
},
"metadata": {
"action": "search_people",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-04-28T12:00:00Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "At least one search parameter is required."
},
"metadata": {
"action": "search_people",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-03-24T12:00:00Z"
}
}
Was this page helpful?