Quickstart
From zero to mailboxes in your sequencer with five requests. Base URL https://api.inboxy.io/v1; full reference in the API reference.
1. Get a key
In the app, open Settings → API and MCP and create a key. Choose one workspace for a client integration, or all workspaces (an owner key) for automation across clients. Send it as a Bearer token.
curl https://api.inboxy.io/v1/me -H "Authorization: Bearer $INBOXY_API_KEY"
2. Pick a workspace
Owner keys act in any workspace: send X-Workspace-Id with an id from the workspaces list in the answer above. Workspace keys skip this header.
curl https://api.inboxy.io/v1/domains -H "Authorization: Bearer $INBOXY_API_KEY" -H "X-Workspace-Id: $WS"
3. Connect a domain
curl -X POST https://api.inboxy.io/v1/domains/connect \
-H "Authorization: Bearer $INBOXY_API_KEY" -H "X-Workspace-Id: $WS" \
-H "Content-Type: application/json" -d '{"domain":"acme-outreach.com"}'
Point the domain's nameservers at the ones returned (or connect your registrar and we set them), then POST /v1/domains/{id}/check until status is active.
4. Connect your sequencer
curl -X POST https://api.inboxy.io/v1/sequencers/connections \
-H "Authorization: Bearer $INBOXY_API_KEY" -H "X-Workspace-Id: $WS" \
-H "Content-Type: application/json" \
-d '{"platform":"instantly","credentials":{"email":"ops@acme.com","password":"...","apiKey":"..."}}'
GET /v1/sequencers/platforms lists what each platform needs. With an API key on Instantly or Smartlead, mailboxes are pushed automatically after setup.
5. Order mailboxes
# Quote first (nothing is created)
curl -X POST "https://api.inboxy.io/v1/orders?dry_run=true" ... -d @order.json
# Then buy, with an idempotency key so a retry never charges twice
curl -X POST https://api.inboxy.io/v1/orders -H "Idempotency-Key: order-2026-10-15-1" ... -d @order.json
{
"items": [
{ "domainId": "<domain id>", "sequencerConnectionId": "<connection id>",
"mailboxes": [ { "localPart": "anna", "fullName": "Anna Lee" }, { "localPart": "tom", "fullName": "Tom Reyes" } ] }
]
}
Mailboxes move through ordered → submitted → fulfilled → ready; watch them with GET /v1/mailboxes?status=ready, then reveal credentials with POST /v1/mailboxes/{id}/credentials or push them with POST /v1/exports.
Conventions
| Lists | { data, next_cursor }; pass cursor for the next page, limit up to 500. |
|---|---|
| Errors | { error: { code, message, field? } } with a stable code. See the reference for the codes of each route. |
| Rate limits | 300 requests a minute per key; X-RateLimit-* headers on every response; 429 rate_limited when exceeded. |
| Purchases | Accept ?dry_run=true and Idempotency-Key; card payments return a Stripe Checkout URL to finish in a browser. |
| Agents | The same capabilities as MCP tools: see the MCP server page. |