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

# Check domain availability

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Checks whether a domain can be registered through Base44, and suggests similar ones.

The first entry in `results` is always the domain you asked about, followed by up to five suggestions. A premium domain, or one containing a social media platform's name, comes back as unavailable because Base44 can't sell it.

The check asks Wix, so it fails while Wix's domain search is unavailable. Retrying later is safe.

Checking is limited to 12 requests a minute per caller. Some workspaces have a different limit.



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/custom-domains/availability
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/custom-domains/availability:
    get:
      summary: Check domain availability
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Checks whether a domain can be registered through Base44, and suggests
        similar ones.


        The first entry in `results` is always the domain you asked about,
        followed by up to five suggestions. A premium domain, or one containing
        a social media platform's name, comes back as unavailable because Base44
        can't sell it.


        The check asks Wix, so it fails while Wix's domain search is
        unavailable. Retrying later is safe.


        Checking is limited to 12 requests a minute per caller. Some workspaces
        have a different limit.
      operationId: >-
        get_domain_availability_api_apps__app_id__custom_domains_availability_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app you're finding a domain for.
            title: App Id
          description: ID of the app you're finding a domain for.
          example: 6820f3a4e7b91d003c45a1f2
        - name: domain
          in: query
          required: true
          schema:
            type: string
            description: Domain to check, such as `example.com`.
            title: Domain
          description: Domain to check, such as `example.com`.
          example: nordwind-furniture.com
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainAvailabilityCheck'
        '400':
          description: '`domain` isn''t a valid domain name.'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, or you used a workspace API key.
            These endpoints take a personal API key.
        '404':
          description: App not found.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit reached. Retry later.
      security:
        - PersonalAccessTokenAuth:
            - read_only
components:
  schemas:
    DomainAvailabilityCheck:
      properties:
        query:
          type: string
          title: Query
          description: The domain you asked about, normalized to lower case.
          example: nordwind-furniture.com
        results:
          items:
            $ref: '#/components/schemas/DomainAvailabilityCheckResult'
          type: array
          title: Results
          description: >-
            The domain you asked about, first, followed by up to five
            suggestions.
      type: object
      required:
        - query
        - results
      title: DomainAvailabilityCheck
      description: Whether a domain can be registered, with similar domains that can.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    DomainAvailabilityCheckResult:
      properties:
        domain:
          type: string
          title: Domain
          description: The domain this entry is about.
          example: nordwind-furniture.com
        available:
          type: boolean
          title: Available
          description: Whether Base44 can register the domain (`true`) or not (`false`).
          example: true
        reason:
          anyOf:
            - type: string
              enum:
                - premium
                - unavailable
            - type: 'null'
          title: Reason
          description: >-
            Why the domain can't be registered, or `null` when it can. Either
            `premium`, a premium-priced domain Base44 doesn't sell, or
            `unavailable` for every other reason.
          example: premium
      type: object
      required:
        - domain
        - available
      title: DomainAvailabilityCheckResult
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: >-
        Personal access token, sent as `Authorization: Bearer <token>`. Each
        operation lists the permission it needs: `read_only` or `full_access`. A
        full-access token can call every operation. A read-only token can call
        only the operations that list `read_only`; anything else returns 403
        `read_only_credential_route_not_allowed`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.