Download OpenAPI specification:
CentralBox is private, hosted email on your own domain, built on Amazon SES. This is the SOURCE OF TRUTH for the API contract. npm run generate:schema emits src/schema/api/* (Zod schemas + operation/route table) consumed by the router; generate:api-docs and generate:api-tests also derive from here. Phase 2 adds domains & addresses; Phase 3 adds mail (send + inbox). contacts/campaigns/billing endpoints land in later phases per design-docs/centralbox-execution-plan.md.
| domain required | string |
{- "domain": "string"
}{- "accountId": "string",
- "domain": "string",
- "status": "pending",
- "dkimTokens": [
- "string"
], - "mailFromDomain": "string",
- "dnsRecords": [
- {
- "type": "CNAME",
- "name": "string",
- "value": "string",
- "priority": 0
}
], - "configurationSetName": "string",
- "createdAt": 0
}{- "domains": [
- {
- "accountId": "string",
- "domain": "string",
- "status": "pending",
- "dkimTokens": [
- "string"
], - "mailFromDomain": "string",
- "dnsRecords": [
- {
- "type": "CNAME",
- "name": "string",
- "value": "string",
- "priority": 0
}
], - "configurationSetName": "string",
- "createdAt": 0
}
]
}| domain required | string |
{- "accountId": "string",
- "domain": "string",
- "status": "pending",
- "dkimTokens": [
- "string"
], - "mailFromDomain": "string",
- "dnsRecords": [
- {
- "type": "CNAME",
- "name": "string",
- "value": "string",
- "priority": 0
}
], - "configurationSetName": "string",
- "createdAt": 0
}| domain required | string |
{- "accountId": "string",
- "domain": "string",
- "status": "pending",
- "dkimTokens": [
- "string"
], - "mailFromDomain": "string",
- "dnsRecords": [
- {
- "type": "CNAME",
- "name": "string",
- "value": "string",
- "priority": 0
}
], - "configurationSetName": "string",
- "createdAt": 0
}| address required | string |
| displayName | string |
| signature | string |
{- "address": "string",
- "displayName": "string",
- "signature": "string"
}{- "accountId": "string",
- "address": "string",
- "displayName": "string",
- "signature": "string",
- "grants": [
- {
- "userId": "string",
- "role": "owner"
}
], - "createdAt": 0
}{- "addresses": [
- {
- "accountId": "string",
- "address": "string",
- "displayName": "string",
- "signature": "string",
- "grants": [
- {
- "userId": "string",
- "role": "owner"
}
], - "createdAt": 0
}
]
}| id required | string |
{- "accountId": "string",
- "address": "string",
- "displayName": "string",
- "signature": "string",
- "grants": [
- {
- "userId": "string",
- "role": "owner"
}
], - "createdAt": 0
}| id required | string |
| displayName | string |
| signature | string |
{- "displayName": "string",
- "signature": "string"
}{- "accountId": "string",
- "address": "string",
- "displayName": "string",
- "signature": "string",
- "grants": [
- {
- "userId": "string",
- "role": "owner"
}
], - "createdAt": 0
}| id required | string |
required | Array of objects (Grant) |
{- "grants": [
- {
- "userId": "string",
- "role": "owner"
}
]
}{- "accountId": "string",
- "address": "string",
- "displayName": "string",
- "signature": "string",
- "grants": [
- {
- "userId": "string",
- "role": "owner"
}
], - "createdAt": 0
}| from required | string |
| to required | string |
| subject required | string |
| text | string |
| html | string |
{- "from": "string",
- "to": "string",
- "subject": "string",
- "text": "string",
- "html": "string"
}{- "accountId": "string",
- "sortKey": "string",
- "threadId": "string",
- "address": "string",
- "folder": "inbox",
- "direction": "inbound",
- "subject": "string",
- "snippet": "string",
- "flags": {
- "read": true,
- "starred": true,
- "labels": [
- "string"
]
}, - "s3Key": "string",
- "sesMessageId": "string",
- "createdAt": 0,
- "rawMimeUrl": "string"
}| address | string |
| folder | string Enum: "inbox" "sent" "drafts" "spam" "trash" |
{- "messages": [
- {
- "accountId": "string",
- "sortKey": "string",
- "threadId": "string",
- "address": "string",
- "folder": "inbox",
- "direction": "inbound",
- "subject": "string",
- "snippet": "string",
- "flags": {
- "read": true,
- "starred": true,
- "labels": [
- "string"
]
}, - "s3Key": "string",
- "sesMessageId": "string",
- "createdAt": 0,
- "rawMimeUrl": "string"
}
]
}| id required | string |
{- "accountId": "string",
- "sortKey": "string",
- "threadId": "string",
- "address": "string",
- "folder": "inbox",
- "direction": "inbound",
- "subject": "string",
- "snippet": "string",
- "flags": {
- "read": true,
- "starred": true,
- "labels": [
- "string"
]
}, - "s3Key": "string",
- "sesMessageId": "string",
- "createdAt": 0,
- "rawMimeUrl": "string"
}| id required | string |
| read | boolean |
| starred | boolean |
| labels | Array of strings |
| folder | string Enum: "inbox" "sent" "drafts" "spam" "trash" |
{- "read": true,
- "starred": true,
- "labels": [
- "string"
], - "folder": "inbox"
}{- "accountId": "string",
- "sortKey": "string",
- "threadId": "string",
- "address": "string",
- "folder": "inbox",
- "direction": "inbound",
- "subject": "string",
- "snippet": "string",
- "flags": {
- "read": true,
- "starred": true,
- "labels": [
- "string"
]
}, - "s3Key": "string",
- "sesMessageId": "string",
- "createdAt": 0,
- "rawMimeUrl": "string"
}| id required | string |
{- "messages": [
- {
- "accountId": "string",
- "sortKey": "string",
- "threadId": "string",
- "address": "string",
- "folder": "inbox",
- "direction": "inbound",
- "subject": "string",
- "snippet": "string",
- "flags": {
- "read": true,
- "starred": true,
- "labels": [
- "string"
]
}, - "s3Key": "string",
- "sesMessageId": "string",
- "createdAt": 0,
- "rawMimeUrl": "string"
}
]
}| from required | string |
| to | Array of strings |
| cc | Array of strings |
| bcc | Array of strings |
| subject | string |
| text | string |
| html | string |
{- "from": "string",
- "to": [
- "string"
], - "cc": [
- "string"
], - "bcc": [
- "string"
], - "subject": "string",
- "text": "string",
- "html": "string"
}{- "accountId": "string",
- "sortKey": "string",
- "threadId": "string",
- "address": "string",
- "folder": "inbox",
- "direction": "inbound",
- "subject": "string",
- "snippet": "string",
- "flags": {
- "read": true,
- "starred": true,
- "labels": [
- "string"
]
}, - "s3Key": "string",
- "sesMessageId": "string",
- "createdAt": 0,
- "rawMimeUrl": "string"
}| id required | string |
| to | Array of strings |
| cc | Array of strings |
| bcc | Array of strings |
| subject | string |
| text | string |
| html | string |
{- "to": [
- "string"
], - "cc": [
- "string"
], - "bcc": [
- "string"
], - "subject": "string",
- "text": "string",
- "html": "string"
}{- "accountId": "string",
- "sortKey": "string",
- "threadId": "string",
- "address": "string",
- "folder": "inbox",
- "direction": "inbound",
- "subject": "string",
- "snippet": "string",
- "flags": {
- "read": true,
- "starred": true,
- "labels": [
- "string"
]
}, - "s3Key": "string",
- "sesMessageId": "string",
- "createdAt": 0,
- "rawMimeUrl": "string"
}| id required | string |
{- "accountId": "string",
- "sortKey": "string",
- "threadId": "string",
- "address": "string",
- "folder": "inbox",
- "direction": "inbound",
- "subject": "string",
- "snippet": "string",
- "flags": {
- "read": true,
- "starred": true,
- "labels": [
- "string"
]
}, - "s3Key": "string",
- "sesMessageId": "string",
- "createdAt": 0,
- "rawMimeUrl": "string"
}| email required | string |
{- "email": "string"
}{- "message": "string"
}| token required | string |
{- "token": "string"
}{- "message": "string"
}| label required | string |
| scopes | Array of strings |
| domains | Array of strings |
{- "label": "string",
- "scopes": [
- "string"
], - "domains": [
- "string"
]
}{- "keyId": "string",
- "accountId": "string",
- "label": "string",
- "scopes": [
- "string"
], - "domains": [
- "string"
], - "status": "active",
- "createdAt": 0,
- "lastUsedAt": 0,
- "fullKey": "string"
}{- "keys": [
- {
- "keyId": "string",
- "accountId": "string",
- "label": "string",
- "scopes": [
- "string"
], - "domains": [
- "string"
], - "status": "active",
- "createdAt": 0,
- "lastUsedAt": 0
}
]
}| email required | string |
| name | string |
{- "email": "string",
- "name": "string"
}{- "accountId": "string",
- "contactId": "string",
- "email": "string",
- "name": "string",
- "status": "subscribed",
- "createdAt": 0
}| id required | string |
| name | string |
{- "name": "string"
}{- "accountId": "string",
- "contactId": "string",
- "email": "string",
- "name": "string",
- "status": "subscribed",
- "createdAt": 0
}| name required | string |
{- "name": "string"
}{- "accountId": "string",
- "listId": "string",
- "name": "string",
- "memberCount": 0,
- "createdAt": 0
}| id required | string |
| contactId required | string |
{- "contactId": "string"
}{- "listId": "string",
- "contactId": "string",
- "subscribed": true,
- "unsubToken": "string"
}| id required | string |
| csv required | string |
{- "csv": "string"
}{- "imported": 0
}| id required | string |
| contactId required | string |
{- "contactId": "string"
}{- "message": "string"
}| fromAddress required | string |
| listId required | string |
| subject required | string |
| text | string |
| html | string |
{- "fromAddress": "string",
- "listId": "string",
- "subject": "string",
- "text": "string",
- "html": "string"
}{- "accountId": "string",
- "campaignId": "string",
- "fromAddress": "string",
- "listId": "string",
- "subject": "string",
- "text": "string",
- "html": "string",
- "templateName": "string",
- "status": "draft",
- "stats": {
- "property1": 0,
- "property2": 0
}, - "createdAt": 0
}{- "campaigns": [
- {
- "accountId": "string",
- "campaignId": "string",
- "fromAddress": "string",
- "listId": "string",
- "subject": "string",
- "text": "string",
- "html": "string",
- "templateName": "string",
- "status": "draft",
- "stats": {
- "property1": 0,
- "property2": 0
}, - "createdAt": 0
}
]
}| id required | string |
{- "accountId": "string",
- "campaignId": "string",
- "fromAddress": "string",
- "listId": "string",
- "subject": "string",
- "text": "string",
- "html": "string",
- "templateName": "string",
- "status": "draft",
- "stats": {
- "property1": 0,
- "property2": 0
}, - "createdAt": 0
}| id required | string |
| testAddress required | string |
{- "testAddress": "string"
}{- "message": "string"
}| id required | string |
{- "accountId": "string",
- "campaignId": "string",
- "fromAddress": "string",
- "listId": "string",
- "subject": "string",
- "text": "string",
- "html": "string",
- "templateName": "string",
- "status": "draft",
- "stats": {
- "property1": 0,
- "property2": 0
}, - "createdAt": 0
}| plan required | string Enum: "personal" "team" |
{- "plan": "personal"
}{- "url": "string"
}{- "placeholder": true
}{- "received": true
}{- "domains": [
- "string"
], - "deliveries": 0,
- "bounces": 0,
- "complaints": 0,
- "opens": 0,
- "clicks": 0,
- "perDomain": {
- "property1": {
- "deliveries": 0,
- "bounces": 0,
- "complaints": 0,
- "opens": 0,
- "clicks": 0
}, - "property2": {
- "deliveries": 0,
- "bounces": 0,
- "complaints": 0,
- "opens": 0,
- "clicks": 0
}
}
}