API Reference: Workflows

Complete reference for the Workflows API including endpoints, request/response schemas, and examples.

Authentication

All workflow endpoints require a valid API key passed in the Authorization header as Bearer <token>.

Atomic Operations

Workflows are atomic: if any step fails, the entire workflow is rolled back. This prevents orphan inboxes or incomplete waits.
POST/api/v1/workflows/create-inbox-and-wait

Create an inbox and immediately start a wait in one atomic call. Returns the inbox, wait result, and optional session.

Request Body

NameTypeRequiredDescription
waitTypestringRequiredThe type of email to wait for (otp, magic_link, etc.).
timeoutSecondsintegerRequiredMaximum time to wait for the email.(default: 120)
ttlSecondsintegerOptionalTTL for the created inbox.(default: 3600)
sessionIdstringOptionalAssociate with an existing session.
metadataobjectOptionalMetadata for the created inbox.
bash
curl -X POST https://agentinbox.in/api/v1/workflows/create-inbox-and-wait \
-H "Authorization: Bearer $AgentInbox_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"waitType": "otp",
"timeoutSeconds": 120,
"ttlSeconds": 3600,
"sessionId": "sess_abc",
"metadata": { "workflow": "signup" }
}'

Responses

HTTP 201
{
"inbox": {
"id": "inb_123",
"emailAddress": "k3v9x2m4q7tz@agentinbox.in",
"expiresAt": "2024-06-12T11:30:00Z"
},
"wait": {
"id": "wait_789",
"status": "completed",
"result": {
"type": "otp",
"value": "123456",
"confidence": 0.98
}
},
"session": {
"id": "sess_abc",
"name": "workflow-signup",
"status": "active"
}
}
POST/api/v1/workflows/signup

Complete signup workflow: creates an inbox, waits for a verification email, extracts the code or link, and returns everything needed.

Request Body

NameTypeRequiredDescription
waitTypestringRequiredExpected email type. Use otp or magic_link for signup flows.
timeoutSecondsintegerRequiredMaximum time to wait for the verification email.(default: 300)
ttlSecondsintegerOptionalTTL for the created inbox.(default: 3600)
sessionIdstringOptionalAssociate with an existing session.
metadataobjectOptionalMetadata for the created inbox.
bash
curl -X POST https://agentinbox.in/api/v1/workflows/signup \
-H "Authorization: Bearer $AgentInbox_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"waitType": "magic_link",
"timeoutSeconds": 300,
"ttlSeconds": 3600,
"sessionId": "sess_abc",
"metadata": { "source": "landing-page" }
}'

Responses

HTTP 201
{
"inbox": {
"id": "inb_123",
"emailAddress": "k3v9x2m4q7tz@agentinbox.in",
"expiresAt": "2024-06-12T11:30:00Z"
},
"wait": {
"id": "wait_789",
"status": "completed",
"result": {
"type": "magic_link",
"value": "https://example.com/verify?token=abc123",
"confidence": 0.97
}
},
"session": {
"id": "sess_abc",
"name": "workflow-signup",
"status": "active"
}
}

Schema: Workflow Response

All workflow responses share the same structure containing the created inbox, wait result, and optional session.

WorkflowResponse Object
{
"inbox": Inbox,
"wait": Wait,
"session": Session | null
}
Example Response
{
"inbox": {
"id": "inb_123",
"emailAddress": "k3v9x2m4q7tz@agentinbox.in",
"expiresAt": "2024-06-12T11:30:00Z"
},
"wait": {
"id": "wait_789",
"status": "completed",
"result": {
"type": "otp",
"value": "123456",
"confidence": 0.98
}
},
"session": {
"id": "sess_abc",
"name": "workflow-signup",
"status": "active"
}
}

Related Documentation