# POST /api/v1/domains/:id/verify

Auth: Bearer

HTML: https://cooperemail.com/docs/reference/domain-verify

## Summary

Check DNS for this domain now. Updates status, per-record status (valid, missing, or invalid), found, and hint, plus warnings. hint is null when that record is valid or no specific mistake was found. Fires domain.verified once when a pending domain becomes verified. At most once per 60 seconds; a second call returns HTTP 429 rate_limited with Retry-After. Another account's id returns 404 domain_not_found. Which records are valid, missing, or invalid is unchanged.

## Request

```json
{}
```

## Response

HTTP 200. Sample values illustrate the schema.

```json
{
  "id": "inb_example",
  "domain": "string",
  "status": "pending",
  "status_detail": "string",
  "mail": {
    "receiving": true,
    "sending": true,
    "inboxes": true
  },
  "records": [
    {
      "role": "mx",
      "type": "MX",
      "host": "string",
      "value": "string",
      "status": "valid",
      "found": [
        "string"
      ],
      "hint": {
        "code": "duplicated_suffix",
        "message": "string"
      }
    }
  ],
  "warnings": [
    {
      "code": "existing_mail_provider",
      "message": "string"
    }
  ]
}
```

## Errors

- HTTP 429 rate_limited
- HTTP 404 domain_not_found

The live `message` is the sentence for that code. Branch on `code`.

```json
{
  "error": {
    "type": "rate_limit",
    "code": "rate_limited",
    "docs_url": "https://cooperemail.com/docs#rate_limited"
  }
}
```

## Idempotency

This route does not document Idempotency-Key or client_id.
