---
title: "Check domain availability"
method: POST
path: "/api/v1/check/domains"
tags: ["Check"]
---

# Check domain availability

`POST /api/v1/check/domains`

## Request

- Base URL: `https://namesniper.pro`
- URL: `https://namesniper.pro/api/v1/check/domains`
- Auth: HTTP bearer

## Request body

- object
  - `name` string, required: Domain name without TLD.
  - `tlds` TLD[]: TLDs to check. Defaults to com, org, net, app, dev, tech, io, co, ai.
  - `details` boolean: Attach a `registration` record (registrar, dates, status, drop stage) to each taken TLD, read from the registry. Adds up to a few seconds. Registrant identity is usually redacted by registries; some ccTLDs publish no registry data and the field is then omitted.

## Response `200`

Domain availability results.

- object
  - `success` unknown
  - `data` object
    - `name` string
    - `domainName` string
    - `results` DomainResult[]
      - `domain` 'com' | 'net' | 'org' | 'io' | 'ai' | 'app' | 'dev' | 'tech' | 'cloud' | 'software' | 'tools' | 'page' | 'network' | 'systems' | 'wiki' | 'codes' | 'co' | 'pro' | 'biz' | 'company' | 'agency' | 'group' | 'team' | 'ventures' | 'capital' | 'global' | 'solutions' | 'services' | 'finance' | 'consulting' | 'marketing' | 'studio' | 'online' | 'site' | 'digital' | 'fun' | 'design' | 'live' | 'media' | 'art' | 'blog' | 'space' | 'video' | 'news' | 'photo' | 'store' | 'shop' | 'market' | 'style' | 'fashion' | 'boutique' | 'deals' | 'sale' | 'gg' | 'social' | 'club' | 'games' | 'community' | 'chat' | 'xyz' | 'me' | 'tv' | 'info' | 'cc' | 'link' | 'one' | 'website' | 'bio' | 'life' | 'vip', required
      - `domainName` string, required
      - `available` boolean, required
      - `status` 'available' | 'taken' | 'uncertain'
      - `checkedAt` string, date-time, required
      - `confidence` number: Confidence level, 0 to 100.
      - `error` string
      - `tier` 1 | 2 | 3: Which checking tier produced the verdict.
      - `checkTime` integer: Time taken in milliseconds.
      - `registration` DomainRegistration: Registry registration record for a taken domain. Present only when the request set `details: true`, the domain is taken, and the registry publishes registration data.
        - `registrar` string
        - `registrantOrg` string: Registrant organisation when the registry publishes it (rare; usually redacted).
        - `registeredAt` string, date-time
        - `expiresAt` string, date-time
        - `updatedAt` string, date-time
        - `status` string[], required: Raw registry status tokens, e.g. "client transfer prohibited".
        - `nameservers` string[], required
        - `dropStage` 'active' | 'expired-grace' | 'redemption' | 'pending-delete': Where the name sits in the expiry / drop lifecycle. Omitted when the expiry date is unknown. Expired names are usually caught by backorder services within seconds of release.
        - `source` 'rdap', required
        - `fetchedAt` string, date-time, required
    - `summary` CheckSummary
      - `totalChecks` integer
      - `available` integer
      - `taken` integer
      - `errors` integer
      - `uncertain` integer: Checks that got no verdict either way (low confidence or errored). Social checks only.
  - `meta` Meta: Standard response metadata.
    - `plan` 'guest' | 'free' | 'day_pass' | 'sniper' | 'pro' | 'business'
    - `duration` integer: Server processing time in milliseconds.
    - `timestamp` string, date-time

## Other responses

- `400`: Invalid request (missing field, bad JSON, or invalid value).
- `401`: Missing or invalid API key.
- `429`: Rate limit or daily quota exceeded. Inspect the `Retry-After` header for how many seconds to wait. Limits are per account, so every key on the account shares them.

---

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