Skip to main content
POST
Create Signal

Authorizations

Authorization
string
header
required

Bearer API key issued from Settings → Developers.

Body

application/json

Create Signal payload

signal_type
enum<string>
required

Which preset to build. Read GET /v1/signals/presets first — a preset not listed there cannot be created.

Available options:
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
name
string
required

Name of the signal and of the destination list it creates.

Minimum string length: 1
search_filters
object

Detection filters, keyed by the preset's filter_keys. Its required_filter_keys must all be present.

import_target
enum<string> | null

Leave empty to follow the preset's own scope. A company preset may set PEOPLE to import the people behind its detected companies instead of the companies themselves.

Available options:
PEOPLE,
COMPANIES
event_subject
enum<string> | null

What your own events identify, for a custom-event preset only: PEOPLE for email or LinkedIn subjects, COMPANIES for domains.

Available options:
PEOPLE,
COMPANIES
max_per_run
integer | null

Daily ceiling on imported entries. Cannot be combined with max_companies_per_run.

Required range: x >= 1
max_companies_per_run
integer | null

Daily ceiling on detected companies consumed. Only for a company preset importing people.

Required range: x >= 1
max_contacts_per_company
integer | null

How many people to import per detected company. Requires max_companies_per_run.

Required range: x >= 1
enrich_email
boolean
default:true

Whether imported leads get their email enriched.

enrich_phones
boolean
default:true

Whether imported leads get their phone enriched.

sequence_template_id
string<uuid> | null

Sequence template imported leads are enrolled into. People destinations only.

import_search_filters
object

Filters narrowing who or what gets imported once a fact is detected: personas for a people target, firmographics for a company target.

backfill
SignalBackfillRequest · object | null

One-time import of matches the provider already saw before the signal existed, on top of the daily watch. Only for a preset whose backfill_windows_days is not null. Billed once, at creation.

Response

201 - application/json

Successful Response

id
string<uuid>
required

Unique identifier of the signal.

name
string | null
required

Name of the signal and of its destination list.

signal_type
enum<string>
required

Catalog preset the signal watches.

Available options:
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
status
enum<string>
required

ACTIVE checks daily, PAUSED is held until resumed, ARCHIVED is retired and cannot be resumed.

Available options:
ACTIVE,
PAUSED,
ARCHIVED
cadence
enum<string> | null
required

How often the signal checks its provider.

Available options:
DAILY,
WEEKLY
max_per_run
integer | null
required

Daily ceiling on imported entries, when one was set.

max_companies_per_run
integer | null
required

Daily ceiling on detected companies consumed, when one was set.

max_contacts_per_company
integer | null
required

People imported per detected company, when one was set.

max_per_day
integer
required

Ceiling on the entries the signal imports in one day, resolved from the caps above.

enrich_email
boolean
required

Whether imported leads get their email enriched.

enrich_phones
boolean
required

Whether imported leads get their phone enriched.

imported_count
integer
required

Entries the signal has imported since it was created.

contact_list_id
string<uuid> | null
required

Destination list, when the signal imports people.

account_list_id
string<uuid> | null
required

Destination list, when the signal imports companies.

created_at
string<date-time>
required

When the signal was created.

archived_at
string<date-time> | null
required

When the signal was retired, if it was.

url
string
required

Deep link to the signal in Topo.

list_url
string | null
required

Deep link to the destination list in Topo.