Welcome to the Maildrop Public Developer API. This API allows you to programmatically manage inboxes, retrieve messages, and configure custom domains.
All requests to the /v1 endpoints require an API Key. You can provide your API key in two ways:
- Bearer Token (Recommended):
Authorization: Bearer YOUR_API_KEY - Query Parameter:
GET /v1/inboxes?api_key=YOUR_API_KEY
https://api.freecustom.email/v1
Retrieve information about the current API user and plan.
- Response (200 OK):
{ "success": true, "data": { "plan": "growth", "plan_label": "Growth Tier", "credits": 500, "rate_limits": { "requestsPerSecond": 50, "requestsPerMonth": 2000000 }, "features": { "otpExtraction": true, "websocket": true, "customDomains": true } } }
Check your current monthly usage against your plan limits.
List all inboxes registered under your account.
- Response (200 OK):
{ "success": true, "data": [ { "inbox": "mybox@ditube.info", "local": "mybox", "domain": "ditube.info" } ], "count": 1 }
Register a new temporary inbox.
- Body:
{ "inbox": "address@domain.com", "isTesting": true // (Optional) Flags inbox for diagnostic Timeline and Insight events (Growth/Enterprise only) } - Response (201 Created):
{ "success": true, "message": "Inbox registered." }
Delete an inbox and all its messages.
Retrieve all messages for a specific inbox.
- Response (200 OK):
{ "success": true, "data": [ { "id": "msg_123", "subject": "Welcome", "from": "no-reply@service.com", "createdAt": "2024-03-21..." } ] }
Retrieve the full content of a specific message.
Permanently delete a specific message.
Automatically extract the latest verification code and magic link from the most recent message. Includes probability scoring.
- Response (200 OK):
{ "success": true, "otp": "847291", "score": 0.8, "email_id": "msg_abc123", "timestamp": 1713184200000, "verification_link": "https://auth.example.com/magic?token=xyz" }
Start a new test timeline. Associates future events with a specific test run. (Growth/Enterprise only).
- Body:
{ "test_id": "tr_test_123" } // (Optional) Custom test identifier - Response (200 OK):
{ "success": true, "message": "Test started.", "test_id": "tr_test_123" }
Fetch zero-latency delivery and processing events for diagnostic purposes. (Growth/Enterprise only).
- Query Parameters:
?test_id=tr_test_123(Optional) - Response (200 OK):
{ "success": true, "data": [ { "id": "evt_1", "inbox": "test@domain.com", "type": "smtp_rcpt_received", "timestamp": 1713184200000, "latency_ms": 0, "test_run_id": "tr_test_123" } ] }
Fetch automated diagnostic issues regarding delivery and OTP parsing logic. (Growth/Enterprise only).
- Response (200 OK):
{ "success": true, "data": [ { "type": "slow_delivery", "message": "Delivery and processing took over 3s" } ] } - Plan Requirement: Growth or above.
Wait for a new email to arrive in the specified mailbox (Long Polling). This eliminates the need for rapid polling and reduces request overhead.
- Query Params:
timeout: Max seconds to wait (10–60 recommended, default 30).since: (Optional) Last seen message ID. Return immediately if a newer message exists, otherwise wait.
- Plan Requirement: Developer or above.
- Billing: High-value endpoint; 1 wait call consumes 10 monthly requests.
- Response (Success):
{ "success": true, "message": "New message received", "data": { "id": "wNp8N0KoV", "subject": "Your OTP", ... } } - Response (Timeout):
{ "success": false, "message": "Timeout reached" }
List your active custom domains.
- Plan Requirement: Growth or above.
Subscribe to real-time message notifications via webhook.
- Body:
{ "url": "https://your-server.com/callback", "inbox": "target@domain.com" } - Plan Requirement: Growth or above.
| Error Code | Status | Description |
|---|---|---|
invalid_api_key |
401 | The provided API key is invalid or revoked. |
missing_field |
400 | A required field (like inbox) is missing from the request body. |
rate_limit_exceeded |
429 | You have exceeded your plan's rate limit. |
too_many_requests |
429 | Suspicious behavior detected (e.g. multi-account farming). |
plan_required |
403 | This feature requires a higher tier subscription. |
forbidden |
403 | You do not have permission for this resource. |
We enforce dynamic stability via our Abuse Engine:
- Rate Limiting: Tiered RPS (Requests Per Second) based on your plan.
- Progressive Friction: Free tier users subjected to rapid polling may experience artificial randomized delays (100ms–500ms).
- Fingerprinting: Requests are grouped by a persistent identity layer to prevent bot farm abuse.
Need more scale? Upgrade your plan.
The observability API provides a granular timeline of events for a specific inbox, useful for debugging email flows and OTP extraction.
GET /v1/inboxes/{inbox}/timeline
Returns an array of events:
{
"data": [
{
"id": "abc1234",
"inbox": "test@ditmail.info",
"type": "email_received",
"timestamp": 1713175400000,
"latency_ms": 0
},
{
"id": "def5678",
"inbox": "test@ditmail.info",
"type": "otp_extracted",
"timestamp": 1713175400820,
"latency_ms": 820,
"metadata": {
"otp": "123456"
}
}
]
}GET /v1/inboxes/{inbox}/insights
Returns a list of detected failures or warnings for an inbox. Requires Growth plan or higher.
{
"data": [
{
"type": "slow_delivery",
"message": "Delivery and processing took over 3s"
}
]
}