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

# [TLDs] List available TLDs

> Retrieve a paginated list of all supported top-level domains (TLDs) with their pricing information. Each TLD includes registration, renewal, and transfer prices along with any special requirements or restrictions. Use this endpoint to discover available TLDs and their associated costs before initiating domain registration.



## OpenAPI

````yaml https://api.onetsolutions.net/schema get /v1/domains/tlds
openapi: 3.0.3
info:
  title: OnetSolutions API
  version: v1 (v1)
  description: >

    ## Overview


    The OnetSolutions API provides programmatic access to manage your cloud
    infrastructure, domains, and web hosting services.


    ## Authentication


    All API requests require authentication using one of the following methods:


    - **JWT Token**: Obtain a token via login endpoints and include it in the
    `Authorization: Bearer <token>` header

    - **API Key**: Generate an API key from your account settings and use it as
    `Authorization: Bearer sk-onetsolutions-...`


    ## Rate Limiting


    API requests are rate-limited to ensure fair usage:

    - **Standard**: 1000 requests per minute

    - **Burst**: 100 requests per second


    ## Pagination


    List endpoints return paginated results. Use `page` and `page_size` query
    parameters.


    ## Error Handling


    The API uses standard HTTP status codes:

    - `200` Success

    - `201` Created

    - `400` Bad Request

    - `401` Unauthorized

    - `403` Forbidden

    - `404` Not Found

    - `429` Too Many Requests
servers:
  - url: https://api.onetsolutions.net
    description: Production
security: []
tags:
  - name: Authentication
    description: >-
      Login, passwordless authentication, MFA, OAuth providers, and token
      management.
  - name: Organizations
    description: >-
      Organization management, members, roles, modules, audit logs, and
      notification settings.
  - name: Projects
    description: Project management, team members, and project-scoped resources.
  - name: Compute
    description: >-
      Cloud instances, volumes, snapshots, backups, VPCs, firewalls, SSH keys,
      uptime monitors, and instance tasks.
  - name: Domains
    description: >-
      Domain availability, registration, transfers, DNS zones, DNS records, and
      TLD information.
  - name: Web Hosting
    description: >-
      cPanel-based web hosting, emails, databases, subdomains, FTP accounts,
      addon domains, and SSL certificates.
paths:
  /v1/domains/tlds:
    get:
      tags:
        - Domains
      summary: '[TLDs] List available TLDs'
      description: >-
        Retrieve a paginated list of all supported top-level domains (TLDs) with
        their pricing information. Each TLD includes registration, renewal, and
        transfer prices along with any special requirements or restrictions. Use
        this endpoint to discover available TLDs and their associated costs
        before initiating domain registration.
      operationId: list_tlds
      parameters:
        - in: query
          name: category
          schema:
            type: string
            enum:
              - country
              - generic
              - new
          description: >-
            Filter by category: 'generic', 'country', or 'new'. Example:
            ?category=generic
        - in: query
          name: is_registration_available
          schema:
            type: boolean
          description: >-
            Filter by registration availability. Example:
            ?is_registration_available=true
        - in: query
          name: is_transfer_available
          schema:
            type: boolean
          description: >-
            Filter by transfer availability. Example:
            ?is_transfer_available=true
        - name: page
          required: false
          in: query
          description: A page number within the paginated result set.
          schema:
            type: integer
        - name: page_size
          required: false
          in: query
          description: Number of results to return per page.
          schema:
            type: integer
        - in: query
          name: search
          schema:
            type: string
          description: 'Search in TLD name and display name. Example: ?search=com'
        - in: query
          name: tld
          schema:
            type: string
          description: 'Filter by exact TLD extension (case-insensitive). Example: ?tld=com'
        - in: query
          name: tld_contains
          schema:
            type: string
          description: 'Filter by TLD containing this string. Example: ?tld_contains=co'
        - in: query
          name: transfer_lock_available
          schema:
            type: boolean
          description: >-
            Filter by transfer lock availability. Example:
            ?transfer_lock_available=true
        - in: query
          name: whois_privacy_available
          schema:
            type: boolean
          description: >-
            Filter by WHOIS privacy availability. Example:
            ?whois_privacy_available=true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTLDList'
          description: Successfully retrieved the list of available TLDs with pricing
        '401':
          description: Authentication credentials were not provided or are invalid
      security:
        - BearerAuth: []
        - {}
components:
  schemas:
    PaginatedTLDList:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/TLD'
    TLD:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        tld:
          type: string
          maxLength: 63
        display_name:
          type: string
          maxLength: 100
        category:
          enum:
            - generic
            - country
            - new
            - premium
          type: string
          description: |-
            * `generic` - generic
            * `country` - country
            * `new` - new
            * `premium` - premium
          x-spec-enum-id: b2fdc0e367c310e1
        is_active:
          type: boolean
        is_registration_available:
          type: boolean
        is_transfer_available:
          type: boolean
        whois_privacy_available:
          type: boolean
        whois_privacy_price:
          type: string
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        transfer_lock_available:
          type: boolean
        min_registration_years:
          type: integer
          maximum: 4294967295
          minimum: 0
          format: int64
        max_registration_years:
          type: integer
          maximum: 4294967295
          minimum: 0
          format: int64
        pricing:
          type: array
          items:
            $ref: '#/components/schemas/TLDPricing'
          readOnly: true
      required:
        - category
        - display_name
        - id
        - pricing
        - tld
    TLDPricing:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        years:
          type: integer
          maximum: 4294967295
          minimum: 0
          format: int64
        registration_price:
          type: string
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        renewal_price:
          type: string
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        transfer_price:
          type: string
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
      required:
        - id
        - registration_price
        - renewal_price
        - transfer_price
        - years
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: >-
        Use `Authorization: Bearer <token>` header. Token can be a JWT token or
        an API key (format: `sk-onetsolutions-...`).

````