Skip to content

product

Domain sales API for comparable sales and estimates

The SoldComparables domain sales API returns, for any domain name, a list of real recorded comparable sales with a relevance score, plain reasons and a source link for each, plus a low, likely and high value estimate, as JSON over HTTPS. It is part of the Broker plan, with 5,000 calls per month.

It is the same engine as the domain appraisal tool, so a marketplace, a portfolio tool or a broker's internal system can show comps and a defensible price next to a name without anyone copying numbers by hand.

Who can use the API

The API is included only in the Broker plan ($399 per month, or $199 per month billed yearly at $2,388). The plan includes 5,000 API calls per month. Calls count as usage in the billing period: every call that returns a result is counted, and deleting anything in the panel does not give calls back. When the workspace reaches 5,000 calls in the period, further calls return HTTP 429 until the next billing period starts. There is no unlimited tier and no separate API plan. See pricing for the full plan comparison.

Authentication

Every request carries an API key in the Authorization header:

Authorization: Bearer <key>

Keys are created in the panel by a workspace member with the right role. A key is shown in full once, when you create it. We store only a hash of it, so we cannot show it again; if you lose it, create a new one and revoke the old one. You can revoke a key at any time, and a revoked key stops working on the next call. Keys belong to the workspace, so all keys share the same monthly limit.

Keep keys on your server. Never put a key in public code, a browser application or a mobile app. How keys and other data are protected is described on the security page.

Base URL

https://soldcomparables.com/api/v1

All requests use HTTPS. Responses are JSON in UTF-8.

Get comparable sales and an estimate

GET /api/v1/comps?domain=crons.ai

Parameters

Parameter Required Description
domain yes The name to price, such as crons.ai. Scheme, www and path are removed. Without an extension, .com is assumed.
tld no Restrict comps to extensions, such as ai or com,io. Default is the engine's own choice of same and related extensions.
min_price no Minimum sale price in USD. Every recorded sale is at least 1,000.
max_price no Maximum sale price in USD.
from no Earliest sale date, YYYY-MM-DD.
to no Latest sale date, YYYY-MM-DD.
tier no wholesale, retail or any. Default any.
style no exact, brandable or any. Default any.
max_length no Maximum length of the name before the extension.
limit no Number of comps to return, up to 100.

Example request

curl -s "https://soldcomparables.com/api/v1/comps?domain=crons.ai&tier=any&limit=3" \
  -H "Authorization: Bearer YOUR_KEY"

Example response

The response below is trimmed to three comps. The sale rows are real recorded sales from the corpus with their venues, dates and source links. The ids, the estimate values and total_candidates are placeholders that show the format, not a real result.

{
  "query": "crons.ai",
  "domain": "crons.ai",
  "features": {
    "sld": "crons",
    "tld": "ai",
    "length": 5,
    "tokens": ["crons"],
    "plural": true,
    "singular": "cron",
    "term_class": "Developer term",
    "style": "Exact match",
    "labels": ["5 letters", ".ai", "Plural", "Developer term"]
  },
  "comps": [
    {
      "id": 101,
      "domain": "server.ai",
      "price_usd": 29400,
      "sold_at": "2025-02-25",
      "venue": "Namecheap",
      "tier": "wholesale",
      "tier_label": "Expired auction / investor venue",
      "source_name": "NamePros daily sales report",
      "source_url": "https://www.namepros.com/threads/food-ai-sold-for-55-500-lise-com-for-50-000.1347102/",
      "length": 6,
      "tld": "ai",
      "plural": false,
      "term_class": "Developer term",
      "relevance": 84,
      "reasons": ["Same .ai extension", "Developer term", "Similar length"]
    },
    {
      "id": 102,
      "domain": "kernel.ai",
      "price_usd": 14599,
      "sold_at": "2024-10-08",
      "venue": "Dynadot",
      "tier": "wholesale",
      "tier_label": "Expired auction / investor venue",
      "source_name": "NamePros daily sales report",
      "source_url": "https://www.namepros.com/threads/citizenhealth-com-sold-for-17-150-predictive-ai-for-16-100.1336742/",
      "length": 6,
      "tld": "ai",
      "plural": false,
      "term_class": "Developer term",
      "relevance": 81,
      "reasons": ["Same .ai extension", "Developer term", "Similar length"]
    },
    {
      "id": 103,
      "domain": "webhook.ai",
      "price_usd": 2424,
      "sold_at": "2025-10-08",
      "venue": "Namecheap",
      "tier": "wholesale",
      "tier_label": "Expired auction / investor venue",
      "source_name": "NamePros daily sales report",
      "source_url": "https://www.namepros.com/threads/fintiv-com-sold-for-117-000-gettingonboard-org-for-41-050.1365219/",
      "length": 7,
      "tld": "ai",
      "plural": false,
      "term_class": "Developer term",
      "relevance": 76,
      "reasons": ["Same .ai extension", "Developer term", "Recent sale"]
    }
  ],
  "estimate": {
    "low": 3000,
    "likely": 8000,
    "high": 20000,
    "wholesale": 6000,
    "retail": null,
    "confidence": "Medium",
    "comps_used": [101, 102, 103],
    "rationale": "Short developer-term .ai names sold between 2,424 USD (webhook.ai, Namecheap, 2025-10-08) and 29,400 USD (server.ai, Namecheap, 2025-02-25). Crons.ai is plural, which usually sells for less than the singular form.",
    "movers": [
      "What would raise it: a buyer building a scheduling or job queue product",
      "What would lower it: the plural form and no retail comps"
    ],
    "enough": true
  },
  "total_candidates": 214,
  "corpus_size": 128867,
  "newest_sale": "2026-05-28"
}

