Subscription Stream

Connect to the subscription stream


Supported Regions and Base URLs


Access and Registration





Stream and Data

If the stream has new data to send, it will be sent immediately. However, if new data keeps coming up constantly, the stream will send the most updated result of each query in five-second bursts.

If the stream does not have new data to send, then it will send the most updated result of each query in one-minute bursts.

When the query reveals an execution error, a message will be sent through the SSE stream with this schema:

data: {"error_message" => "Something went wrong with the entry.","metadata":{"probe_id":"2"}, "query_id":"query_id_value", "entry_id":"entry_id_value"}
  • The stream won't be killed.
  • The other subscription's queries will continue sending the messages.
  • The entry that reveals an error will stay in an error state until the update entry point is used.

Subscription Limits

  • The maximum queries per subscription is 16.
  • The number of subscriptions is capped by the number of licenses, with a minimum of 500.
  • A subscription is deleted after two minutes, the client closes the stream channel. After this timeout, the stream URL is no longer valid, and a new subscription must be created.
  • A subscription is deleted if the client does not open a stream channel within two minutes after creating a subscription.
  • All subscriptions have a maximum lifetime of 24 hours after being created. When this lifetime ends, the server will close the connections to the client(s). After that, a new subscription is to be created.
  • In contrast, the lifetime of an HTTP SSE connection is not guaranteed. The connection can be dropped at any time by HTTP intermediaries, according to their rules. In such cases, the subscription will be available for a reconnection for two minutes, via an existing stream URL.

Body Response - Schema

200 (results from subscription)

event:result data:{"metadata":{"name":"today--abandoned_contacts","timestamp":"2020-11-13T18:17:43.091587Z"},"result":[{"_value":0}]} event:result data:{"metadata":{"name":"today--abandon_rate","timestamp":"2020-11-13T18:17:43.092158Z"},"result":[{"_value":"0.0000"}]} event:result data:{"metadata":{"name":"last15min--arrived_contacts","timestamp":"2020-11-13T18:17:43.092308Z"},"result":[{"_value":0}]} event:result data:{"metadata":{"name":"inbound_contacts","timestamp":"2020-11-13T18:17:43.092392Z"},"result":[{"_value":1}]} event:result data:{"metadata":{"name":"today--arrived_contacts","timestamp":"2020-11-13T18:17:43.092647Z"},"result":[{"_value":1}]} event:result data:{"metadata":{"name":"live_contacts_list","timestamp":"2020-11-13T18:17:43.092794Z"},"result":[]}

400 (bad request), 401 (unauthorized access), 403 (forbidden access), 404 (subscription not found), 415 (unsupported media type)

fieldsarray[object]"fields" subdivides into:

"name" (string)

"description" (string)
yes (name and description)



If you have any questions regarding the usage of this API, or if you’re having any technical issues, please open a ticket using this form.

Click Try It! to start a request and see the response here!