Signal Subscriptions
List all signal subscriptions for your organization
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.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Query Parameters
Maximum number of subscriptions to return
201 <= value <= 100Number of subscriptions to skip for pagination
00 <= valueResponse Body
application/json
application/json
curl -X GET "https://example.com/v1/companies/signals/subscriptions"{ "items": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "signalTemplateId": "81bb942d-4a88-42b6-b91c-b3e4585f194d", "version": 0, "name": "string", "description": "string", "question": "string", "answerType": "open_text", "outputSchema": {}, "weight": "important", "qualificationCriteria": {}, "frequency": "daily", "cronExpression": "string", "timezone": "string", "status": "active", "listId": "9fc6ad7d-902a-4834-b161-a4911b883d44", "lastRunAt": "2019-08-24T14:15:22Z", "nextRunAt": "2019-08-24T14:15:22Z", "source": "string", "createdAt": "2019-08-24T14:15:22Z" } ], "total": 42, "limit": 20, "offset": 0, "hasMore": false}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Create a signal subscription
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.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
ID of an existing signal template. If omitted, name and question
are required to create a template inline.
uuidTemplate name (required when creating inline, ignored when signalTemplateId is provided)
1 <= length <= 200Template description (optional, for inline creation)
length <= 1000Research question (required when creating inline)
1 <= length <= 500Expected answer format (for inline creation, defaults to open_text)
"open_text""open_text" | "number" | "boolean" | "list" | "percentage" | "currency" | "url" | "contacts" | "contact_posts" | "contact_engagements" | "json_schema"JSON Schema for custom output (when answerType is json_schema)
Importance of the signal (for inline creation)
"important" | "nice_to_have" | "not_important"Qualification criteria for scoring answers (for inline creation)
Preset schedule frequency. Mutually exclusive with cronExpression —
exactly one must be provided.
"daily" | "weekly" | "monthly"Custom cron expression (5-field). Mutually exclusive with frequency —
exactly one must be provided.
IANA timezone for scheduling (defaults to UTC)
Contact list ID to scope signal execution
uuidResponse Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/companies/signals/subscriptions" \ -H "Content-Type: application/json" \ -d '{ "listId": "9fc6ad7d-902a-4834-b161-a4911b883d44" }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "signalTemplateId": "81bb942d-4a88-42b6-b91c-b3e4585f194d", "version": 0, "name": "string", "description": "string", "question": "string", "answerType": "open_text", "outputSchema": {}, "weight": "important", "qualificationCriteria": {}, "frequency": "daily", "cronExpression": "string", "timezone": "string", "status": "active", "listId": "9fc6ad7d-902a-4834-b161-a4911b883d44", "lastRunAt": "2019-08-24T14:15:22Z", "nextRunAt": "2019-08-24T14:15:22Z", "source": "string", "createdAt": "2019-08-24T14:15:22Z"}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Get a signal subscription by ID
Retrieve a single subscription merged with its signal template data.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
The unique identifier of the subscription
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/companies/signals/subscriptions/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "signalTemplateId": "81bb942d-4a88-42b6-b91c-b3e4585f194d", "version": 0, "name": "string", "description": "string", "question": "string", "answerType": "open_text", "outputSchema": {}, "weight": "important", "qualificationCriteria": {}, "frequency": "daily", "cronExpression": "string", "timezone": "string", "status": "active", "listId": "9fc6ad7d-902a-4834-b161-a4911b883d44", "lastRunAt": "2019-08-24T14:15:22Z", "nextRunAt": "2019-08-24T14:15:22Z", "source": "string", "createdAt": "2019-08-24T14:15:22Z"}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Update a signal subscription
Update a subscription's schedule configuration and/or its underlying template fields. When schedule fields are provided, the active schedule is updated. When template fields are provided, the underlying signal template is updated inline.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
The unique identifier of the subscription to update
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Preset schedule frequency. Mutually exclusive with cronExpression.
"daily" | "weekly" | "monthly"Custom cron expression (5-field). Mutually exclusive with frequency.
IANA timezone for scheduling
The subscription display name
1 <= length <= 200The research question
1 <= length <= 500Expected answer format
"open_text" | "number" | "boolean" | "list" | "percentage" | "currency" | "url" | "contacts" | "contact_posts" | "contact_engagements" | "json_schema"Signal description
length <= 1000JSON schema for json_schema answer type. Send null to clear.
Signal importance weight
"important" | "nice_to_have" | "not_important"Qualification criteria
Response Body
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/v1/companies/signals/subscriptions/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "timezone": "America/New_York", "name": "string", "question": "string", "answerType": "open_text" }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "signalTemplateId": "81bb942d-4a88-42b6-b91c-b3e4585f194d", "version": 0, "name": "string", "description": "string", "question": "string", "answerType": "open_text", "outputSchema": {}, "weight": "important", "qualificationCriteria": {}, "frequency": "daily", "cronExpression": "string", "timezone": "string", "status": "active", "listId": "9fc6ad7d-902a-4834-b161-a4911b883d44", "lastRunAt": "2019-08-24T14:15:22Z", "nextRunAt": "2019-08-24T14:15:22Z", "source": "string", "createdAt": "2019-08-24T14:15:22Z"}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Start a signal subscription
Activate a stopped subscription. Begins recurring signal execution according to the subscription's cron expression.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
The unique identifier of the subscription to start
uuidResponse Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/companies/signals/subscriptions/497f6eca-6276-4993-bfeb-53cbbbba6f08/start"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "signalTemplateId": "81bb942d-4a88-42b6-b91c-b3e4585f194d", "version": 0, "name": "string", "description": "string", "question": "string", "answerType": "open_text", "outputSchema": {}, "weight": "important", "qualificationCriteria": {}, "frequency": "daily", "cronExpression": "string", "timezone": "string", "status": "active", "listId": "9fc6ad7d-902a-4834-b161-a4911b883d44", "lastRunAt": "2019-08-24T14:15:22Z", "nextRunAt": "2019-08-24T14:15:22Z", "source": "string", "createdAt": "2019-08-24T14:15:22Z"}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Stop a signal subscription
Pause an active subscription so no further recurring executions occur. The subscription can be restarted later.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
The unique identifier of the subscription to stop
uuidResponse Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/companies/signals/subscriptions/497f6eca-6276-4993-bfeb-53cbbbba6f08/stop"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "signalTemplateId": "81bb942d-4a88-42b6-b91c-b3e4585f194d", "version": 0, "name": "string", "description": "string", "question": "string", "answerType": "open_text", "outputSchema": {}, "weight": "important", "qualificationCriteria": {}, "frequency": "daily", "cronExpression": "string", "timezone": "string", "status": "active", "listId": "9fc6ad7d-902a-4834-b161-a4911b883d44", "lastRunAt": "2019-08-24T14:15:22Z", "nextRunAt": "2019-08-24T14:15:22Z", "source": "string", "createdAt": "2019-08-24T14:15:22Z"}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Trigger an immediate run of a signal subscription
Trigger an immediate execution of the subscription regardless of the cron schedule. Works for both active and stopped subscriptions.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
The unique identifier of the subscription to trigger
uuidResponse Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/companies/signals/subscriptions/497f6eca-6276-4993-bfeb-53cbbbba6f08/trigger"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "signalTemplateId": "81bb942d-4a88-42b6-b91c-b3e4585f194d", "version": 0, "name": "string", "description": "string", "question": "string", "answerType": "open_text", "outputSchema": {}, "weight": "important", "qualificationCriteria": {}, "frequency": "daily", "cronExpression": "string", "timezone": "string", "status": "active", "listId": "9fc6ad7d-902a-4834-b161-a4911b883d44", "lastRunAt": "2019-08-24T14:15:22Z", "nextRunAt": "2019-08-24T14:15:22Z", "source": "string", "createdAt": "2019-08-24T14:15:22Z"}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}