---
title: "Company Signals"
method: POST
path: "/v3/companies/signals"
tags: ["Signals"]
---

# Company Signals

`POST /v3/companies/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 `showSignalsCompany` action.

> **Persisting to a table:** Pass `tableId` to also add these companies to an existing table and populate the Signals column. See [Companies Tables](#tag/Companies-Tables).

## Request body

- V3CompanySignalsRequest
  - `ids` string[], required
  - `signalTypes` string[], required
  - `startDate` string, date — For linkedinActivityIntent, results are limited to a trailing 90-day window regardless of the value passed (legal requirement). Other signal types are unaffected.
  - `maxResultsPerSignal` integer — 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).
  - `tableId` string — 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.
  - `filters` object
    - `include` object
      - `intentCategories` string[] — Refines linkedinActivityIntent results by Bombora intent category. Only applies when linkedinActivityIntent is requested (via signalTypes or allSignals). See GET /v3/companies/signals/filters/intentCategories for valid values.

## Response `200`

Successful response

- V3CompanySignalsResponse
  - `results` object[]
    - `id` string
    - `companyName` string
    - `domain` string
    - `linkedinActivityIntent` LinkedinActivityIntentItem[]
      - `companyId` number — Lusha company ID this activity belongs to.
      - `activityPublicationDate` string, date — Date the post was published.
      - `signalCategory` string — Post classification.
      - `intentTopics` LinkedinActivityIntentTopic[] — Detected Bombora topics and their category.
        - `topic` string
        - `category` string
      - `author` LinkedinActivityIntentPerson — A person referenced in a LinkedIn activity intent post (author or mention).
        - `id` string, nullable — Lusha contact ID, or null if the person couldn't be resolved to a Lusha record.
        - `fullName` string
        - `linkedinUrl` string
      - `contactsMentioned` LinkedinActivityIntentPerson[]
        - `id` string, nullable — Lusha contact ID, or null if the person couldn't be resolved to a Lusha record.
        - `fullName` string
        - `linkedinUrl` string
      - `companiesMentioned` LinkedinActivityIntentCompanyMention[]
        - `id` string, nullable — Lusha company ID, or null if the company couldn't be resolved to a Lusha record.
        - `name` string
        - `linkedinUrl` string
      - `activityUrl` string — URL of the source post.
      - `activitySummary` string, nullable — AI-generated summary. Never contains the raw post text.
      - `activityLikes` integer
      - `activityComments` integer
      - `activityShares` integer
      - `activityType` string
  - `startDate` string
  - `endDate` string
  - `tableWrite` TableWrite — 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.
    - `tableId` string
    - `added` integer — Number of new entities added to the table by this call.
    - `alreadyPresent` integer — Number of entities from this call that were already in the table.
    - `columnsCreated` integer — Number of columns auto-created by this call (e.g. a Signals column created on first use).
    - `rowsProcessed` integer — Number of rows the column-run touched as part of this call.
    - `rowsCharged` integer — Number of those rows that incurred a credit charge.
    - `rowsAlreadyPaidInTable` integer — Number of those rows that were already paid for in this table and were not re-charged.
    - `creditsCharged` integer — Credits charged specifically for this table write.
  - `billing` V3Billing — Credit usage summary for a V3 API request
    - `creditsCharged` integer — Total credits charged for this request
    - `resultsReturned` integer — Number of successful results returned

## Other responses

- `400` — Bad request - invalid input data
- `401` — Unauthorized - invalid or missing API key
- `402` — Payment required - insufficient credits
- `403` — Forbidden - account inactive, V3 access not enabled, or plan does not include this feature
- `429` — Too many requests - rate limit exceeded

---

[API](https://skmtc.net/lusha/apis/lusha-api-documentation.md) · [All operations](https://skmtc.net/lusha/apis/lusha-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lusha/lusha-api-documentation/revisions/d37bb08edd61/schema)
