Signal Subscriptions

Signal Subscriptions

Subscriptions schedule recurring signal executions against a signal template. Each subscription ties a template to a frequency, timezone, and optional targeting (list or domain).

Lifecycle:

  1. Create a subscription via POST /v1/companies/signals/subscriptions (references an existing template or creates one inline)

  2. Activate it with POST /v1/companies/signals/{signalId}/start

  3. Optionally update schedule parameters via PUT .../subscriptions/{id}

  4. Pause with POST /v1/companies/signals/{signalId}/stop

The response merges the template definition with the schedule configuration so you get the full picture in a single object.

List all signal subscriptions for your organization

get

Retrieve a paginated list of signal subscriptions. Each subscription is merged with its signal template data so the response includes the full template definition alongside the schedule configuration.

Authorizations
AuthorizationstringRequired

API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.

Query parameters
limitinteger · min: 1 · max: 100Optional

Maximum number of subscriptions to return

Default: 20
offsetintegerOptional

Number of subscriptions to skip for pagination

Default: 0
Responses
chevron-right
200

Subscriptions retrieved successfully

application/json
totalintegerRequired

Total number of subscriptions matching the query

Example: 42
limitintegerRequired

Maximum number of subscriptions returned

Example: 20
offsetintegerRequired

Number of subscriptions skipped

Example: 0
hasMorebooleanRequired

Whether there are more subscriptions available

Example: false
get
/v1/companies/signals/subscriptions

Create a signal subscription — schedules recurring signal execution for a template

post

Create a subscription that schedules recurring signal executions.

You can either reference an existing template via signalTemplateId, or create a template inline by providing name and question (plus optional fields like answerType, description, weight, qualificationCriteria, outputSchema).

The subscription is created in a stopped state. Use the schedule lifecycle endpoints (POST .../start) to activate it.

Authorizations
AuthorizationstringRequired

API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.

Body

Exactly one of frequency or cronExpression must be provided. Use frequency for preset schedules (daily/weekly/monthly) or cronExpression for custom cron-based schedules.

signalTemplateIdstring · uuidOptional

ID of an existing signal template. If omitted, name and question are required to create a template inline.

Example: e45c1dc4-d422-4b51-956b-cb6d3ddaf250
namestring · min: 1 · max: 200Optional

Template name (required when creating inline, ignored when signalTemplateId is provided)

Example: CRM Detection
descriptionstring · max: 1000Optional

Template description (optional, for inline creation)

questionstring · min: 1 · max: 500Optional

Research question (required when creating inline)

Example: Which CRM are they using?
answerTypestring · enumOptional

Expected answer format (for inline creation, defaults to open_text)

Default: open_textPossible values:
weightstring · enumOptional

Importance of the signal (for inline creation)

Possible values:
frequencystring · enumOptional

Preset schedule frequency. Mutually exclusive with cronExpression — exactly one must be provided.

Example: weeklyPossible values:
cronExpressionstringOptional

Custom cron expression (5-field). Mutually exclusive with frequency — exactly one must be provided.

Example: 0 9 * * 1,3,5
timezonestringOptional

IANA timezone for scheduling (defaults to UTC)

Example: America/New_York
listIdstring · uuidRequired

Contact list ID to scope signal execution

Responses
post
/v1/companies/signals/subscriptions

Get a signal subscription by ID

get

Retrieve a single subscription merged with its signal template data.

Authorizations
AuthorizationstringRequired

API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.

Path parameters
subscriptionIdstring · uuidRequired

The unique identifier of the subscription

Responses
chevron-right
200

Subscription retrieved successfully

application/json

A signal subscription merged with its template definition.

idstring · uuidRequired

The subscription ID (unique per subscription).

signalTemplateIdstring · uuidRequired

The signal template ID this subscription is based on. Use this to correlate subscriptions that share the same template.

versionintegerRequired

Template version number

namestringRequired

Subscription name if set, otherwise the template name

descriptionstringOptional
questionstringRequired

The research question

answerTypestring · enumRequiredPossible values:
weightstring · enumOptionalPossible values:
frequencystring · enumOptional

Preset frequency if set

Possible values:
cronExpressionstringRequired

The resolved cron expression

timezonestringRequired

IANA timezone for scheduling

statusstring · enumRequiredPossible values:
listIdstring · uuidRequired

Contact list ID

lastRunAtstring · date-time · nullableOptional
nextRunAtstring · date-time · nullableOptional
sourcestringRequired
createdAtstring · date-timeRequired
get
/v1/companies/signals/subscriptions/{subscriptionId}

Update a signal subscription

put

Update a subscription's schedule configuration and/or its underlying template fields. When schedule fields are provided, the active Temporal workflow is updated. When template fields are provided, the underlying signal template is updated inline.

Authorizations
AuthorizationstringRequired

API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.

Path parameters
subscriptionIdstring · uuidRequired

The unique identifier of the subscription to update

Body

Replace a subscription's full configuration. Exactly one of frequency or cronExpression must be provided.

frequencystring · enumOptional

Preset schedule frequency. Mutually exclusive with cronExpression.

Example: weeklyPossible values:
cronExpressionstringOptional

Custom cron expression (5-field). Mutually exclusive with frequency.

Example: 0 9 * * 1,3,5
timezonestringRequired

IANA timezone for scheduling

