_done domain availability API

The domain availability API from _done — 1 operation(s) for domain availability.

Operations 1

POST /check Look up whether domain names are registered using official RDAP registry data. #

Documentation

📖
Documentation
https://underscoredone.com/asn_lookup/
📖
APIReference
https://underscoredone.com/asn_lookup/
📖
Documentation
https://underscoredone.com/bimi_checker/
📖
APIReference
https://underscoredone.com/bimi_checker/
📖
Documentation
https://underscoredone.com/cors_header_checker/
📖
APIReference
https://underscoredone.com/cors_header_checker/
📖
Documentation
https://underscoredone.com/cpi_report_us/
📖
APIReference
https://underscoredone.com/cpi_report_us/
📖
Documentation
https://underscoredone.com/curl_http_request/
📖
APIReference
https://underscoredone.com/curl_http_request/
📖
Documentation
https://underscoredone.com/directory_submission_lite/
📖
APIReference
https://underscoredone.com/directory_submission_lite/
📖
Documentation
https://underscoredone.com/dmarc_lookup/
📖
APIReference
https://underscoredone.com/dmarc_lookup/
📖
Documentation
https://underscoredone.com/dns_whois_lookup/
📖
APIReference
https://underscoredone.com/dns_whois_lookup/
📖
Documentation
https://underscoredone.com/domain_age_checker/
📖
APIReference
https://underscoredone.com/domain_age_checker/
📖
Documentation
https://underscoredone.com/domain_availability_checker/
📖
APIReference
https://underscoredone.com/domain_availability_checker/
📖
Documentation
https://underscoredone.com/ens_resolver/
📖
APIReference
https://underscoredone.com/ens_resolver/
📖
Documentation
https://underscoredone.com/hackernews_data/
📖
APIReference
https://underscoredone.com/hackernews_data/
📖
Documentation
https://underscoredone.com/hash_hmac/
📖
APIReference
https://underscoredone.com/hash_hmac/
📖
Documentation
https://underscoredone.com/http_header_checker/
📖
APIReference
https://underscoredone.com/http_header_checker/
📖
Documentation
https://underscoredone.com/http_status_checker/
📖
APIReference
https://underscoredone.com/http_status_checker/
📖
Documentation
https://underscoredone.com/json_suite/
📖
APIReference
https://underscoredone.com/json_suite/
📖
Documentation
https://underscoredone.com/leetspeak_translator/
📖
APIReference
https://underscoredone.com/leetspeak_translator/
📖
Documentation
https://underscoredone.com/mortgage_amortization/
📖
APIReference
https://underscoredone.com/mortgage_amortization/
📖
Documentation
https://underscoredone.com/ocr/
📖
APIReference
https://underscoredone.com/ocr/
📖
Documentation
https://underscoredone.com/port_scanner/
📖
APIReference
https://underscoredone.com/port_scanner/
📖
Documentation
https://underscoredone.com/qr_code_generator/
📖
APIReference
https://underscoredone.com/qr_code_generator/
📖
Documentation
https://underscoredone.com/screenshots/
📖
APIReference
https://underscoredone.com/screenshots/
📖
Documentation
https://underscoredone.com/seo_data_extractor/
📖
APIReference
https://underscoredone.com/seo_data_extractor/
📖
Documentation
https://underscoredone.com/shopify_ai_rank_checker/
📖
APIReference
https://underscoredone.com/shopify_ai_rank_checker/
📖
Documentation
https://underscoredone.com/sitemap_url_extractor/
📖
APIReference
https://underscoredone.com/sitemap_url_extractor/
📖
Documentation
https://underscoredone.com/url_uptime_checker/
📖
APIReference
https://underscoredone.com/url_uptime_checker/

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/done-domain-availability-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

