---
title: "Zone Check"
method: POST
path: "/core/v1/zonecheck"
tags: ["Domains"]
---

# Zone Check

`POST /core/v1/zonecheck`

Zone Check offers a rapid, preliminary check for domain availability by leveraging cached zone file data.  Ideal for large-batch queries, it provides a high confidence indication of a domain's availability significantly faster than live registry checks.  For definitive, real-time availability and pricing, you can follow up with the standard [Check Availability](/api/v1/reference/domains/check-availability) call.
The API normalizes and validates each submitted domain string. Domains that fail validation, use an unsupported TLD for this service, or  are otherwise not eligible for zone check are **removed** from the request before the zone file lookup runs. The response includes **only**  a numeric count of removed domains (`removed`); individual removed strings are not returned. A future API version may extend the contract to  include details about removed domains.

For the best results and to avoid `400 Bad Request` errors after cleaning, ensure each domain string meets the criteria described for  `domainNames` in the request body schema.

If no valid domains remain after this process, the API returns a `400 Bad Request` response.
**Note:** The cached zone files used for this check are refreshed twice daily based on the latest available data from the registries.

## Request body

- ZoneCheckRequest — ZoneCheck request checks DNS zone files for the availability of the specified domains.
  - `domainNames` string[], required — Array of domain names to check. Each entry is normalized and validated before zone check runs. Entries that are not valid domain strings, that use unsupported TLDs for this service, or that fail other pre-validation rules are omitted from the check; the response `removed` field reports how many were omitted (not which values). **Valid domain string (after normalization)** — for reliable results and to avoid errors once all entries are removed: - **Allowed characters:** ASCII letters (`a`–`z`), digits (`0`–`9`), and hyphens (`-`). - **Hyphen rules:** A domain (the part between dots) must not start or end with a hyphen (for example, `-test.com` and `test-.com` are invalid). - **Domain length:** Each domain must be between 1 and 63 characters. - **Internationalized domains (IDNs):** Non-ASCII characters (for example `ö` or `ñ`) should be submitted as Punycode (`xn--...`) for consistent registry resolution.

## Response `200`

Successful response for a DNS zone check.

- ZoneCheckResponse — Response for checking domain availability via DNS zone checks.
  - `results` ZoneCheckResult[], required
    - `domainName` string, required — The domain name that was checked
    - `available` boolean, nullable, required — If the domain is potentially available for purchase after checking for it's presense in the DNZ zone files.
  - `total` integer, required — Total number of records checked
  - `removed` integer — Number of domain strings removed during pre-validation (invalid format, unsupported TLD for this service, etc.). This is a count only; the response does not list which strings were removed.

## Other responses

- `400` — Bad request - Invalid input data.
- `401` — Unauthorized.
- `403` — Forbidden - you do not have permission to perform this action.
- `405` — Method not allowed.
- `415` — All POST, PUT, PATCH requests for this API must include the `Content-Type: application/json` header in the requests.
- `422` — Returned when, after cleaning, there were no valid domains passed in the request.
- `429` — Rate limit has been exceeded.
- `500` — Internal server error.
- `502` — There was a temporary error in processing the request. The request can be retried immediately.
- `504` — Gateway Timeout

---

[API](https://skmtc.dev/name/apis/name-com-core-api.md) · [All operations](https://skmtc.dev/name/apis/name-com-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/name/name-com-core-api/revisions/a37d4cbd3991/schema)
