# Domain Check

Check a bare domain for disposable-provider indicators and mail DNS. Use the [email endpoint](https://docs.disify.com/api/email.md) for checks against known disposable accounts and plus-alias patterns.

## Endpoints

`GET /api/domain/{domain}`
`POST /api/domain`

## GET request

```bash
curl https://disify.com/api/domain/disposable-inbox.test
```

## POST request


**cURL**

```bash
curl -X POST https://disify.com/api/domain \
     -d "domain=disposable-inbox.test"
```

**Python**

```python
import requests

response = requests.post("https://disify.com/api/domain", data={
    "domain": "disposable-inbox.test"
})
print(response.json())
```

**JavaScript**

```javascript
const response = await fetch("https://disify.com/api/domain", {
  method: "POST",
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
  body: new URLSearchParams({ domain: "disposable-inbox.test" })
});
const data = await response.json();
```


These snippets show request encoding. Use the [Quick Start](https://docs.disify.com/guide/quickstart.md) for timeout, HTTP status, and response checks before making a validation decision.

### POST parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `domain` | string | The domain name to validate |
| `features` | string | Optional comma-separated [premium checks](https://docs.disify.com/guide/premium-features.md), subject to plan access. |
| `block_privacy_relays` | boolean | Paid option: reject known privacy relays. Omit to use the key/account setting; explicit `false` allows relays for this request. Also accepts `1` or `0`. |

Paid domain checks automatically include `forwarding` and the nullable `blocked` decision for valid-format input. [Privacy Forwarding](https://docs.disify.com/api/forwarding.md) explains the distinction from disposable mail, domain/MX coverage, and request overrides. These options also work in query parameters.

## Response

Illustrative core response. Paid plans also include the [forwarding fields](https://docs.disify.com/api/response-fields.md#paid-privacy-forwarding).

```json
{
  "format": true,
  "domain": "disposable-inbox.test",
  "disposable": true,
  "dns": false,
  "whitelist": false,
  "confidence": 100,
  "signals": ["keyword_match", "no_mx_records"],
  "domain_info": { "tld": "test", "is_subdomain": false, "parent_domain": null },
  "role": false,
  "free": false
}
```

**Pass a bare domain**

Send `example.com`, not `user@example.com` or a URL. This endpoint does not extract a domain from a full address. `role` is always `false` in domain mode.

See [Response Fields](https://docs.disify.com/api/response-fields.md) for the full field reference.

Source: https://docs.disify.com/api/domain.html
