Docs / Search
search_companies
Find companies in Sales Navigator through a shared seat, by industry, place, size and recent signals.
This action only reads. It changes nothing, so it is safe to try. It is part of the Agent plan.
What you give it
| Input | What it is | Where to get it |
|---|---|---|
industriesoptional | A list (text). Company industries, e.g. ["Software","Financial Services"]. | You write it. |
locationsoptional | A list (text). Company HQ locations, e.g. ["United States"]. | You write it. |
headcountsoptional | A list (text). Company size bands. Valid: self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+. | You write it. |
hiringoptional | True or false. Only companies with open job posts right now (hiring signal). | You write it. |
growingTeamMinPctoptional | A number. Minimum headcount-growth percent, e.g. 20 = teams that grew ≥20%. | You write it. |
minRevenueMillionsoptional | A number. Minimum annual revenue in millions (e.g. 10 = $10M+). LinkedIn uses fixed brackets (0, 0.2, 1, 2.5, 5, 10, 20, 50, 100, 500, 1000); other values widen to the nearest one. Revenue is LinkedIn's estimate — companies without one are left out. | You write it. |
maxRevenueMillionsoptional | A number. Maximum annual revenue in millions (same brackets). | You write it. |
revenueCurrencyoptional | Text. Currency for the revenue band (default USD). | You write it. |
recentLeadershipChangeoptional | True or false. Only companies with a recent senior-leadership change (new-boss signal). | You write it. |
recentFundingoptional | True or false. Only companies with a recent funding event (same as list_funding_signals). | You write it. |
limitoptional | A number, 1 to 100. Max companies to return (1–100, default 20). Use 100 to feed the most companies to search_people_sales_navigator via companyIds. | You write it. |
Call it
curl -X POST https://api.heyreagent.com/v1/actions/search_companies \
-H "Authorization: Bearer YOUR_KEY" \
-H "content-type: application/json" \
-d '{"industries":["Software Development"]}'The same call in JavaScript
const response = await fetch("https://api.heyreagent.com/v1/actions/search_companies", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_KEY",
"content-type": "application/json",
},
body: JSON.stringify({
"industries": [
"Software Development"
]
}),
});
const answer = await response.json();
console.log(answer);The same call in Python
import requests
response = requests.post(
"https://api.heyreagent.com/v1/actions/search_companies",
headers={"Authorization": "Bearer YOUR_KEY"},
json={
"industries": ["Software Development"],
},
)
print(response.json())The same call in n8n
Add an HTTP Request node and fill it in like this:
| Method | POST |
| URL | https://api.heyreagent.com/v1/actions/search_companies |
| Send Headers | On. Name Authorization, Value Bearer YOUR_KEY |
| Send Body | On. Body Content Type JSON, Specify Body Using JSON, then paste the body below |
{
"industries": [
"Software Development"
]
}Put your own key where it says YOUR_KEY. New here? Start with your first call.
What you get back
When it worked, the answer is { "ok": true, "result": { … } }. Inside result:
returned | |
source | |
filtersApplied | |
warnings | |
companies | |
note |
A field that does not apply to an answer is left out, or is null.
When it did not work, the answer is { "ok": false, "error": "…", "message": "…" }. What each error means.
Good to know
- The total is totalCompanies; with recentFunding and recentLeadershipChange both true it is totalBySignal and withBothSignals instead.
- There is no next page: narrow the filters.
In Claude or ChatGPT
Once connected, ask in your own words. The assistant sees this action as a tool with the same name, search_companies, and the same inputs.