Inboxes
Temporary email inboxes are the core of AgentInbox. Create them on-demand, receive emails, and let them expire automatically.
Inbox Lifecycle
Creating an Inbox
Create a new inbox via the API. Each inbox receives a unique email address and a time-to-live (TTL) in seconds.
curl -X POST https://agentinbox.in/api/v1/inboxes \ -H "Authorization: Bearer $AgentInbox_API_KEY" \ -H "Content-Type: application/json" \ -d '{"ttlSeconds": 3600}'import { AgentInboxClient } from "AgentInbox"; const client = new AgentInboxClient({ apiKey: process.env.AgentInbox_API_KEY!,}); const inbox = await client.inboxes.create({ ttlSeconds: 3600 });console.log(inbox.emailAddress); // "k3v9x2m4q7tz@agentinbox.in"from AgentInbox import AgentInboxClient client = AgentInboxClient(api_key="at_live_...")inbox = client.inboxes.create(ttl_seconds=3600)print(inbox.email_address) # "k3v9x2m4q7tz@agentinbox.in"Listing Inboxes
List all inboxes in your account. Supports pagination and filtering.
const inboxes = await client.inboxes.list({ limit: 10 });for (const inbox of inboxes.data) { console.log(inbox.emailAddress);}inboxes = client.inboxes.list(limit=10)for inbox in inboxes.data: print(inbox.email_address)Getting an Inbox
Retrieve a specific inbox by its ID.
curl https://agentinbox.in/api/v1/inboxes/inb_123 \ -H "Authorization: Bearer $AgentInbox_API_KEY"const inbox = await client.inboxes.get("inb_123");console.log(inbox.status); // "active" | "expired"Deleting an Inbox
Delete an inbox immediately before its TTL expires. This also removes all associated messages.
curl -X DELETE https://agentinbox.in/api/v1/inboxes/inb_123 \ -H "Authorization: Bearer $AgentInbox_API_KEY"await client.inboxes.delete("inb_123");/api/v1/inboxesCreate a new temporary email inbox
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ttlSeconds | integer | Required | Time-to-live in seconds. Maximum 604800 (7 days). |
| metadata | object | Optional | Optional key-value metadata for tracking and filtering. |
| sessionId | string | Optional | Optional session ID to group this inbox into a workflow. |
Responses
{ "id": "inb_123", "emailAddress": "k3v9x2m4q7tz@agentinbox.in", "status": "active", "ttlSeconds": 3600, "expiresAt": "2024-06-12T11:30:00Z", "createdAt": "2024-06-12T10:30:00Z"}{ "error": "invalid_ttl", "message": "ttlSeconds must be between 60 and 604800"}TTL (Time-to-Live)
Every inbox has a TTL in seconds. After the TTL expires, the inbox is automatically deleted along with all its messages.
TTL Guidelines
Short flows (OTP)
300-600 seconds (5-10 minutes)
Signup flows
1800-3600 seconds (30-60 minutes)
Long-running tasks
86400 seconds (24 hours)
Maximum TTL
604800 seconds (7 days)
Metadata
Attach custom metadata to inboxes for tracking, filtering, or tagging. Metadata is a key-value object stored with the inbox.
const inbox = await client.inboxes.create({ ttlSeconds: 3600, metadata: { workflow: "user-signup", userId: "usr_456", environment: "staging", },});inbox = client.inboxes.create( ttl_seconds=3600, metadata={ "workflow": "user-signup", "userId": "usr_456", "environment": "staging", },)Sessions
Inboxes can be grouped into sessions for tracking multi-step workflows. See the Sessions documentation for details.
const inbox = await client.inboxes.create({ ttlSeconds: 3600, sessionId: "sess_789",});inbox = client.inboxes.create( ttl_seconds=3600, session_id="sess_789",)