done-domain-availability-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Checker domain availability API
  description: 'Give this API up to 10 domain names and it will tell you whether each one has a registration record on file with the official registry. It uses RDAP — the modern, structured replacement for WHOIS — so there is no messy free-text parsing. Each domain comes back labeled ''registered'', ''unregistered'', or ''indeterminate'' (when the registry does not support RDAP for that ending). Important: ''unregistered'' means no record was found, which usually means the name is available — but reserved or premium names can also return no record. This API tells you registration status only; it does not tell you price, premium status, or whether a registrar will actually let you buy the name.'
  version: 1.0.0
  contact:
    name: _done
    url: https://forms.gle/5KzuSFH7p8hHtDmz7
    email: info@underscoredone.com
  x-openapi-url: https://domain-availability-checker.underscoredone.com/openapi.json
  x-logo:
    url: https://underscoredone.com/logo.png
    altText: _done
  x-guidance: 'POST up to 10 plain registrable domain names (like ''example.com'', not ''https://example.com'' or ''sub.example.com'') in the ''domains'' array. Each result has a ''registered'' field: true means a record exists, false means none was found, null means the result could not be determined. A false result does NOT guarantee the domain is purchasable — reserved and premium names can also return false. The ''tld_supported'' field tells you whether RDAP coverage exists for that domain ending; if false, treat the result as inconclusive. Process results one at a time — the API paces lookups to avoid rate limits, so a 10-domain batch may take up to 5 seconds. Never interpret ''unregistered'' as a purchase guarantee; always show the disclaimer to end users.'
  x-ai-instructions: 'POST up to 10 plain registrable domain names (like ''example.com'', not ''https://example.com'' or ''sub.example.com'') in the ''domains'' array. Each result has a ''registered'' field: true means a record exists, false means none was found, null means the result could not be determined. A false result does NOT guarantee the domain is purchasable — reserved and premium names can also return false. The ''tld_supported'' field tells you whether RDAP coverage exists for that domain ending; if false, treat the result as inconclusive. Process results one at a time — the API paces lookups to avoid rate limits, so a 10-domain batch may take up to 5 seconds. Never interpret ''unregistered'' as a purchase guarantee; always show the disclaimer to end users.'
  x-provider: _done — single-purpose utility APIs for developers and AI agents. Pay per call with USDC on Base Mainnet or Solana Mainnet.
  x-pricing:
    model: pay-per-call
    currency: USDC
    network: Base Mainnet or Solana Mainnet
    price: $0.01
  x-keywords:
  - network
  - domain
  - availability
  - checker
  - rdap
  - whois
  - domain-lookup
  - tld
  - registration-status
  - name-search
  - brand-naming
  - ai-agent
  - utility
  - api
  - pay-per-call
  - usdc
  - x402
  x-category: domain availability
  x-provider-url: https://underscoredone.com
  x-agentcash-auth:
    mode: paid
  x-402:
    price: $0.01
    network: eip155:8453
    asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
    pay_to: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
    facilitator: https://api.cdp.coinbase.com/platform/v2/x402
    scheme: exact
    description: 'Give this API up to 10 domain names and it will tell you whether each one has a registration record on file with the official registry. It uses RDAP — the modern, structured replacement for WHOIS — so there is no messy free-text parsing. Each domain comes back labeled ''registered'', ''unregistered'', or ''indeterminate'' (when the registry does not support RDAP for that ending). Important: ''unregistered'' means no record was found, which usually means the name is available — but reserved or premium names can also return no record. This API tells you registration status only; it does not tell you price, premium status, or whether a registrar will actually let you buy the name.'
    mime_type: application/json
    networks:
    - network: eip155:8453
      asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
      pay_to: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
    - network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
      asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
      pay_to: 8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b
servers:
- url: https://domain-availability-checker.underscoredone.com
  description: Production
