# EMAIL_DOMAIN_INVALID

The domain is not valid. Provide a full domain name, such as invoices.example.com.

<Callout type="info">
**Category:** [Email delivery](/errors/category/email)
</Callout>

| | |
|---|---|
| HTTP status | `422` Unprocessable Content |
| Retry | After fixing the cause |

## When it happens

The value is not a full domain name: it needs at least two labels, each up to 63 characters, a non-numeric top-level domain and no more than 253 characters in all.

## How to fix it

Send the bare domain, for example `mail.example.com`, without `@`, scheme or path.

## Retry

Not as is: the same request fails the same way. Fix the cause described above, then send the request again, under a new `Idempotency-Key` if the body changed.

## Returned by

The operations where this code is most likely. The list is not exhaustive.

- [`POST /v1/accounts/{account_id}/email-domains`](/emails/createAccountEmailDomain)

## Example response

When this error occurs, the API answers `422` Unprocessable Content with a JSON body of this shape:

```json
{
  "type": "https://docs.beel.es/errors/EMAIL_DOMAIN_INVALID",
  "title": "EMAIL_DOMAIN_INVALID",
  "detail": "The domain is not valid. Provide a full domain name, such as invoices.example.com.",
  "instance": "/v1/<resource>",
  "errors": [],
  "success": false,
  "error": {
    "code": "EMAIL_DOMAIN_INVALID",
    "message": "The domain is not valid. Provide a full domain name, such as invoices.example.com.",
    "details": {}
  },
  "meta": {
    "timestamp": "2026-05-21T10:00:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
```

The `type` URI is stable and always resolves to this page.

## Message

<Tabs items={["English", "Spanish", "Catalan"]}>
  <Tab value="English">{"The domain is not valid. Provide a full domain name, such as invoices.example.com."}</Tab>
  <Tab value="Spanish">{"El dominio no es válido. Indica un nombre de dominio completo, como facturas.ejemplo.com."}</Tab>
  <Tab value="Catalan">{"El domini no és vàlid. Indica un nom de domini complet, com factures.exemple.com."}</Tab>
</Tabs>

Send the request with `Accept-Language: <es|en|ca>` to receive the message in your preferred language.

## Other errors in this category

<div className="grid grid-cols-2 gap-3 not-prose">
  <Card title="EMAIL_DOMAIN_LIMIT_REACHED" description="You have reached the maximum number of email domains for your account (‹value›)." href="/errors/EMAIL_DOMAIN_LIMIT_REACHED" />
  <Card title="EMAIL_DOMAIN_NOT_FOUND" description="No email domain with that id belongs to your account." href="/errors/EMAIL_DOMAIN_NOT_FOUND" />
  <Card title="EMAIL_DOMAIN_NOT_READY" description="The domain is still being registered. Try again in a few seconds." href="/errors/EMAIL_DOMAIN_NOT_READY" />
  <Card title="EMAIL_DOMAIN_RESERVED" description="That domain is reserved and cannot be used to send emails." href="/errors/EMAIL_DOMAIN_RESERVED" />
  <Card title="EMAIL_DOMAIN_UNAVAILABLE" description="That domain cannot be registered: it is already in use." href="/errors/EMAIL_DOMAIN_UNAVAILABLE" />
</div>

## Keep exploring

<div className="grid grid-cols-2 gap-3 not-prose">
  <Card title="All Email delivery errors" description="Every code in this category in one table." href="/errors/category/email" />
  <Card title="Error reference home" description="Browse every category or jump to the handling guide." href="/errors" />
</div>

---

Full OpenAPI spec: https://docs.beel.es/api/openapi