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.
1 """ 2 AgentMail WebSockets Quickstart — copy into Cursor/Claude. 3 client.websockets.connect() → socket.send_subscribe(Subscribe(inbox_ids=[...])) → iterate socket for events. 4 """ 5 from agentmail import AgentMail, Subscribe, Subscribed, MessageReceivedEvent 6 7 client = AgentMail() 8 with client.websockets.connect() as socket: 9 socket.send_subscribe(Subscribe(inbox_ids=["my-agent@agentmail.to"])) 10 for event in socket: 11 if isinstance(event, Subscribed): print(f"Subscribed to {event.inbox_ids}") 12 elif isinstance(event, MessageReceivedEvent): print(f"Received from: {event.message.from_}")
SDK Examples
TypeScript
1 import { AgentMailClient } from "agentmail"; 2 3 const client = new AgentMailClient(); 4 5 async function main() { 6 const socket = await client.websockets.connect(); 7 8 socket.on("message", async (event) => { 9 if (event.type === "subscribed") { 10 console.log("Subscribed to", event.inboxIds); 11 } else if ( 12 event.type === "event" && 13 event.eventType === "message.received" 14 ) { 15 console.log(`Received message from: ${event.message.from}`); 16 } 17 }); 18 19 await socket.waitForOpen(); 20 21 socket.sendSubscribe({ 22 type: "subscribe", 23 inboxIds: ["my-agent@agentmail.to"], 24 }); 25 } 26 27 main();
Python
1 from agentmail import AgentMail, MessageReceivedEvent, Subscribe, Subscribed 2 3 client = AgentMail() 4 5 with client.websockets.connect() as socket: 6 socket.send_subscribe(Subscribe(inbox_ids=["my-agent@agentmail.to"])) 7 8 for event in socket: 9 if isinstance(event, Subscribed): 10 print(f"Subscribed to {event.inbox_ids}") 11 elif isinstance(event, MessageReceivedEvent): 12 msg = event.message 13 print(f"Received message from: {msg.from_}")
