> ## Documentation Index
> Fetch the complete documentation index at: https://www.billingserv.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Check Domain Availability

> Checks the configured registrar for the enabled domain extensions that match a name. Send the domain name without an extension, such as `billingserv`, to check up to 50 extensions. The endpoint is limited to 30 requests per minute per client.

Use this endpoint to search the domain extensions enabled in your BillingServ account. Send the domain name without an extension, such as `billingserv`, and BillingServ checks availability with the configured registrar.

The `limit` field is optional. It accepts values from 1 to 50 and defaults to 50. The endpoint is limited to 30 requests per minute per client.

For the complete search and checkout flow, see the [Domain Search and Hosted Checkout API Guide](/docs/guides/domain-api-checkout).


## OpenAPI

````yaml POST /domain/lookup
openapi: 3.1.0
info:
  title: BillingServ API V2
  description: >-
    Resources and tools for developers to integrate with the BillingServ v2 API,
    including customer management, domain availability, hosted checkout,
    billing, and service operations. v1 is deprecated; use the v2 base URL and
    bearer-token authentication unless an endpoint states otherwise.
  version: '2.0'
servers:
  - url: https://demo.onlinebillingform.com/api/v2
    description: BillingServ demo API
security:
  - bearerAuth: []
tags:
  - name: Customer
  - name: Package
  - name: Group
  - name: Country
  - name: County
  - name: VPN
  - name: Invoice
  - name: Order
  - name: Module
  - name: Report
  - name: Marketing
  - name: Setting
  - name: Checkout
  - name: Domain
    description: Search enabled domain extensions and check domain availability.
  - name: Usage
  - name: Support
  - name: Licensing
  - name: Webhooks
    description: Outbound events sent by BillingServ to a configured customer endpoint.
paths:
  /domain/lookup:
    post:
      tags:
        - Domain
      summary: Check domain availability
      description: >-
        Checks the configured registrar for the enabled domain extensions that
        match a name. Send the domain name without an extension, such as
        `billingserv`, to check up to 50 extensions. The endpoint is limited to
        30 requests per minute per client.
      operationId: POST_domain_lookup
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DomainLookupRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DomainLookupRequest'
      responses:
        '200':
          description: Availability results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainLookupResponse'
              example:
                success: true
                domain: billingserv
                registrar: openprovider
                results:
                  - domain: billingserv.co.uk
                    extension: co.uk
                    available: true
                    premium: false
                  - domain: billingserv.com
                    extension: com
                    available: false
                    premium: false
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                errors: Invalid API Key
        '403':
          description: Authenticated key does not have permission for this endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                errors: Insufficient permissions for this endpoint.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              example:
                success: false
                errors:
                  - Enter a domain name without the extension, such as example.
        '429':
          description: >-
            Too many domain availability requests. Retry after the rate limit
            window.
      security:
        - bearerAuth: []
components:
  schemas:
    DomainLookupRequest:
      type: object
      description: >-
        Search for a domain name without its extension. The API normalizes
        surrounding whitespace and letter casing.
      properties:
        domain:
          type: string
          maxLength: 63
          pattern: ^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$
          description: >-
            Domain name without an extension, such as `billingserv`. Do not
            include `.com` or another extension.
        limit:
          type: integer
          minimum: 1
          maximum: 50
          default: 50
          description: Maximum number of enabled extensions to check.
      required:
        - domain
      additionalProperties: false
    DomainLookupResponse:
      type: object
      properties:
        success:
          type: boolean
          const: true
        domain:
          type: string
          description: Normalized domain name that was searched.
        registrar:
          type: string
          description: Registrar used for this availability check.
        results:
          type: array
          items:
            $ref: '#/components/schemas/DomainAvailabilityResult'
      required:
        - success
        - domain
        - registrar
        - results
      additionalProperties: true
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          const: false
        errors:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
            - type: object
              additionalProperties: true
      additionalProperties: true
    ValidationErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          const: false
        errors:
          oneOf:
            - type: array
              items:
                type: string
            - type: object
              additionalProperties: true
            - type: string
      additionalProperties: true
    DomainAvailabilityResult:
      type: object
      properties:
        domain:
          type: string
          description: Complete domain name checked by the registrar.
        extension:
          type: string
          description: Domain extension, without a leading dot.
        available:
          type: boolean
        premium:
          type: boolean
          description: Whether the registrar marked the domain as premium.
      required:
        - domain
        - extension
        - available
        - premium
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: 'Use `Authorization: Bearer <live_api_key>`.'

````