Domain Valuation
Learn more: Domain Valuation API — marketing overview and use cases.
Estimate the market value of any domain name. Returns a price estimate range, confidence score, comparable sales data, and key valuation factors. Available in two tiers: quick (fast estimate) and full (detailed analysis with comparables and explanation).
Pricing
This is a paid endpoint using x402 (HTTP 402) micropayments with USDC on Base.
| Tier | Price |
|---|---|
quick |
$0.02 per request |
full |
$0.08 per request |
See Pricing for details on how x402 payments work.
Endpoint
GET https://api.robotdomainsearch.com/v1/valuation/{domain}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
domain |
string | Yes | Full domain name to value (e.g., example.com). Passed as a path parameter. |
tier |
string | No | Valuation tier: quick (default) or full |
Request
Quick valuation (default)
curl "https://api.robotdomainsearch.com/v1/valuation/example.com"
Full valuation
curl "https://api.robotdomainsearch.com/v1/valuation/example.com?tier=full"
Response
Quick Tier
A concise valuation with estimate range and confidence:
{
"domain": "example.com",
"tier": "quick",
"estimate": {
"low": 5000,
"mid": 12000,
"high": 25000,
"currency": "USD"
},
"confidence": 0.78,
"factors": [
"short_length",
"dot_com",
"dictionary_word",
"high_search_volume"
],
"timestamp": "2026-03-07T15:30:00Z"
}
Full Tier
Detailed analysis with comparable sales, explanation, and key factors:
{
"domain": "example.com",
"tier": "full",
"estimate": {
"low": 5000,
"mid": 12000,
"high": 25000,
"currency": "USD"
},
"confidence": 0.82,
"factors": [
"short_length",
"dot_com",
"dictionary_word",
"high_search_volume"
],
"explanation": "example.com is a premium single-word .com domain. Short dictionary-word .com domains consistently command five-figure prices in the aftermarket. Comparable sales of similar single-word .com domains range from $8,000 to $50,000 depending on commercial appeal and search volume.",
"comparables": [
{
"domain": "sample.com",
"sale_price": 15000,
"sale_date": "2025-09-15",
"source": "namebio"
},
{
"domain": "instance.com",
"sale_price": 9500,
"sale_date": "2025-06-22",
"source": "namebio"
},
{
"domain": "demo.com",
"sale_price": 28000,
"sale_date": "2025-03-10",
"source": "namebio"
}
],
"key_factors": {
"length": 7,
"tld": "com",
"is_dictionary_word": true,
"has_hyphens": false,
"has_numbers": false,
"category": "technology"
},
"timestamp": "2026-03-07T15:30:00Z"
}
Response Fields
Top-Level Fields
| Field | Type | Description |
|---|---|---|
domain |
string | The domain that was valued |
tier |
string | Valuation tier used: quick or full |
estimate |
object | Price estimate range |
confidence |
number | Confidence score (0.0–1.0) |
factors |
array | Valuation factors that influenced the estimate |
explanation |
string | Human-readable analysis (full tier only) |
comparables |
array | Comparable domain sales (full tier only) |
key_factors |
object | Structured domain attributes (full tier only) |
timestamp |
ISO 8601 | When the valuation was generated |
Estimate Object
| Field | Type | Description |
|---|---|---|
low |
integer | Low end of the estimated value (USD) |
mid |
integer | Mid-point estimate (USD) |
high |
integer | High end of the estimated value (USD) |
currency |
string | Currency code (always USD) |
Comparable Object (full tier only)
| Field | Type | Description |
|---|---|---|
domain |
string | Domain that was sold |
sale_price |
integer | Sale price in USD |
sale_date |
string | Date of the sale (YYYY-MM-DD) |
source |
string | Data source for the sale record |
Key Factors Object (full tier only)
| Field | Type | Description |
|---|---|---|
length |
integer | Number of characters in the domain name |
tld |
string | Top-level domain extension |
is_dictionary_word |
boolean | Whether the name is a dictionary word |
has_hyphens |
boolean | Whether the name contains hyphens |
has_numbers |
boolean | Whether the name contains numbers |
category |
string | Detected domain category (if any) |
Valuation Factors
| Factor | Description |
|---|---|
short_length |
Domain name is short (≤6 characters) |
dot_com |
.com TLD (highest demand) |
dictionary_word |
Name is a common English word |
high_search_volume |
Name has significant search volume |
brandable |
Name is catchy and easy to brand |
premium_tld |
TLD has premium market value (.io, .ai, etc.) |
exact_match |
Name matches a high-value keyword exactly |
numeric |
Domain contains numbers (usually lowers value) |
hyphenated |
Domain contains hyphens (usually lowers value) |
long_name |
Name is long (≥15 characters, usually lowers value) |
Tier Comparison
| Feature | Quick ($0.02) | Full ($0.08) |
|---|---|---|
| Price estimate range | ✓ | ✓ |
| Confidence score | ✓ | ✓ |
| Valuation factors | ✓ | ✓ |
| Comparable sales | — | ✓ |
| Detailed explanation | — | ✓ |
| Key factors breakdown | — | ✓ |
Payment Flow (x402)
This endpoint uses x402 micropayments. When you make a request without a payment header, the API returns a 402 Payment Required response with pricing details:
# 1. Request without payment → get pricing
curl -i "https://api.robotdomainsearch.com/v1/valuation/example.com"
# Response: 402 Payment Required
# Headers include payment details (amount, recipient, network)
To make a paid request, use the x402 client SDK to handle payment automatically:
import { paymentMiddleware } from "x402-axios";
import axios from "axios";
const client = axios.create();
client.use(paymentMiddleware("YOUR_WALLET_PRIVATE_KEY"));
// Payment is handled automatically
const response = await client.get(
"https://api.robotdomainsearch.com/v1/valuation/example.com?tier=full"
);
console.log(response.data);
See the Pricing page for complete x402 integration details.
Errors
| Code | Error | Description |
|---|---|---|
| 400 | invalid_domain |
Domain format is invalid or missing TLD |
| 400 | invalid_tier |
Tier must be quick or full |
| 402 | payment_required |
x402 payment required for this endpoint |
| 405 | method_not_allowed |
Only GET method is allowed |
| 503 | service_unavailable |
Valuation service temporarily unavailable |
Code Examples
curl
# Quick valuation
curl "https://api.robotdomainsearch.com/v1/valuation/example.com"
# Full valuation
curl "https://api.robotdomainsearch.com/v1/valuation/example.com?tier=full"
Python
import requests
response = requests.get(
"https://api.robotdomainsearch.com/v1/valuation/example.com",
params={"tier": "full"}
)
data = response.json()
print(f"Domain: {data['domain']}")
print(f"Estimate: ${data['estimate']['low']:,} – ${data['estimate']['high']:,}")
print(f"Mid-point: ${data['estimate']['mid']:,}")
print(f"Confidence: {data['confidence']:.0%}")
if data.get("explanation"):
print(f"\nAnalysis: {data['explanation']}")
if data.get("comparables"):
print("\nComparable Sales:")
for comp in data["comparables"]:
print(f" {comp['domain']}: ${comp['sale_price']:,} ({comp['sale_date']})")
JavaScript
const response = await fetch(
"https://api.robotdomainsearch.com/v1/valuation/example.com?tier=full"
);
const data = await response.json();
console.log(`Domain: ${data.domain}`);
console.log(`Estimate: $${data.estimate.low.toLocaleString()} – $${data.estimate.high.toLocaleString()}`);
console.log(`Confidence: ${(data.confidence * 100).toFixed(0)}%`);
if (data.explanation) {
console.log(`\nAnalysis: ${data.explanation}`);
}
data.comparables?.forEach(comp => {
console.log(` ${comp.domain}: $${comp.sale_price.toLocaleString()} (${comp.sale_date})`);
});
Go
resp, err := http.Get("https://api.robotdomainsearch.com/v1/valuation/example.com?tier=full")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var data struct {
Domain string `json:"domain"`
Tier string `json:"tier"`
Estimate struct {
Low int `json:"low"`
Mid int `json:"mid"`
High int `json:"high"`
Currency string `json:"currency"`
} `json:"estimate"`
Confidence float64 `json:"confidence"`
Factors []string `json:"factors"`
Explanation string `json:"explanation,omitempty"`
Comparables []struct {
Domain string `json:"domain"`
SalePrice int `json:"sale_price"`
SaleDate string `json:"sale_date"`
Source string `json:"source"`
} `json:"comparables,omitempty"`
Timestamp string `json:"timestamp"`
}
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
log.Fatal(err)
}
fmt.Printf("Domain: %s\n", data.Domain)
fmt.Printf("Estimate: $%d – $%d (mid: $%d)\n", data.Estimate.Low, data.Estimate.High, data.Estimate.Mid)
fmt.Printf("Confidence: %.0f%%\n", data.Confidence*100)
for _, comp := range data.Comparables {
fmt.Printf(" %s: $%d (%s)\n", comp.Domain, comp.SalePrice, comp.SaleDate)
}
Notes
- Domain names are automatically normalized to lowercase
- The
quicktier is faster and cheaper — good for bulk screening - The
fulltier provides actionable intelligence for purchasing decisions - Comparable sales data is sourced from public domain sale records
- Confidence scores above 0.7 indicate a reliable estimate
- Estimates are in USD and reflect aftermarket/resale value, not registration cost
- This endpoint requires x402 payment — see Pricing for details