Response fields

Field Meaning
query, domain What you sent and the normalised name that was priced
features Length, extension, words, singular or plural, term class, style and short labels
comps Comparable sales, most relevant first
comps[].relevance Score from 0 to 100
comps[].reasons Up to 3 plain reasons the sale was chosen
comps[].tier, tier_label wholesale, retail or mixed, with the label shown in the product
comps[].source_url Link to the public report the sale came from
estimate.low, likely, high Value range in USD, or null when there are no usable comps
estimate.wholesale, retail Figures from investor venues and end-user marketplaces, or null when a tier has no comps
estimate.confidence High, Medium or Low
estimate.rationale Plain English explanation citing comps by name, price and date
estimate.movers What would raise and what would lower the value
estimate.enough false when there are fewer than 3 good comps, in which case the range is wider and confidence lower
total_candidates How many sales were considered before ranking
corpus_size, newest_sale Size of the corpus and date of the latest recorded sale

When no comparable recorded sale exists above 1,000 USD, the estimate values are null, enough is false, and the rationale says that names like this usually trade below that. The API never returns an invented figure. How each part is built is explained in the methodology.

Errors

Status When What to do
401 Missing, wrong or revoked key, or a workspace without the Broker plan Check the header and the key in the panel
422 Invalid parameters, such as a missing domain, a malformed date or limit above 100 Fix the parameter named in the error message
429 The workspace used its 5,000 calls for the period, or calls arrive too fast Wait for the next period or slow down

Errors return JSON with a message field that explains the problem.

Attribution when you display sales

If you show sales returned by the API to anyone outside your workspace, on a listing page, in a report or in your own tool, keep the venue and the source link with each sale. The sales come from public reports, and the link lets your users check them. The API is for use in your own product and workflows. Reselling the sales data, bulk copying it into another database or sharing keys outside your workspace is not allowed under the terms of service.

How SoldComparables serves the API

The API calls the same comps engine as the website: the same corpus of 128,867 recorded sales from 28 May 2021 to 28 May 2026, the same semantic similarity scoring and the same estimate. A result on the API matches what a Broker workspace sees for the same name and filters in the panel.

To try the engine first, run a search with the domain appraisal tool, then see pricing for the Broker plan.

Questions people ask

Something else? Write to [email protected].

Is there an API for domain sales data?
Yes. The SoldComparables domain sales API returns real comparable sales with relevance, reasons, venue, date and source link, plus a low, likely and high estimate, as JSON. It is included in the Broker plan with 5,000 calls per month, using a key sent in the Authorization header as a Bearer token.
How many API calls does the Broker plan include?
The Broker plan includes 5,000 API calls per month, counted as usage in the billing period. Every call that returns a result counts, and deleting anything in the panel does not give calls back. Once the workspace reaches the limit, calls return HTTP 429 until the next billing period starts.
How do I authenticate with the SoldComparables API?
Create a key in the panel and send it in every request as Authorization: Bearer followed by the key. The key is shown once and stored only as a hash, so keep it safe on your server. You can revoke a key at any time, and a revoked key returns 401 on the next call.
Can I show API results on my own website?
Yes, within your own product and workflows. Each sale you display must keep its venue and source link, because the sales come from public reports and the link lets users check them. Reselling the sales data, copying it in bulk into another database or sharing keys outside your workspace is not allowed.
What does the API return when there are no comparable sales?
When no comparable recorded sale exists above 1,000 USD, the estimate values are null, the enough field is false and the rationale says that names like this usually trade below that. The API never returns an invented figure, and it marks thin results with a wider range and lower confidence.

Price your next name from what actually sold

One search shows the closest recorded sales and the range they support. Plans from $24 a month billed yearly.

Find comps for a domain