---
title: "Check domains for the Cloudflare token flow"
method: POST
path: "/v1/domains/check-provider"
tags: ["Domains"]
---

# Check domains for the Cloudflare token flow

`POST /v1/domains/check-provider`

## Request

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

Probe every domain in the batch (capped at 20, RDAP lookups in
parallel) for two Cloudflare signals: registered at Cloudflare
Registrar (nameservers cannot be moved — token flow required) and
nameservers pointing at Cloudflare (token flow is the fast path).
The legacy single-`domain` body form is still accepted; top-level
`domain`/`registrar`/`nameservers` mirror the first domain.

## Request body

- object
  - `domains` string[]: Domain names to check (max 20 probed)
  - `domain` string: Legacy single-domain form

## Response `200`

Provider signals detected

- object
  - `meta` Meta
    - `request_id` string
    - `timestamp` string, date-time
  - `data` object
    - `is_cloudflare` boolean: Aggregate — any domain is Cloudflare-registered or on Cloudflare nameservers (show the token prompt)
    - `cloudflare_registrar_domains` string[]: Domains registered at Cloudflare Registrar (cannot change nameservers)
    - `cloudflare_ns_domains` string[]: Domains on Cloudflare nameservers but registered elsewhere
    - `results` object[]
      - `domain` string
      - `registrar` string
      - `is_cloudflare` boolean
      - `ns_cloudflare` boolean
      - `nameservers` string[]
    - `domain` string: First domain of the batch (legacy)
    - `registrar` string: First domain's registrar from RDAP (legacy)
    - `nameservers` string[]: First domain's nameservers (legacy)

## 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)
