---
title: "Verify domain nameservers"
method: POST
path: "/v1/domains/check-ns"
tags: ["Domains"]
---

# Verify domain nameservers

`POST /v1/domains/check-ns`

## Request

- Base URL: `https://api.winnr.app`
- URL: `https://api.winnr.app/v1/domains/check-ns`
- Auth: HTTP bearer

Check whether domains have their nameservers correctly pointed to Winnr.
When verified, automatically queues the domain for provisioning
(DNS records, email setup, etc.).

## Request body

- object
  - `domains` string[], required: List of domain names to check

## Response `200`

NS check results

- object
  - `meta` Meta
    - `request_id` string
    - `timestamp` string, date-time
  - `data` object
    - `domains` object[]
      - `domain` string
      - `domain_id` string
      - `status` 'verified' | 'failed' | 'not_found' | 'already_complete' | 'error'
      - `message` string
      - `verified` boolean
      - `nameservers` string[]
      - `ns_unavailable_reason` string, nullable: Set when `nameservers` is empty because the domain's DNS provider has no nameservers for the customer to set (their own Cloudflare account, manual DNS, or Route 53). Clients should render this instead of a loading placeholder. Exactly one of `nameservers` (non-empty) or this field is meaningful.
      - `current_ns` string[]
    - `all_verified` boolean

## Other responses

- `400`: Validation error
- `401`: Authentication required or token invalid

---

[API](https://skmtc.dev/winnr/apis/winnr-api.md) · [All operations](https://skmtc.dev/winnr/apis/winnr-api/llms.txt) · [OpenAPI document](https://skmtc.dev/winnr/apis/winnr-api/revisions/a4f960beb1eb?raw)
