BYTETOOLS

Temp Mail (temp-mail.io) Domains API

Free read-only endpoint listing every domain temp-mail.io currently offers for throwaway inboxes, with forwarding limits. No key. Tested example included.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 21 Aug 2026

What is the Temp Mail (temp-mail.io) Domains API?

temp-mail.io exposes a keyless endpoint that lists the domains it is currently serving for disposable inboxes. Each entry carries the domain name, whether it is public or private, and how long mail forwarding will work for it.

This page documents one endpoint only: the read-only domain listing. Everything else on the temp-mail.io API creates state — allocating an inbox, polling it, deleting it — and none of that belongs in a directory of endpoints you can safely call to see what happens. The domain list is different: it is a pure read, and it is the piece most people actually want.

The reason it is useful is signup abuse. Disposable-address providers rotate their domains constantly to stay ahead of blocklists, so a static list goes stale within weeks. Pulling this endpoint on a schedule gives you the live set of domains one large provider is handing out right now, which is a far better signal than a checked-in text file. Note the `type` field: `public` domains are shared and anybody can read mail sent to them, which is exactly the property you are trying to detect.

Quick facts

Base URL
https://api.internal.temp-mail.io/api/v3
Authentication
No API key for the domain listing. The inbox endpoints on the same host are outside the scope of this page and are not documented here.
Rate limit
No published limit. The list changes slowly, so polling more than hourly gains nothing.
Pricing
Free.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Temp Mail (temp-mail.io) Domains API

Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. List the disposable domains currently on offer

GET https://api.internal.temp-mail.io/api/v3/domains

curl
curl 'https://api.internal.temp-mail.io/api/v3/domains'
JavaScript (fetch)
const res = await fetch("https://api.internal.temp-mail.io/api/v3/domains");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.internal.temp-mail.io/api/v3/domains", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "domains": [
    {
      "name": "bltiwd.com",
      "type": "public",
      "forward_available": true,
      "forward_max_seconds": 7772400
    },
    {
      "name": "bwmyga.com",
      "type": "public",
      "forward_available": true,
      "forward_max_seconds": 7772400
    },
    {
      "name": "ozsaip.com",
      "type": "public",
      "forward_available": true,
      "forward_max_seconds": 7772400
    },
    {
      "name": "yzcalo.com",
      "type": "public",
      "forward_available": true,
      "forward_max_seconds": 7772400
    },
    {
      "name": "lnovic.com",
      "type": "public",
      "forward_available": true,
      "forward_max_seconds": 7776000
    },
    {
      "name": "ruutukf.com",
      "type": "public",
      "forward_available": true,
      "forward_max_seconds": 7776000
    },
    {
      "name": "gmeenramy.com",
      "type": "public",
      "forward_available": true,
      "forward_max_seconds": 7776000
    },
    {
      "name": "olipii.com",
      "type": "public",
      "forward_available": true,
      "forward_max_seconds": 7776000
    }
  ]
}

Parameters

ParameterTypeRequiredDescription
(none)n/aOptionalThe domains endpoint takes no parameters.

Response fields

domainsarray
One object per available domain.
domains[].namestring
The domain itself, for example `bltiwd.com`.
domains[].typestring
`public` for shared, readable-by-anyone domains; `private` for domains reserved to a session.
domains[].forward_availableboolean
Whether mail to this domain can be forwarded on.
domains[].forward_max_secondsinteger
Upper bound on forwarding lifetime in seconds — around 7.7 million, or ninety days.

What you can build with the Temp Mail (temp-mail.io) Domains API

  • Refresh a disposable-domain blocklist on a schedule instead of shipping a stale file
  • Flag signups from throwaway addresses at registration time
  • Measure how quickly one provider rotates its domain pool
  • Cross-check a suspected disposable domain against a live source

Common errors and how to fix them

Cross-origin request blocked

The endpoint sends no Access-Control-Allow-Origin header.

Fix: Call it from a server or a scheduled job. There is no key to protect, so a thin proxy is trivial.

403

Some networks and hosting ranges are filtered by the provider.

Fix: Retry from a different network. This endpoint is not intended for high-volume automated traffic.

Domain missing that you saw yesterday

The pool rotates constantly.

Fix: That is the normal behaviour and the reason to poll. Keep an accumulating set rather than replacing your list wholesale on every fetch.

Temp Mail (temp-mail.io) Domains API — frequently asked questions

Does this API create a temporary mailbox?

Not this endpoint. It only lists the domains on offer. Creating and reading an inbox uses different endpoints on the same host, which this page deliberately does not cover.

Is the domain list complete?

It is complete for this one provider at this one moment. There are dozens of disposable-mail operators, so treat it as one live source among several rather than a definitive blocklist.

Can I call it from browser JavaScript?

No. The response carries no CORS header, so a browser fetch will be blocked. Call it server-side.

How often should I refresh?

Hourly is generous. The pool changes over days rather than minutes, and there is nothing to gain from tighter polling.

Tools that pair with this API

Alternatives to Temp Mail (temp-mail.io) Domains API

If Temp Mail (temp-mail.io) Domains does not fit, these email apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
Mail.tmFree disposable email API with no key: create temporary inboxes programmatically and read incoming messages. Ideal for testing signup flows. Tested.No keyNo19 Aug 2026
Mailcheck.aiFree email validation API with no key: check format, MX records, domain age and whether an address is disposable, in a single request. Tested example.No keyYes19 Aug 2026
Guerrilla MailFree disposable email API with no key: create a temporary inbox and read incoming messages programmatically. Useful for testing signup flows. Tested.No keyYes20 Aug 2026
AGPC Domain CheckFree email authentication API with no key: grades a domain's SPF, DKIM, DMARC and MX setup and lists the concrete gaps it found. Tested example included.No keyYes21 Aug 2026
DeBounce Disposable CheckFree disposable-email check with no key: pass an address, get back a single boolean saying whether the domain is a throwaway provider. Tested example included.No keyYes21 Aug 2026
Disposable Email Domains ListFree JSON array of roughly a hundred thousand disposable email domains, rebuilt daily from dozens of upstream sources. No key, permissive CORS. Tested example included.No keyYes21 Aug 2026
All Email APIs

Temp Mail (temp-mail.io) Domains is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.