diff --git a/fern/docs.yml b/fern/docs.yml index 9afa710..0722d5b 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -186,6 +186,9 @@ navigation: - page: Overview icon: fa-solid fa-plug path: pages/websockets.mdx + - page: Quickstart + icon: fa-solid fa-bolt + path: pages/websockets-quickstart.mdx - section: Best Practices contents: - page: Email Deliverability diff --git a/fern/pages/websockets-quickstart.mdx b/fern/pages/websockets-quickstart.mdx new file mode 100644 index 0000000..4065d77 --- /dev/null +++ b/fern/pages/websockets-quickstart.mdx @@ -0,0 +1,50 @@ +--- +title: "WebSockets Quickstart" +subtitle: "Get started with real-time email event streaming" +slug: websockets/quickstart +--- + +```typescript title="TypeScript" +import { AgentMailClient } from "agentmail"; + +const client = new AgentMailClient(); + +async function main() { + const socket = await client.websockets.connect({ + apiKey: process.env.AGENTMAIL_API_KEY, + }); + + socket.on("message", async (event) => { + if (event.type === "subscribed") { + console.log("Subscribed to", event.inboxIds); + } else if (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 title="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_}") +```