Subscribe to Events
Creating a Subscription
Create a subscription to reliably integrate with EnterSignal’s unified Consumer Enterprise Facts data stream.
EnterSignal Subscriptions are meant to be unified and heterogeneous. So we expect you to create as few Subscriptions as possible to simplify integration, ideally one Subscription per environment.
curl -X POST https://api.entersignal.com/v1/subscriptions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-jwt-token" \
-d '{
"name": "openai-chatgpt-staging",
"filters": {
"categories": ["*"],
"fact_event_types": ["offer", "product", "announcement"],
"partners": ["amex"]
}
}'
// Response
{
"id": "subscription-uuid-123",
"name": "openai-chatgpt-staging",
"consumer_id": "openai-chatgpt-staging",
"filters": {
"categories": ["*"],
"fact_event_types": ["offer", "product", "announcement"],
"partners": ["amex"]
},
"position": {
"cursor": null,
"lastEventId": null,
"lastUpdated": "2025-07-10T00:00:00Z"
},
"status": "active",
"createdAt": "2025-07-10T00:00:00Z"
}
Pull-based Consumption via Cursor
Great for testing, but not recommended for production use.
curl -H "Authorization: Bearer your-jwt-token" \
"https://api.entersignal.com/v1/subscriptions/subscription-uuid-123/data?limit=20&cursor=eyJsYXN0X2lkIjoiMTIzIn0"
// Response
{
"data": [
{
"event": {
"id": "evt_01HRB9QF1WQ8KJD4X7TZ9VG1K2",
// A fact event
// .....
}
"cursor": "eyJsYXN0X2lkIjoiMTI0In0",
"timestamp": "2024-01-01T00:00:00Z"
}
],
"pagination": {
"cursor": "eyJsYXN0X2lkIjoiMTI0In0",
"has_more": true,
"total_count": 150
},
"metadata": {
"subscription_id": "subscription-uuid-123",
"timestamp": "2025-07-10T00:00:00Z",
"last_updated": "2025-07-10T00:00:00Z"
}
}
```
Push-based Consumption via Webhooks
curl -X POST /subscriptions/uuid-123/webhooks \
-d '{
"url": "https://your-ai-system.com/webhook",
"secret": "your-webhook-secret",
"startPosition": {
"type": "event_time",
"value": "2025-07-10T00:00:00Z"
},
// By default, if an older timestamp is specified, do not backfill.
// You can also use the archive to backfill (see below).
"backfill": {
"enabled": true,
"maxEvents": 100,
"batchSize": 10,
"delayBetweenBatches": 2,
"backfill_url_override": "https://your-ai-system.com/webhook_backfill"
}
}'
Offline Consumption
We maintain an offline archive for every subscription created. You can access it by querying the /v1/subscriptions/[subscription_id]/archive endpoint to obtain the presigned URI.
curl https://api.entersignal.com/v1/subscriptions/subscription-uuid-123/archive \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-jwt-token"
// Response
{
"id": "subscription-uuid-123",
// ...
"presigned_uri": "s3://entersignal_archive/subscriptions/subscription-uuid-123",
// ....
"status": "active",
"createdAt": "2025-07-10T00:00:00Z"
}