Subscribe to inbox notifications over SSE
curl --request GET \
--url https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"inbox_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 2,
"cursor": "<string>"
}Inboxes
Subscribe to inbox notifications over SSE
Opens a Server-Sent Events stream that emits one frame per batch of newly-available messages on the inbox. The connection stays open until the JWT expires, at which point the server closes it.
Two kinds of frames are emitted:
- Data frames (
data: {...}\n\n) signal availability only, they do not include message content. Consumers should call the lease endpoint to retrieve messages. The JSON payload is described by the response schema below. Each data frame includes a cursor that clients can provide when reconnecting. Catch-up delivery is at least once, so messages within the lookback window may be reported again. - Heartbeat frames (
: keep-alive\n\n) are SSE comment lines sent when no notification has arrived within the heartbeat interval. They are ignored by EventSource clients and exist only to keep intermediaries from closing the connection as idle.
GET
/
trigger-inbox
/
v1
/
inboxes
/
{inbox_id}
/
events
Subscribe to inbox notifications over SSE
curl --request GET \
--url https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zapier.com/trigger-inbox/v1/inboxes/{inbox_id}/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"inbox_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 2,
"cursor": "<string>"
}Authorizations
OAuth 2.0 authentication.
Path Parameters
The unique identifier of the inbox to subscribe to.
Query Parameters
An opaque cursor from the most recently received data frame. When provided, the stream immediately reports messages that may have arrived since that cursor. Cursors older than the message retention period are rejected.
Response
SSE stream opened. The response body is an open-ended sequence of text/event-stream frames.
JSON payload carried by each data: frame. Heartbeat frames carry no payload.
Last modified on August 20, 2026
Was this page helpful?