Company Signals
Retrieve signal events for a list of companies - hiring activity, headcount changes, web traffic, IT spend, and news.
Pass up to 100 company ids. Use signalTypes to specify which signals to return (or use allSignals). Optionally set a startDate to limit results to recent activity.
Billing: Charged per matched signal per result via the
showSignalsCompanyaction.
Persisting to a table: Pass
tableIdto also add these companies to an existing table and populate the Signals column. See Companies Tables.
curl --request POST \
--url https://api.lusha.com/v3/companies/signals \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"ids": [
"16303253"
],
"signalTypes": [
"allSignals"
],
"startDate": "2025-01-01",
"maxResultsPerSignal": 10
}
'import requests
url = "https://api.lusha.com/v3/companies/signals"
payload = {
"ids": ["16303253"],
"signalTypes": ["allSignals"],
"startDate": "2025-01-01",
"maxResultsPerSignal": 10
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ids: ['16303253'],
signalTypes: ['allSignals'],
startDate: '2025-01-01',
maxResultsPerSignal: 10
})
};
fetch('https://api.lusha.com/v3/companies/signals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.lusha.com/v3/companies/signals")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n \"16303253\"\n ],\n \"signalTypes\": [\n \"allSignals\"\n ],\n \"startDate\": \"2025-01-01\",\n \"maxResultsPerSignal\": 10\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lusha.com/v3/companies/signals"
payload := strings.NewReader("{\n \"ids\": [\n \"16303253\"\n ],\n \"signalTypes\": [\n \"allSignals\"\n ],\n \"startDate\": \"2025-01-01\",\n \"maxResultsPerSignal\": 10\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api_key", "<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))
}{
"results": [
{
"id": "16303253",
"companyName": "Lusha",
"domain": "lusha.com",
"linkedinActivityIntent": [
{
"companyId": 16303253,
"activityPublicationDate": "2026-05-12",
"signalCategory": "Technology or Stack Discussion",
"intentTopics": [
{
"topic": "Cloud Security",
"category": "Technology"
}
],
"author": {
"id": "4389064624",
"fullName": "Daniel Turgeman",
"linkedinUrl": "https://www.linkedin.com/in/daniel-turgeman-49676b161"
},
"contactsMentioned": [
{
"id": "4389064624",
"fullName": "Daniel Turgeman",
"linkedinUrl": "https://www.linkedin.com/in/daniel-turgeman-49676b161"
}
],
"companiesMentioned": [
{
"id": "16303253",
"name": "Lusha",
"linkedinUrl": "https://www.linkedin.com/company/lushadata"
}
],
"activityUrl": "https://www.linkedin.com/feed/update/urn:li:activity:1234567890",
"activitySummary": "Discusses adopting a new cloud security stack ahead of Q3 rollout.",
"activityLikes": 42,
"activityComments": 5,
"activityShares": 3,
"activityType": "post"
}
]
}
],
"startDate": "<string>",
"endDate": "<string>",
"tableWrite": {
"tableId": "482910",
"added": 3,
"alreadyPresent": 2,
"columnsCreated": 0,
"rowsProcessed": 5,
"rowsCharged": 5,
"rowsAlreadyPaidInTable": 0,
"creditsCharged": 0
},
"billing": {
"creditsCharged": 3,
"resultsReturned": 1
}
}Authorizations
Your Lusha API key. You can find this in your Lusha dashboard under API settings.
Include this key in the api_key header for all requests.
Body
1 - 100 elements["16303253"]
allSignals, linkedinActivityIntent, websiteTrafficDecrease, websiteTrafficIncrease, itSpendIncrease, itSpendDecrease, surgeInHiring, headcountIncrease1m, headcountIncrease3m, headcountIncrease6m, headcountIncrease12m, headcountDecrease1m, headcountDecrease3m, headcountDecrease6m, headcountDecrease12m, surgeInHiringByDepartment, surgeInHiringByLocation, riskNews, commercialActivityNews, corporateStrategyNews, financialEventsNews, peopleNews, marketIntelligenceNews, productActivityNews ["allSignals"]
For linkedinActivityIntent, results are limited to a trailing 90-day window regardless of the value passed (legal requirement). Other signal types are unaffected.
"2025-01-01"
For linkedinActivityIntent, results are capped at 50 per company regardless of the value passed. Other signal types use the requested value as-is (1-100).
1 <= x <= 10010
Optional. If provided, these companies are also added to this table (if not already present) and the Signals column is populated. See the Tables API.
"583021"
Show child attributes
Show child attributes
Response
Successful response
Show child attributes
Show child attributes
Added to a Prospecting, Enrich, Signals, or Lookalike response when tableId is passed on the request. The primary response is unaffected even if the table write fails.
Show child attributes
Show child attributes
Credit usage summary for a V3 API request
Show child attributes
Show child attributes
Was this page helpful?
curl --request POST \
--url https://api.lusha.com/v3/companies/signals \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"ids": [
"16303253"
],
"signalTypes": [
"allSignals"
],
"startDate": "2025-01-01",
"maxResultsPerSignal": 10
}
'import requests
url = "https://api.lusha.com/v3/companies/signals"
payload = {
"ids": ["16303253"],
"signalTypes": ["allSignals"],
"startDate": "2025-01-01",
"maxResultsPerSignal": 10
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ids: ['16303253'],
signalTypes: ['allSignals'],
startDate: '2025-01-01',
maxResultsPerSignal: 10
})
};
fetch('https://api.lusha.com/v3/companies/signals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.lusha.com/v3/companies/signals")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n \"16303253\"\n ],\n \"signalTypes\": [\n \"allSignals\"\n ],\n \"startDate\": \"2025-01-01\",\n \"maxResultsPerSignal\": 10\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.lusha.com/v3/companies/signals"
payload := strings.NewReader("{\n \"ids\": [\n \"16303253\"\n ],\n \"signalTypes\": [\n \"allSignals\"\n ],\n \"startDate\": \"2025-01-01\",\n \"maxResultsPerSignal\": 10\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api_key", "<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))
}{
"results": [
{
"id": "16303253",
"companyName": "Lusha",
"domain": "lusha.com",
"linkedinActivityIntent": [
{
"companyId": 16303253,
"activityPublicationDate": "2026-05-12",
"signalCategory": "Technology or Stack Discussion",
"intentTopics": [
{
"topic": "Cloud Security",
"category": "Technology"
}
],
"author": {
"id": "4389064624",
"fullName": "Daniel Turgeman",
"linkedinUrl": "https://www.linkedin.com/in/daniel-turgeman-49676b161"
},
"contactsMentioned": [
{
"id": "4389064624",
"fullName": "Daniel Turgeman",
"linkedinUrl": "https://www.linkedin.com/in/daniel-turgeman-49676b161"
}
],
"companiesMentioned": [
{
"id": "16303253",
"name": "Lusha",
"linkedinUrl": "https://www.linkedin.com/company/lushadata"
}
],
"activityUrl": "https://www.linkedin.com/feed/update/urn:li:activity:1234567890",
"activitySummary": "Discusses adopting a new cloud security stack ahead of Q3 rollout.",
"activityLikes": 42,
"activityComments": 5,
"activityShares": 3,
"activityType": "post"
}
]
}
],
"startDate": "<string>",
"endDate": "<string>",
"tableWrite": {
"tableId": "482910",
"added": 3,
"alreadyPresent": 2,
"columnsCreated": 0,
"rowsProcessed": 5,
"rowsCharged": 5,
"rowsAlreadyPaidInTable": 0,
"creditsCharged": 0
},
"billing": {
"creditsCharged": 3,
"resultsReturned": 1
}
}