Example: America/New_York
namestring · min: 1 · max: 200Required

The subscription display name

questionstring · min: 1 · max: 500Required

The research question

answerTypestring · enumRequired

Expected answer format

Possible values:
descriptionstring · max: 1000Optional

Signal description

weightstring · enumOptional

Signal importance weight

Possible values:
Responses
chevron-right
200

Subscription updated successfully

application/json

A signal subscription merged with its template definition.

idstring · uuidRequired

The subscription ID (unique per subscription).

signalTemplateIdstring · uuidRequired

The signal template ID this subscription is based on. Use this to correlate subscriptions that share the same template.

versionintegerRequired

Template version number

namestringRequired

Subscription name if set, otherwise the template name

descriptionstringOptional
questionstringRequired

The research question

answerTypestring · enumRequiredPossible values:
weightstring · enumOptionalPossible values:
frequencystring · enumOptional

Preset frequency if set

Possible values:
cronExpressionstringRequired

The resolved cron expression

timezonestringRequired

IANA timezone for scheduling

statusstring · enumRequiredPossible values:
listIdstring · uuidRequired

Contact list ID

lastRunAtstring · date-time · nullableOptional
nextRunAtstring · date-time · nullableOptional
sourcestringRequired
createdAtstring · date-timeRequired
put
/v1/companies/signals/subscriptions/{subscriptionId}

Start a signal subscription

post

Activate a stopped subscription. Creates the Temporal schedule and begins recurring signal execution according to the subscription's cron expression.

Authorizations
AuthorizationstringRequired

API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.

Path parameters
subscriptionIdstring · uuidRequired

The unique identifier of the subscription to start

Responses
chevron-right
200

Subscription started successfully

application/json

A signal subscription merged with its template definition.

idstring · uuidRequired

The subscription ID (unique per subscription).

signalTemplateIdstring · uuidRequired

The signal template ID this subscription is based on. Use this to correlate subscriptions that share the same template.

versionintegerRequired

Template version number

namestringRequired

Subscription name if set, otherwise the template name

descriptionstringOptional
questionstringRequired

The research question

answerTypestring · enumRequiredPossible values:
weightstring · enumOptionalPossible values:
frequencystring · enumOptional

Preset frequency if set

Possible values:
cronExpressionstringRequired

The resolved cron expression

timezonestringRequired

IANA timezone for scheduling

statusstring · enumRequiredPossible values:
listIdstring · uuidRequired

Contact list ID

lastRunAtstring · date-time · nullableOptional
nextRunAtstring · date-time · nullableOptional
sourcestringRequired
createdAtstring · date-timeRequired
post
/v1/companies/signals/subscriptions/{subscriptionId}/start

Stop a signal subscription

post

Pause an active subscription. Removes the Temporal schedule so no further recurring executions occur. The subscription can be restarted later.

Authorizations
AuthorizationstringRequired

API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.

Path parameters
subscriptionIdstring · uuidRequired

The unique identifier of the subscription to stop

Responses
chevron-right
200

Subscription stopped successfully

application/json

A signal subscription merged with its template definition.

idstring · uuidRequired

The subscription ID (unique per subscription).

signalTemplateIdstring · uuidRequired

The signal template ID this subscription is based on. Use this to correlate subscriptions that share the same template.

versionintegerRequired

Template version number

namestringRequired

Subscription name if set, otherwise the template name

descriptionstringOptional
questionstringRequired

The research question

answerTypestring · enumRequiredPossible values:
weightstring · enumOptionalPossible values:
frequencystring · enumOptional

Preset frequency if set

Possible values:
cronExpressionstringRequired

The resolved cron expression

timezonestringRequired

IANA timezone for scheduling

statusstring · enumRequiredPossible values:
listIdstring · uuidRequired

Contact list ID

lastRunAtstring · date-time · nullableOptional
nextRunAtstring · date-time · nullableOptional
sourcestringRequired
createdAtstring · date-timeRequired
post
/v1/companies/signals/subscriptions/{subscriptionId}/stop

Trigger an immediate run of a signal subscription

post

Trigger an immediate execution of the subscription regardless of the cron schedule. Works for both active and stopped subscriptions.

Authorizations
AuthorizationstringRequired

API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.

Path parameters
subscriptionIdstring · uuidRequired

The unique identifier of the subscription to trigger

Responses
chevron-right
200

Subscription triggered successfully

application/json

A signal subscription merged with its template definition.

idstring · uuidRequired

The subscription ID (unique per subscription).

signalTemplateIdstring · uuidRequired

The signal template ID this subscription is based on. Use this to correlate subscriptions that share the same template.

versionintegerRequired

Template version number

namestringRequired

Subscription name if set, otherwise the template name

descriptionstringOptional
questionstringRequired

The research question

answerTypestring · enumRequiredPossible values:
weightstring · enumOptionalPossible values:
frequencystring · enumOptional

Preset frequency if set

Possible values:
cronExpressionstringRequired

The resolved cron expression

timezonestringRequired

IANA timezone for scheduling

statusstring · enumRequiredPossible values:
listIdstring · uuidRequired

Contact list ID

lastRunAtstring · date-time · nullableOptional
nextRunAtstring · date-time · nullableOptional
sourcestringRequired
createdAtstring · date-timeRequired
post
/v1/companies/signals/subscriptions/{subscriptionId}/trigger

Last updated