Emailbin API
Emailbin has a small read-only JSON API for its public disposable inboxes.
Point a GET request at an inbox and read its temporary email as
JSON. No signup, no API key, no rate on your patience: it is the same public
mail the website shows, in a form a script can use.
Every inbox is public and every message is ephemeral (pruned frequently), so treat the API the way you treat the site: fine for throwaway signups, verification codes, and testing; never for anything private. Use it for your own inboxes. Mass-harvesting other people's inboxes is against the Terms of Service.
List messages in an inbox
GET https://emailbin.net/r/<inbox> returns up to 100 messages,
newest first, as a JSON array. An empty inbox returns [].
curl https://emailbin.net/r/myinbox
Fetch one message
GET https://emailbin.net/s/<shortlink> returns a single
message. The shortlink is the id from a message in the list above.
curl https://emailbin.net/s/18bfbb2178
{
"id": 1492,
"date": "Sun, 06 Sep 2026 18:15:02 GMT",
"recipient": "myinbox@emailbin.net",
"sender": "no-reply@example.com",
"subject": "Your verification code",
"body": {
"text_plain": "Your code is 123456\n",
"text_html": "<p>Your code is 123456</p>"
},
"attachments": [],
"image_attachments": [],
"shortlink": "18bfbb2178"
}
Notes
- No auth. Both routes are plain
GET. Any alphanumeric name is a live inbox the moment mail arrives. - Polling. New mail can take a minute or two. Poll
/r/<inbox>every few seconds until the array is non-empty. - Rate limit. Up to 100 requests per
60 seconds per IP across both routes. Over that you
get
429with aRetry-Afterheader. - Banned or blocked inboxes return
{"banned": true}instead of mail. - Attachments arrive base64-encoded in the
attachmentsandimage_attachmentsarrays. - Content type is
application/json. Everything is UTF-8.
Prefer a push to a poll? The Telegram bot watches an inbox and notifies you when mail lands.