tags:
- name: domain availability
paths:
  /check:
    post:
      tags:
      - domain availability
      summary: Look up whether domain names are registered using official RDAP registry data.
      description: Look up whether each submitted domain name has a registration record, using the official RDAP registry system.
      operationId: check_check_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckRequest'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckResponse'
              examples:
                success:
                  summary: Successful response
                  value:
                    count: 2
                    results:
                    - domain: example.com
                      registered: true
                      status: registered
                      rdap_source: registry
                      tld_supported: true
                      note: A registration record exists for this domain.
                    - domain: thisnameprobablyhasnorecord12345.ai
                      registered: false
                      status: unregistered
                      rdap_source: registry
                      tld_supported: true
                      note: No registration record found. Usually means unregistered, but reserved or premium names can also return this result.
                    queried_at: '2026-06-26T09:00:00Z'
                    disclaimer: Status reflects whether a registration record exists. It does not confirm price, premium status, or that an 'unregistered' name is purchasable at standard cost.
                    api_version: 1.0.0
        '422':
          description: Unprocessable — a required field is missing or the wrong type. Check the detail field for specifics.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: array
        '402':
          description: Payment required. Send a signed USDC payment on Base Mainnet or Solana Mainnet using the x402 protocol.
          headers:
            X-Payment-Response:
              description: x402 payment challenge — base64-encoded JSON with payment details.
              schema:
                type: string
        '400':
          description: Bad request — your input failed validation or could not be processed. Check the detail field for specifics.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
      x-ai-instructions: 'POST up to 10 plain registrable domain names (like ''example.com'', not ''https://example.com'' or ''sub.example.com'') in the ''domains'' array. Each result has a ''registered'' field: true means a record exists, false means none was found, null means the result could not be determined. A false result does NOT guarantee the domain is purchasable — reserved and premium names can also return false. The ''tld_supported'' field tells you whether RDAP coverage exists for that domain ending; if false, treat the result as inconclusive. Process results one at a time — the API paces lookups to avoid rate limits, so a 10-domain batch may take up to 5 seconds. Never interpret ''unregistered'' as a purchase guarantee; always show the disclaimer to end users.'
      x-guidance: 'POST up to 10 plain registrable domain names (like ''example.com'', not ''https://example.com'' or ''sub.example.com'') in the ''domains'' array. Each result has a ''registered'' field: true means a record exists, false means none was found, null means the result could not be determined. A false result does NOT guarantee the domain is purchasable — reserved and premium names can also return false. The ''tld_supported'' field tells you whether RDAP coverage exists for that domain ending; if false, treat the result as inconclusive. Process results one at a time — the API paces lookups to avoid rate limits, so a 10-domain batch may take up to 5 seconds. Never interpret ''unregistered'' as a purchase guarantee; always show the disclaimer to end users.'
      x-payment-info:
        price:
          fixed:
            mode: fixed
            currency: USD
            amount: '0.01'
        protocols:
        - x402: {}
components:
  schemas:
    CheckResponse:
      properties:
        api_version:
          type: string
          title: Api Version
          description: The version of this API.
          default: 1.0.0
        count:
          type: integer
          title: Count
          description: How many domains were checked.
        results:
          items:
            $ref: '#/components/schemas/DomainResult'
          type: array
          title: Results
          description: One result object for each domain you submitted.
        queried_at:
          type: string
          title: Queried At
          description: The date and time the check was run, in UTC.
        disclaimer:
          type: string
          title: Disclaimer
          description: An important reminder that 'unregistered' does not guarantee a domain is available to purchase.
      type: object
      required:
      - count
      - results
      - queried_at
      - disclaimer
      title: CheckResponse
      example:
        api_version: 1.0.0
        count: 1
        disclaimer: Status reflects whether a registration record exists. It does not confirm price, premium status, or that an 'unregistered' name is purchasable at standard cost.
        queried_at: '2026-06-26T09:00:00Z'
        results:
        - domain: example.com
          note: A registration record exists for this domain.
          rdap_source: registry
          registered: true
          status: registered
          tld_supported: true
    DomainResult:
      properties:
        domain:
          type: string
          title: Domain
          description: The domain name that was checked.
        registered:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Registered
          description: True if a registration record exists, false if none was found, null if the result could not be determined.
        status:
          type: string
          title: Status
          description: One of 'registered', 'unregistered', or 'indeterminate'.
        rdap_source:
          type: string
          title: Rdap Source
          description: Where the lookup was performed — usually 'registry'.
        tld_supported:
          type: boolean
          title: Tld Supported
          description: Whether RDAP is available for this domain ending. If false, treat the result as inconclusive.
        note:
          type: string
          title: Note
          description: A plain-English explanation of the result.
      type: object
      required:
      - domain
      - registered
      - status
      - rdap_source
      - tld_supported
      - note
      title: DomainResult
    CheckRequest:
      properties:
        domains:
          items:
            type: string
          type: array
          maxItems: 10
          minItems: 1
          title: Domains
          description: Between 1 and 10 domain names to check, like 'example.com'. Use the plain domain only — no 'https://', no 'www.', no subdomains.
      type: object
      required:
      - domains
      title: CheckRequest
      example:
        domains:
        - example.com
        - mybrand.ai
        - coolstartup.io
  securitySchemes:
    siwx:
      type: apiKey
      in: header
      name: SIGN-IN-WITH-X
      description: CAIP-122 wallet signature for repeat access after payment
x-payment-accepts:
- scheme: exact
  network: eip155:8453
  payTo: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
  asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
- scheme: exact
  network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
  payTo: 8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b
  asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v