Emails
Stream email events
Opens a project-scoped Server-Sent Events stream. First issue a one-time token, then connect within 60 seconds. The stream can emit sent, delivered, bounced, complained, opened, clicked, and unsubscribed events. Each JSON payload contains type, emailId, occurredAt, and an event-specific data object.
Requirements
- Authentication: one-time stream token from
POST /v1/emails/{projectId}/stream/token.
GET
/
v1
/
emails
/
stream
TypeScript
import { createApolloSignalApiClient } from "@apollo-deploy/signal-sdk";
const signal = createApolloSignalApiClient({ apiKey: "ap_signal_..." });
const result = await signal.emails.streamEmailEvents(/* params */);
console.log(result);from apollo_signal import SignalClient
signal = SignalClient(api_key="ap_signal_...")
result = signal.emails.streamEmailEvents(# params)
print(result)import signal "github.com/apollo-deploy/signal-sdk-go"
client := signal.NewClient("ap_signal_...")
result, err := client.Emails.StreamEmailEvents(context.Background() /* params */)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)import com.apollodeploy.signal.SignalClient;
SignalClient signal = new SignalClient("ap_signal_...");
var result = signal.emails().streamEmailEvents(/* params */);
System.out.println(result);import com.apollodeploy.signal.SignalClient
val signal = SignalClient("ap_signal_...")
val result = signal.emails.streamEmailEvents(/* params */)
println(result)require "apollo_signal"
signal = ApolloSignal::Client.new(api_key: "ap_signal_...")
result = signal.emails.streamEmailEvents(# params)
puts resultuse ApolloSignal\SignalClient;
$signal = new SignalClient("ap_signal_...");
$result = $signal->emails->streamEmailEvents(/* params */);
var_dump($result);use apollo_signal::SignalClient;
let signal = SignalClient::new("ap_signal_...");
let result = signal.emails.streamEmailEvents(/* params */).await?;
println!("{:?}", result);using ApolloSignal;
var signal = new SignalClient("ap_signal_...");
var result = await signal.Emails.StreamEmailEventsAsync(/* params */);
Console.WriteLine(result);curl --request GET \
--url 'https://api.signal.apollodeploy.com/v1/emails/stream?token='const options = {method: 'GET'};
fetch('https://api.signal.apollodeploy.com/v1/emails/stream?token=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));"data: {\"type\":\"delivered\",\"emailId\":\"email_01...\",\"occurredAt\":\"2026-08-25T10:00:00Z\",\"data\":{}}\n\n"{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}Was this page helpful?
⌘I
TypeScript
import { createApolloSignalApiClient } from "@apollo-deploy/signal-sdk";
const signal = createApolloSignalApiClient({ apiKey: "ap_signal_..." });
const result = await signal.emails.streamEmailEvents(/* params */);
console.log(result);from apollo_signal import SignalClient
signal = SignalClient(api_key="ap_signal_...")
result = signal.emails.streamEmailEvents(# params)
print(result)import signal "github.com/apollo-deploy/signal-sdk-go"
client := signal.NewClient("ap_signal_...")
result, err := client.Emails.StreamEmailEvents(context.Background() /* params */)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)import com.apollodeploy.signal.SignalClient;
SignalClient signal = new SignalClient("ap_signal_...");
var result = signal.emails().streamEmailEvents(/* params */);
System.out.println(result);import com.apollodeploy.signal.SignalClient
val signal = SignalClient("ap_signal_...")
val result = signal.emails.streamEmailEvents(/* params */)
println(result)require "apollo_signal"
signal = ApolloSignal::Client.new(api_key: "ap_signal_...")
result = signal.emails.streamEmailEvents(# params)
puts resultuse ApolloSignal\SignalClient;
$signal = new SignalClient("ap_signal_...");
$result = $signal->emails->streamEmailEvents(/* params */);
var_dump($result);use apollo_signal::SignalClient;
let signal = SignalClient::new("ap_signal_...");
let result = signal.emails.streamEmailEvents(/* params */).await?;
println!("{:?}", result);using ApolloSignal;
var signal = new SignalClient("ap_signal_...");
var result = await signal.Emails.StreamEmailEventsAsync(/* params */);
Console.WriteLine(result);curl --request GET \
--url 'https://api.signal.apollodeploy.com/v1/emails/stream?token='const options = {method: 'GET'};
fetch('https://api.signal.apollodeploy.com/v1/emails/stream?token=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));"data: {\"type\":\"delivered\",\"emailId\":\"email_01...\",\"occurredAt\":\"2026-08-25T10:00:00Z\",\"data\":{}}\n\n"{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}