Cheapest Domains Popularity API

The Popularity API from Cheapest Domains — 1 operation(s) for popularity.

Operations 1

GET /api/v1/popularity Get domain DNS popularity #

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/cheapest-domains:cheapest-domains-popularity-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

cheapest-domains-popularity-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cheapest Domains public Popularity API
  version: 1.13.0
  description: Lowest standard prices among connected registrars with saved offers matching the query, including labeled samples and labeled registrar API rates; offers that couldn’t be refreshed for a day stay, with their age, until a newer catalog replaces them. Coverage is not the whole market. Public GET-only research access, no authentication. Exact-name availability has a separate provider-scoped endpoint. No purchase, renewal, transfer, or account operations. Query current prices instead of relying on remembered values.
servers:
- url: https://www.cheapest.domains
security: []
tags:
- name: Popularity
paths:
  /api/v1/popularity:
    get:
      operationId: get_domain_popularity
      summary: Get domain DNS popularity
      description: Look up one exact domain in Cloudflare Radar’s global DNS popularity ranking. Returns an exact top-100 rank or a broader popularity group, categories, locations, data dates, and CC BY-NC 4.0 attribution. Not Google SEO difficulty, name competition, or availability. Missing data does not indicate zero competition.
      security: []
      parameters:
      - name: name
        in: query
        required: true
        description: One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers.
        schema:
          type: string
          pattern: ^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$
          maxLength: 63
          description: One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers.
      - name: tld
        in: query
        required: true
        description: One covered ASCII top-level extension, such as com or .com. Multi-part suffixes and IDNs are not covered.
        schema:
          type: string
          pattern: ^\.?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$
          maxLength: 64
          description: One covered ASCII top-level extension, such as com or .com. Multi-part suffixes and IDNs are not covered.
      responses:
        '200':
          description: Success. Inspect coverage, stale flags, minimum terms and pagination.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Popularity'
        '400':
          description: Invalid, repeated, unknown, or incompatible parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Endpoint, covered TLD, or connected registrar not found. Not a domain availability result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: 'Request budget or concurrency limit reached. Anonymous calls spend weighted read units: 120 units/minute (burst 30) and 3,000/UTC day per network bucket, within a shared 600/minute (burst 120) and 30,000/UTC-day site-wide cap. Price searches rank the whole saved catalog and cost 10 units each; extension, registrar-coverage, estimate and registrar-link endpoints read one extension or source metadata and cost 1 unit, like other requests. Responses served from the CDN cache spend nothing. Each availability or popularity lookup spends 1 unit more plus one lookup from a separate allowance of 10 lookups/minute (burst 4), 300/UTC day and 3,000 per aligned 32-day window. Shared networks can share a bucket, and provider concurrency limits can also answer 429. Wait for the Retry-After seconds before retrying; do not poll.'
          headers:
            Retry-After:
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Fresh pricing unavailable. Retry after 60 seconds; inspect registrar coverage.
          headers:
            Retry-After:
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Popularity
components:
  schemas:
    Popularity:
      type: object
      required:
      - service
      - apiVersion
      - domain
      - status
      - reason
      - message
      - rank
      - bucket
      - reportedBucket
      - categories
      - topLocations
      - dataPeriod
      - fetchedAt
      - expiresAt
      - source
      - limits
      properties:
        service:
          $ref: '#/components/schemas/ServiceInformation'
        apiVersion:
          type: string
        domain:
          type: string
        status:
          type: string
          enum:
          - ranked
          - not_listed
          - unknown
        reason:
          type: string
        message:
          type: string
        rank:
          type:
          - integer
          - 'null'
          minimum: 1
          maximum: 100
          description: Exact global DNS popularity rank, only for the top 100. Not a Google rank.
        reportedBucket:
          type:
          - string
          - 'null'
          description: Provider bucket as supplied, including lower-bound markers such as >200000. A lower bound is not an exact rank or proof of traffic.
        bucket:
          type:
          - integer
          - 'null'
          enum:
          - null
          - 200
          - 500
          - 1000
          - 2000
          - 5000
          - 10000
          - 20000
          - 50000
          - 100000
          - 200000
          - 500000
          - 1000000
          description: Top-N popularity group, without an exact position inside it. Null does not mean zero competition.
        categories:
          type: array
          items:
            type: string
        topLocations:
          type: array
          maxItems: 5
          items:
            type: object
            required:
            - code
            - name
            - rank
            properties:
              code:
                type: string
              name:
                type: string
              rank:
                type: integer
                minimum: 1
        dataPeriod:
          type:
          - object
          - 'null'
          required:
          - start
          - end
          properties:
            start:
              type: string
              format: date-time
            end:
              type: string
              format: date-time
        fetchedAt:
          type:
          - string
          - 'null'
          format: date-time
        expiresAt:
          type:
          - string
          - 'null'
          format: date-time
          description: Six-hour application cache expiry, not the dataset publication date.
        source:
          type: object
          required:
          - id
          - name
          - url
          - documentation
          - license
          - licenseUrl
          - attribution
          properties:
            id:
              const: cloudflare-radar
            name:
              const: Cloudflare Radar
            url:
              type: string
              format: uri
            documentation:
              type: string
              format: uri
            license:
              const: CC BY-NC 4.0
            licenseUrl:
              const: https://creativecommons.org/licenses/by-nc/4.0/
            attribution:
              type: string
        limits:
          type: array
          items:
            type: string
    Error:
      type: object
      required:
      - apiVersion
      - error
      properties:
        apiVersion:
          type: string
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
            message:
              type: string
            retryAfterSeconds:
              type: number
              minimum: 0
    ServiceInformation:
      type: object
      required:
      - name
      - url
      - setupUrl
      - pluginUrl
      description: Cheapest Domains identity and optional setup links, separate from upstream evidence. Does not establish client installation or provider health.
      properties:
        name:
          const: Cheapest Domains
        url:
          type: string
          format: uri
        setupUrl:
          type: string
          format: uri
        pluginUrl:
          type: string
          format: uri
externalDocs:
  description: Human and AI integration guide
  url: https://www.cheapest.domains/developers