---
title: "List Signal Imports"
method: GET
path: "/v1/signals/imports"
tags: ["signals"]
---

# List Signal Imports

`GET /v1/signals/imports`

## Request

- Base URL: `https://api.topo.io`
- URL: `https://api.topo.io/v1/signals/imports`
- Auth: HTTP bearer

List what the workspace's signals brought in, most recent fact first.

An entry records which signal fired, who or which company it was about,
and whether it was imported, was already in the list, or was filtered out.

Requires the `signals:read` scope on the API key.

## Query parameters

- `page` integer
- `size` integer
- `signal_id` string, uuid, nullable: Return only what this signal brought in.
- `signal_type` 'LINKEDIN_OWN_POST_ENGAGEMENT' | 'LINKEDIN_COMPETITOR_POST_ENGAGEMENT' | 'LINKEDIN_PERSON_POST_ENGAGEMENT' | 'LINKEDIN_KEYWORD_MENTION' | 'LINKEDIN_OWN_COMPANY_FOLLOWERS' | 'LINKEDIN_COMPETITOR_FOLLOWERS' | 'LINKEDIN_COMPANY_PAGE_FOLLOWERS' | 'HIRING_SIGNALS' | 'JOB_DESCRIPTION_KEYWORD' | 'FUNDING_EVENTS' | 'TECH_ADOPTION' | 'NEWS_EVENTS' | 'NEW_JOB' | 'CUSTOM_EVENT' | 'LINKEDIN_PARTNER_FOLLOWERS' | 'LINKEDIN_CUSTOMER_FOLLOWERS' | 'LINKEDIN_PARTNER_POST_ENGAGEMENT' | 'LINKEDIN_CUSTOMER_POST_ENGAGEMENT' | 'LINKEDIN_COMPANY_PAGE_POST_ENGAGEMENT' | 'LINKEDIN_OWN_PROFILE_POST_ENGAGEMENT' | 'LINKEDIN_OWN_EMPLOYEES_POST_ENGAGEMENT' | 'LINKEDIN_COMPETITOR_EMPLOYEES_POST_ENGAGEMENT' | 'LINKEDIN_PARTNER_EMPLOYEES_POST_ENGAGEMENT' | 'LINKEDIN_CUSTOMER_EMPLOYEES_POST_ENGAGEMENT' | 'LINKEDIN_OWN_BRAND_MENTION' | 'LINKEDIN_COMPETITOR_MENTION' | 'LINKEDIN_PARTNER_MENTION' | 'LINKEDIN_CUSTOMER_MENTION' | 'LINKEDIN_EVENT_MENTION' | 'COMPETITOR_TECH_ADOPTION' | 'INTEGRATION_TECH_ADOPTION' | 'LINKEDIN_EVENT_PAGE_FOLLOWERS' | 'CHAMPION_CHANGED_JOB' | 'CRM_LIST_ENTRY'
- `kind` 'CONTACT' | 'ACCOUNT'
- `status` 'FOUND' | 'IMPORTED' | 'ALREADY_IN_LIST' | 'EXPIRED' | 'REJECTED': Display status for a signal occurrence — collapses the DB-level `SignalStatus`/`SignalSkipReason` pair into the states the product surfaces. ALREADY_IN_LIST and EXPIRED are kept out of REJECTED so neither an ordinary duplicate nor a fact that simply aged out reads as a qualification failure.

## Response `200`

Successful Response

