Documentation
Get started with MailSink in under 5 minutes.
Quickstart
- Get your API key via GitHub
- Create an inbox:
POST /v1/inboxes - Use the email address for signup/verification
- Extract the code:
GET /v1/inboxes/:id/latest-code
Authentication
All API requests require a Bearer token:
Authorization: Bearer msk_your_api_key_here Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v1/inboxes | Create inbox |
| GET | /v1/inboxes | List active inboxes |
| DELETE | /v1/inboxes/:id | Delete inbox |
| GET | /v1/inboxes/:id/messages | List messages |
| GET | /v1/inboxes/:id/latest-code | Latest OTP code |
| GET | /v1/inboxes/:id/latest-link | Latest verification link |
| GET | /v1/inboxes/:id/wait-for-code | Block until OTP arrives |
| GET | /v1/messages/:id | Full message content |
| GET | /v1/messages/:id/raw | Raw .eml download |
| POST | /v1/keys | Create API key |
| DELETE | /v1/keys/:id | Revoke API key |
Create inbox
POST /v1/inboxes
Content-Type: application/json
{
"local_part": "signup",
"domain": "yourdomain.com",
"ttl": 3600
}
// Response
{
"id": "inb_rae1znj8eh4a",
"address": "signup-k8m2@codenotify.net",
"expires_at": "2026-04-20T15:00:00Z"
} Extract verification code
GET /v1/inboxes/inb_rae1z/latest-code
// Response
{
"code": "847291",
"from": "noreply@stripe.com",
"subject": "Your verification code",
"received_at": "2026-04-20T14:01:23Z"
} Returns null for code if no code found yet. Poll /wait-for-code to block until it arrives.
MCP server
npm install @mailsink/mcp Available tools: create_inbox, wait_for_email, get_verification_code, get_verification_link, list_messages, list_inboxes, delete_inbox.
Rate limits
| Plan | Limit |
|---|---|
| Free | 60 req/min |
| Pro | 600 req/min |
| Team | 3,000 req/min |
Response headers: X-RateLimit-Limit, X-RateLimit-Remaining.