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



## OpenAPI

````yaml /api-reference/openapi.json 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>`.'

````