---
title: "Check a domain now"
description: "Checks the domain’s DNS at once and returns it with what the check found. On an unverified domain that is the verification records, and on a verified one the signing records and whether mail from it can be sent. No body."
url: "https://openemail.uk/docs/api/domains/verify"
area: "API"
category: "Mailbox"
---

# Check a domain now

Checks the domain’s DNS at once and returns it with what the check found. On an unverified domain that is the verification records, and on a verified one the signing records and whether mail from it can be sent. No body.

`POST /domains/{id}/verify`

## POST /domains/{id}/verify

Checks the domain’s DNS at once and returns it with what the check found. On an unverified domain that is the verification records, and on a verified one the signing records and whether mail from it can be sent. No body.

## Example

Needs `domains:write`. A key limited to particular addresses or domains needs to hold the whole domain.

**curl**

```
curl -X POST "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/verify" -H "$AUTH"
```

**Response**

```
{
  "object": "domain",
  "id": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f",
  "domain": "acme.com",
  "receiving": {
    "verified": true,
    "verifiedAt": "2026-09-25T10:14:40.000Z",
    "catchAll": true,
    "lastCheckedAt": "2026-09-25T10:14:40.000Z",
    "error": null
  },
  ...
}
```

> A check that ran in the last 10 seconds is not repeated. The call then returns the domain as it stands, so calling it in a tight loop costs nothing and checks nothing new.

> DNS changes take time to reach every resolver. A record published a minute ago can read as `missing` here and `found` a little later, so a failed check is not a reason to change a correct record.
