Skip to navigation

WebSockets Quickstart

Get started with real-time email event streaming

Copy for Cursor / Claude

Copy one of the blocks below into Cursor or Claude for instant WebSocket setup.

"""
AgentMail WebSockets Quickstart — copy into Cursor/Claude.
client.websockets.connect() → socket.send_subscribe(Subscribe(inbox_ids=[...])) → iterate socket for events.
"""
from agentmail import AgentMail, Subscribe, Subscribed, MessageReceivedEvent
client = AgentMail()
with client.websockets.connect() as socket:
socket.send_subscribe(Subscribe(inbox_ids=["my-agent@agentmail.to"]))
for event in socket:
if isinstance(event, Subscribed): print(f"Subscribed to {event.inbox_ids}")
elif isinstance(event, MessageReceivedEvent): print(f"Received from: {event.message.from_}")

SDK Examples

TypeScript
import { AgentMailClient } from "agentmail";
const client = new AgentMailClient();
async function main() {
const socket = await client.websockets.connect();
socket.on("message", async (event) => {
if (event.type === "subscribed") {
console.log("Subscribed to", event.inboxIds);
} else if (
event.type === "event" &&
event.eventType === "message.received"
) {
console.log(`Received message from: ${event.message.from}`);
}
});
await socket.waitForOpen();
socket.sendSubscribe({
type: "subscribe",
inboxIds: ["my-agent@agentmail.to"],
});
}
main();
Python
from agentmail import AgentMail, MessageReceivedEvent, Subscribe, Subscribed
client = AgentMail()
with client.websockets.connect() as socket:
socket.send_subscribe(Subscribe(inbox_ids=["my-agent@agentmail.to"]))
for event in socket:
if isinstance(event, Subscribed):
print(f"Subscribed to {event.inbox_ids}")
elif isinstance(event, MessageReceivedEvent):
msg = event.message
print(f"Received message from: {msg.from_}")