---
title: "List pooled domains"
description: "The domains this install will issue a disposable address on, and the call you make before you have anything to authenticate with."
url: "https://openemail.uk/docs/api/temp-mail/domains"
area: "API"
category: "Disposable inboxes"
---

# List pooled domains

The domains this install will issue a disposable address on, and the call you make before you have anything to authenticate with.

`GET /temp-mail/domains`

## GET /temp-mail/domains

The domains this install will issue a disposable address on, and the call you make before you have anything to authenticate with.

## No credential

**shell**

```
export OE=https://api.openemail.uk
```

Send no `Authorization` header at all. This is the only resource on the API that answers without one. It is registered above the key check rather than given a scope, because the thing being offered is an address for somebody who does not have one, and asking for a key first would make it a lead form wearing a tool’s clothes.

## Example

Enrolled and verified only. An unverified domain receives nothing, so offering one would hand out an address that silently never works and is, from the far side, indistinguishable from the product being broken.

**curl**

```
curl "$OE/temp-mail/domains"
```

**Response**

```
{
  "object": "list",
  "data": [{ "object": "temp_domain", "domain": "freemailaddress.com" }]
}
```

> An empty list is a 200 with no rows rather than an error. "This install has no disposable domains" is a fact about the install, and a client should be able to read it without catching something. Creating an inbox is the call that answers 503.

> Pass one of these as `domain` on create, or pass nothing and let the pool pick. There is no ordering promise beyond the operator’s own.
