---
title: "Search Company Signals"
method: POST
path: "/v1/companies/signals"
tags: ["Companies", "v1"]
---

# Search Company Signals

`POST /v1/companies/signals`

Retrieve signals for a specified set of company IDs. The response returns the signals linked to the provided companies.
Credit Node: You are charged 1 credit per company if the company has signals and there was no active deep data access within the last 12 months. The number of signals returned does not affect credit usage — no additional credits are charged per signal.

:::info
Requires the `companies:read` OAuth2 scope.
:::

## Query parameters

- `account_id` string, required
- `page[cursor]` string
- `page[size]` integer

## Request body

- object
  - `categories` string[] — Filter to search for signals in specific categories
  - `company_ids` string[], required — Array of company IDs to filter signals for (mandatory)
  - `publication_date` object — Filter signals by publication date (YYYY-MM-DD). If both `from` and `to` are provided, `from` must be earlier than or equal to `to`.
    - `from` string, date — Start date for the publication date filter (inclusive)
    - `to` string, date — End date for the publication date filter (inclusive)
  - `event_date` object — Filter signals by event date (YYYY-MM-DD). If both `from` and `to` are provided, `from` must be earlier than or equal to `to`.
    - `from` string, date — Start date for the event date filter (inclusive)
    - `to` string, date — End date for the event date filter (inclusive)

## Response `200`

Success

- object
  - `data` SignalV1[], required
    - `type` 'signal', required — The type of the object
    - `id` string, required
    - `attributes` object, required
      - `category` 'business_expansion' | 'competitive_landscape' | 'event_participation' | 'industry_recognition' | 'leadership_changes' | 'mergers_and_acquisitions' | 'customer_acquisition' | 'investment_activity' | 'product_and_service_development' | 'partnerships_collaborations' | 'job_ads' | 'regulatory_and_compliance_updates', required — Categories to group similar signals together
      - `signal_type` string, required — Specific type of the signal
      - `title` string, required — Title of the signal
      - `content` string, required — Extended text content of the signal
      - `event_date` string, date-time, required — Date and time when the event occurred
      - `publication_date` string, date-time, required — Date and time when the signal was published
      - `source_url` string, uri — URL of the source where the signal was found
      - `language_code` string — Language code of the signal content
    - `relationships` object, required
      - `company` object, required
        - `id` string, required — The Leadfeeder company ID.
        - `type` 'company', required
  - `meta` object, required
    - `credits` object, required
      - `charged` number, required — How many credits were consumed for this request.
    - `pagination` object, required
      - `next_cursor` string, nullable
      - `total_count` integer, required
    - `request_id` string, required — A unique identifier assigned to each API request for end-to-end traceability.

## Other responses

- `400` — Invalid mandatory fields
- `401` — Unauthorized. The request was rejected because the credentials are missing, invalid, expired, or have been revoked. The client must re-authenticate before retrying. Clients can differentiate via the `code` value of the first item in `errors`.
- `403` — Forbidden. The credentials are valid but the caller is not authorized to perform the request — typically because the user lacks the required permission, the OAuth scope is insufficient, the subscription plan does not include the required entitlement, the `account_id` does not belong to the authenticated user, or the target list is read-only and its members cannot be modified. Clients can differentiate via the `code` value of the first item in `errors`.
- `429` — Too many requests. Either the per-second rate limit or the monthly quota configured for the API key / OAuth application has been exceeded. Clients can differentiate via the `code` value of the first item in `errors`.
- `500` — Internal server error
- `504` — Server timeout

---

[API](https://skmtc.net/leadfeeder/apis/leadfeeder-public-api.md) · [All operations](https://skmtc.net/leadfeeder/apis/leadfeeder-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/leadfeeder/leadfeeder-public-api/versions/e494ac05e206/schema)
