Search Companies Nav
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": {
"sales_nav_url": "<string>",
"keyword": "<string>",
"industry": [
"<string>"
],
"location": [
"<string>"
],
"company_headcount": [
"<string>"
],
"headcount_growth": {},
"department_headcount": {},
"department_headcount_growth": {},
"annual_revenue": {},
"fortune": [
"<string>"
],
"followers": [
"<string>"
],
"hiring_on_linkedin": true,
"recent_funding": true,
"leadership_changes": true,
"first_degree_connections": true,
"postal_code": [
"<string>"
],
"account_list": [
"<string>"
],
"exclude": {},
"offset": 123,
"count": 123
}
}
'import requests
url = "https://api.linkupapi.com/v2/profiles"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"sales_nav_url": "<string>",
"keyword": "<string>",
"industry": ["<string>"],
"location": ["<string>"],
"company_headcount": ["<string>"],
"headcount_growth": {},
"department_headcount": {},
"department_headcount_growth": {},
"annual_revenue": {},
"fortune": ["<string>"],
"followers": ["<string>"],
"hiring_on_linkedin": True,
"recent_funding": True,
"leadership_changes": True,
"first_degree_connections": True,
"postal_code": ["<string>"],
"account_list": ["<string>"],
"exclude": {},
"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: {
sales_nav_url: '<string>',
keyword: '<string>',
industry: ['<string>'],
location: ['<string>'],
company_headcount: ['<string>'],
headcount_growth: {},
department_headcount: {},
department_headcount_growth: {},
annual_revenue: {},
fortune: ['<string>'],
followers: ['<string>'],
hiring_on_linkedin: true,
recent_funding: true,
leadership_changes: true,
first_degree_connections: true,
postal_code: ['<string>'],
account_list: ['<string>'],
exclude: {},
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' => [
'sales_nav_url' => '<string>',
'keyword' => '<string>',
'industry' => [
'<string>'
],
'location' => [
'<string>'
],
'company_headcount' => [
'<string>'
],
'headcount_growth' => [
],
'department_headcount' => [
],
'department_headcount_growth' => [
],
'annual_revenue' => [
],
'fortune' => [
'<string>'
],
'followers' => [
'<string>'
],
'hiring_on_linkedin' => true,
'recent_funding' => true,
'leadership_changes' => true,
'first_degree_connections' => true,
'postal_code' => [
'<string>'
],
'account_list' => [
'<string>'
],
'exclude' => [
],
'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 \"sales_nav_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"industry\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"company_headcount\": [\n \"<string>\"\n ],\n \"headcount_growth\": {},\n \"department_headcount\": {},\n \"department_headcount_growth\": {},\n \"annual_revenue\": {},\n \"fortune\": [\n \"<string>\"\n ],\n \"followers\": [\n \"<string>\"\n ],\n \"hiring_on_linkedin\": true,\n \"recent_funding\": true,\n \"leadership_changes\": true,\n \"first_degree_connections\": true,\n \"postal_code\": [\n \"<string>\"\n ],\n \"account_list\": [\n \"<string>\"\n ],\n \"exclude\": {},\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 \"sales_nav_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"industry\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"company_headcount\": [\n \"<string>\"\n ],\n \"headcount_growth\": {},\n \"department_headcount\": {},\n \"department_headcount_growth\": {},\n \"annual_revenue\": {},\n \"fortune\": [\n \"<string>\"\n ],\n \"followers\": [\n \"<string>\"\n ],\n \"hiring_on_linkedin\": true,\n \"recent_funding\": true,\n \"leadership_changes\": true,\n \"first_degree_connections\": true,\n \"postal_code\": [\n \"<string>\"\n ],\n \"account_list\": [\n \"<string>\"\n ],\n \"exclude\": {},\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 \"sales_nav_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"industry\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"company_headcount\": [\n \"<string>\"\n ],\n \"headcount_growth\": {},\n \"department_headcount\": {},\n \"department_headcount_growth\": {},\n \"annual_revenue\": {},\n \"fortune\": [\n \"<string>\"\n ],\n \"followers\": [\n \"<string>\"\n ],\n \"hiring_on_linkedin\": true,\n \"recent_funding\": true,\n \"leadership_changes\": true,\n \"first_degree_connections\": true,\n \"postal_code\": [\n \"<string>\"\n ],\n \"account_list\": [\n \"<string>\"\n ],\n \"exclude\": {},\n \"offset\": 123,\n \"count\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"total_results": 1,
"offset": 0,
"total_available_results": 73,
"companies": [
{
"company_name": "Certi-Trust",
"company_id": "7796325",
"company_url": "https://www.linkedin.com/company/7796325",
"sales_nav_url": "https://www.linkedin.com/sales/company/7796325",
"entity_urn": "urn:li:fs_salesCompany:7796325",
"industry": "IT System Testing and Evaluation",
"employee_count_range": "51-200 employees",
"employee_display_count": "120",
"description": "Cybersecurity audit and certification.",
"logo_url": "https://media.licdn.com/dms/image/...",
"saved": false,
"list_count": 0,
"spotlights": [
{ "type": "HIRING_ON_LINKEDIN", "text": "Hiring on Linkedin" }
]
}
]
},
"metadata": {
"action": "search_companies_nav",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-10-26T12:00:00Z"
}
}
Profiles
Search Companies Nav
Search accounts (companies) with Sales Nav.
POST
/
v2
/
profiles
Search Companies Nav
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": {
"sales_nav_url": "<string>",
"keyword": "<string>",
"industry": [
"<string>"
],
"location": [
"<string>"
],
"company_headcount": [
"<string>"
],
"headcount_growth": {},
"department_headcount": {},
"department_headcount_growth": {},
"annual_revenue": {},
"fortune": [
"<string>"
],
"followers": [
"<string>"
],
"hiring_on_linkedin": true,
"recent_funding": true,
"leadership_changes": true,
"first_degree_connections": true,
"postal_code": [
"<string>"
],
"account_list": [
"<string>"
],
"exclude": {},
"offset": 123,
"count": 123
}
}
'import requests
url = "https://api.linkupapi.com/v2/profiles"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"sales_nav_url": "<string>",
"keyword": "<string>",
"industry": ["<string>"],
"location": ["<string>"],
"company_headcount": ["<string>"],
"headcount_growth": {},
"department_headcount": {},
"department_headcount_growth": {},
"annual_revenue": {},
"fortune": ["<string>"],
"followers": ["<string>"],
"hiring_on_linkedin": True,
"recent_funding": True,
"leadership_changes": True,
"first_degree_connections": True,
"postal_code": ["<string>"],
"account_list": ["<string>"],
"exclude": {},
"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: {
sales_nav_url: '<string>',
keyword: '<string>',
industry: ['<string>'],
location: ['<string>'],
company_headcount: ['<string>'],
headcount_growth: {},
department_headcount: {},
department_headcount_growth: {},
annual_revenue: {},
fortune: ['<string>'],
followers: ['<string>'],
hiring_on_linkedin: true,
recent_funding: true,
leadership_changes: true,
first_degree_connections: true,
postal_code: ['<string>'],
account_list: ['<string>'],
exclude: {},
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' => [
'sales_nav_url' => '<string>',
'keyword' => '<string>',
'industry' => [
'<string>'
],
'location' => [
'<string>'
],
'company_headcount' => [
'<string>'
],
'headcount_growth' => [
],
'department_headcount' => [
],
'department_headcount_growth' => [
],
'annual_revenue' => [
],
'fortune' => [
'<string>'
],
'followers' => [
'<string>'
],
'hiring_on_linkedin' => true,
'recent_funding' => true,
'leadership_changes' => true,
'first_degree_connections' => true,
'postal_code' => [
'<string>'
],
'account_list' => [
'<string>'
],
'exclude' => [
],
'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 \"sales_nav_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"industry\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"company_headcount\": [\n \"<string>\"\n ],\n \"headcount_growth\": {},\n \"department_headcount\": {},\n \"department_headcount_growth\": {},\n \"annual_revenue\": {},\n \"fortune\": [\n \"<string>\"\n ],\n \"followers\": [\n \"<string>\"\n ],\n \"hiring_on_linkedin\": true,\n \"recent_funding\": true,\n \"leadership_changes\": true,\n \"first_degree_connections\": true,\n \"postal_code\": [\n \"<string>\"\n ],\n \"account_list\": [\n \"<string>\"\n ],\n \"exclude\": {},\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 \"sales_nav_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"industry\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"company_headcount\": [\n \"<string>\"\n ],\n \"headcount_growth\": {},\n \"department_headcount\": {},\n \"department_headcount_growth\": {},\n \"annual_revenue\": {},\n \"fortune\": [\n \"<string>\"\n ],\n \"followers\": [\n \"<string>\"\n ],\n \"hiring_on_linkedin\": true,\n \"recent_funding\": true,\n \"leadership_changes\": true,\n \"first_degree_connections\": true,\n \"postal_code\": [\n \"<string>\"\n ],\n \"account_list\": [\n \"<string>\"\n ],\n \"exclude\": {},\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 \"sales_nav_url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"industry\": [\n \"<string>\"\n ],\n \"location\": [\n \"<string>\"\n ],\n \"company_headcount\": [\n \"<string>\"\n ],\n \"headcount_growth\": {},\n \"department_headcount\": {},\n \"department_headcount_growth\": {},\n \"annual_revenue\": {},\n \"fortune\": [\n \"<string>\"\n ],\n \"followers\": [\n \"<string>\"\n ],\n \"hiring_on_linkedin\": true,\n \"recent_funding\": true,\n \"leadership_changes\": true,\n \"first_degree_connections\": true,\n \"postal_code\": [\n \"<string>\"\n ],\n \"account_list\": [\n \"<string>\"\n ],\n \"exclude\": {},\n \"offset\": 123,\n \"count\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"total_results": 1,
"offset": 0,
"total_available_results": 73,
"companies": [
{
"company_name": "Certi-Trust",
"company_id": "7796325",
"company_url": "https://www.linkedin.com/company/7796325",
"sales_nav_url": "https://www.linkedin.com/sales/company/7796325",
"entity_urn": "urn:li:fs_salesCompany:7796325",
"industry": "IT System Testing and Evaluation",
"employee_count_range": "51-200 employees",
"employee_display_count": "120",
"description": "Cybersecurity audit and certification.",
"logo_url": "https://media.licdn.com/dms/image/...",
"saved": false,
"list_count": 0,
"spotlights": [
{ "type": "HIRING_ON_LINKEDIN", "text": "Hiring on Linkedin" }
]
}
]
},
"metadata": {
"action": "search_companies_nav",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-10-26T12:00:00Z"
}
}
Overview
Run a Sales Nav account search. It uses the account’s Sales Nav seat, which is activated automatically on first use. You can define the search with the filters below, or copy a Sales Nav company search URL (or an account list URL) and pass it assales_nav_url.
This endpoint consumes 1 credit per 10 results returned. Requires a Sales Nav seat on the account. Ignore this if you’re on per-seat pricing: usage is unlimited.
Within a filter, values are combined with OR. Different filters are combined with AND. An invalid value, or a name Sales Nav doesn’t know, returns
INVALID_PARAMS (0 credits) instead of being ignored.Request
string
required
Your API key for authentication.
string
required
The unique identifier of the account to use. Must have a Sales Nav seat.
string
required
Must be
"search_companies_nav".object
Show params properties
Show params properties
string
A copied Sales Nav URL: a company search (
.../sales/search/company?query=... or #query=...) or an account list (.../sales/lists/company/<id>). Every filter is replicated verbatim. Takes precedence over the filters below.string
Free-text keyword.
string[]
Industry names (e.g.
["Software Development"]) or ids from Typeahead (category: sales_nav, type: industry). Sub-industries are included (e.g. Software Development also returns Computer Games).string[]
Headquarters location. Place names, super-regions (
EMEA, APAC, DACH, Benelux, Oceania, North America) or ids from Typeahead (type: location).string[]
Accepted:
1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+. Matched on the number of LinkedIn members (employee_display_count), not on the size the company declares (employee_count_range).object
Company headcount growth in %, as
{ "min": 10, "max": 50 }. Either bound can be omitted.object
Headcount of one department, as
{ "department": "Sales", "min": 5, "max": 50 }. department takes the same names as function in Search People Nav.object
Headcount growth of one department in %, same shape as
department_headcount.object
Annual revenue in millions, as
{ "min": 1, "max": 100, "currency": "EUR" }. Bounds must be one of 0, 0.5, 1, 2.5, 5, 10, 20, 50, 100, 500, 1000, 1001 (= more than 1000). currency defaults to USD.string[]
Accepted:
50, 51-100, 101-250, 251-500.string[]
Number of followers. Accepted:
1-50, 51-100, 101-1000, 1001-5000, 5000+.boolean
Only companies with open jobs on LinkedIn.
boolean
Only companies with a funding event in the last 12 months.
boolean
Only companies with senior leadership changes in the last 3 months.
boolean
Only companies where the seat has 1st-degree connections.
saved_accounts: true: only the accounts the seat saved.string[]
Headquarters postal codes, or ids from Typeahead (
type: postal_code).string[]
Your saved account lists, by name or id from Typeahead (
type: account_list).object
Companies to exclude, as
{ "industry": [...], "location": [...] }. Sales Nav only supports exclusion on these two filters.integer
default:0
Index of the first company to return (0-based).
integer
default:10
Number of companies to return, starting at
offset.Sales Nav only lets a single search be browsed up to 2500 results. An
offset of 2500 or more returns INVALID_PARAMS (0 credits).Response
boolean
Indicates whether the request was successful.
object
Show data properties
Show data properties
array
List of matching companies.
Show company properties
Show company properties
string
Company name.
string
LinkedIn company id.
string
Company page URL.
string
Sales Nav account URL.
string
urn:li:fs_salesCompany:<id>.string
Industry.
string
Headcount bracket, e.g.
"51-200 employees".string
Headcount as shown by Sales Nav, e.g.
"120" or "12K+".string
Company description.
string
Logo URL (largest size).
boolean
Whether the seat saved this account.
integer
Number of your account lists it belongs to.
array
Sales Nav spotlights, each
{ "type", "text" }, e.g. HIRING_ON_LINKEDIN, RECENT_FUNDING_EVENT, SENIOR_LEADERSHIP_CHANGE.integer
Number of companies returned.
integer
Echoes the requested
offset. Add total_results to it for the next page.integer
Total number of matching companies.
{
"success": true,
"data": {
"total_results": 1,
"offset": 0,
"total_available_results": 73,
"companies": [
{
"company_name": "Certi-Trust",
"company_id": "7796325",
"company_url": "https://www.linkedin.com/company/7796325",
"sales_nav_url": "https://www.linkedin.com/sales/company/7796325",
"entity_urn": "urn:li:fs_salesCompany:7796325",
"industry": "IT System Testing and Evaluation",
"employee_count_range": "51-200 employees",
"employee_display_count": "120",
"description": "Cybersecurity audit and certification.",
"logo_url": "https://media.licdn.com/dms/image/...",
"saved": false,
"list_count": 0,
"spotlights": [
{ "type": "HIRING_ON_LINKEDIN", "text": "Hiring on Linkedin" }
]
}
]
},
"metadata": {
"action": "search_companies_nav",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-10-26T12:00:00Z"
}
}
Example
{
"account_id": "your-account-id",
"action": "search_companies_nav",
"params": {
"keyword": "cyber",
"location": ["France"],
"company_headcount": ["51-200", "201-500"],
"annual_revenue": { "min": 1, "max": 100, "currency": "EUR" },
"hiring_on_linkedin": true,
"exclude": { "industry": ["Staffing and Recruiting"] },
"count": 25
}
}
Company page
get_company_nav { company, include?, headcount_timespan? } returns a company as Sales Nav shows it: revenue_range, headquarters, website, year_founded, employee_count and employee_growth (%, over 6_months, 1_year, 2_years). company takes an id, a company page URL or a Sales Nav company URL. 1 credit per call.
include adds sections, one LinkedIn request each:
headcount(default): monthly headcount, total and per department, overheadcount_timespan(6_months,1_yeardefault,2_years).decision_makers: the leads Sales Nav recommends at the company, with spotlight counts.warm_paths: your 1st and 2nd-degree connections there, TeamLink and alumni paths.news: the company’s recent posts and articles.
null.Was this page helpful?