- PublicPaginationEnvelopeSignalImportPublicOutput
  - `items` SignalImportPublicOutput[], required: Records on this page.
    - `id` string, uuid, required: Unique identifier of the imported entry.
    - `signal_id` string, uuid, required: Signal that produced the entry.
    - `signal_name` string, nullable, required: Name of the signal that produced the entry.
    - `signal_type` 'LINKEDIN_OWN_POST_ENGAGEMENT' | 'LINKEDIN_COMPETITOR_POST_ENGAGEMENT' | 'LINKEDIN_PERSON_POST_ENGAGEMENT' | 'LINKEDIN_KEYWORD_MENTION' | 'LINKEDIN_OWN_COMPANY_FOLLOWERS' | 'LINKEDIN_COMPETITOR_FOLLOWERS' | 'LINKEDIN_COMPANY_PAGE_FOLLOWERS' | 'HIRING_SIGNALS' | 'JOB_DESCRIPTION_KEYWORD' | 'FUNDING_EVENTS' | 'TECH_ADOPTION' | 'NEWS_EVENTS' | 'NEW_JOB' | 'CUSTOM_EVENT' | 'LINKEDIN_PARTNER_FOLLOWERS' | 'LINKEDIN_CUSTOMER_FOLLOWERS' | 'LINKEDIN_PARTNER_POST_ENGAGEMENT' | 'LINKEDIN_CUSTOMER_POST_ENGAGEMENT' | 'LINKEDIN_COMPANY_PAGE_POST_ENGAGEMENT' | 'LINKEDIN_OWN_PROFILE_POST_ENGAGEMENT' | 'LINKEDIN_OWN_EMPLOYEES_POST_ENGAGEMENT' | 'LINKEDIN_COMPETITOR_EMPLOYEES_POST_ENGAGEMENT' | 'LINKEDIN_PARTNER_EMPLOYEES_POST_ENGAGEMENT' | 'LINKEDIN_CUSTOMER_EMPLOYEES_POST_ENGAGEMENT' | 'LINKEDIN_OWN_BRAND_MENTION' | 'LINKEDIN_COMPETITOR_MENTION' | 'LINKEDIN_PARTNER_MENTION' | 'LINKEDIN_CUSTOMER_MENTION' | 'LINKEDIN_EVENT_MENTION' | 'COMPETITOR_TECH_ADOPTION' | 'INTEGRATION_TECH_ADOPTION' | 'LINKEDIN_EVENT_PAGE_FOLLOWERS' | 'CHAMPION_CHANGED_JOB' | 'CRM_LIST_ENTRY', required
    - `kind` 'CONTACT' | 'ACCOUNT', required
    - `status` 'FOUND' | 'IMPORTED' | 'ALREADY_IN_LIST' | 'EXPIRED' | 'REJECTED', required: Display status for a signal occurrence — collapses the DB-level `SignalStatus`/`SignalSkipReason` pair into the states the product surfaces. ALREADY_IN_LIST and EXPIRED are kept out of REJECTED so neither an ordinary duplicate nor a fact that simply aged out reads as a qualification failure.
    - `skip_detail` string, nullable, required: Why the entry was rejected, when it was.
    - `failed_filters` string[], nullable, required: Filter field names that rejected the entry, when skip_detail is FILTERS_NOT_MATCHED.
    - `occurred_at` string, date-time, required: When the underlying fact happened at the source.
    - `processed_at` string, date-time, nullable, required: When the signal decided what to do with the entry.
    - `contact_id` string, uuid, nullable, required: The imported lead, once it exists in the workspace.
    - `account_id` string, uuid, nullable, required: The imported account, once it exists in the workspace.
    - `first_name` string, nullable, required: First name of the person.
    - `last_name` string, nullable, required: Last name of the person.
    - `job_title` string, nullable, required: Job title of the person.
    - `email` string, nullable, required: Email of the person.
    - `linkedin_url` string, nullable, required: LinkedIn profile of the person.
    - `company_name` string, nullable, required: Company the person works at.
    - `company_domain` string, nullable, required: Domain of the company the person works at.
    - `account_name` string, nullable, required: Name of the detected company.
    - `account_domain` string, nullable, required: Domain of the detected company.
  - `total_count` integer, required: Total number of records matching the query.
  - `total_pages` integer, required: Total number of pages.
  - `has_more` boolean, required: Whether more pages remain after the current one.

## Changes

- **2026-09-22** `c0539b7603a6`: 1 info
  - added the required property `items/items/failed_filters` to the response with the `200` status
- **2026-09-08** `818aee27676c`: 20 warning, 20 info
  - added the new `CHAMPION_CHANGED_JOB` enum value to the `items/items/signal_type` response property for the response status `200`
  - added the new `COMPETITOR_TECH_ADOPTION` enum value to the `items/items/signal_type` response property for the response status `200`
  - added the new `CRM_LIST_ENTRY` enum value to the `items/items/signal_type` response property for the response status `200`
  - added the new `INTEGRATION_TECH_ADOPTION` enum value to the `items/items/signal_type` response property for the response status `200`
  - …36 more
- **2026-09-07** `7b18eaec3769`: 1 warning, 1 info
  - added the new `NEW_JOB` enum value to the `items/items/signal_type` response property for the response status `200`
  - added the enum value `NEW_JOB` to the property `anyOf[subschema #1: SignalType]/` of the `query` request parameter `signal_type`
- **2026-09-01** `0646a72cff02`: 1 warning, 1 info
  - added the new `LINKEDIN_PERSON_POST_ENGAGEMENT` enum value to the `items/items/signal_type` response property for the response status `200`
  - added the enum value `LINKEDIN_PERSON_POST_ENGAGEMENT` to the property `anyOf[subschema #1: SignalType]/` of the `query` request parameter `signal_type`
- …earlier changes not shown

[Operation history](https://skmtc.dev/topo/apis/topo-public-api/changes/v1/signals/imports/get.md)

---

[API](https://skmtc.dev/topo/apis/topo-public-api.md) · [All operations](https://skmtc.dev/topo/apis/topo-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/topo/apis/topo-public-api/revisions/62914910b2a8?raw)
