Name Search Presence
Check how visible a name or brand is across major search engines. Returns a presence score (0–100), per-engine results, signal detection, and an AI-generated summary — useful for evaluating whether a name is already established online before registering a domain.
Endpoint
GET https://api.robotdomainsearch.com/v1/name-search-presence
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Name or brand to search for (e.g., mycoolstartup) |
engines |
string | No | Comma-separated list of engines to query. Options: brave, perplexity. Default: all engines. |
timeout |
int | No | Request timeout in milliseconds |
Request
Basic — Check all engines
curl "https://api.robotdomainsearch.com/v1/name-search-presence?name=mycoolstartup"
Single engine
curl "https://api.robotdomainsearch.com/v1/name-search-presence?name=google&engines=brave"
Multiple engines with timeout
curl "https://api.robotdomainsearch.com/v1/name-search-presence?name=mycoolstartup&engines=brave,perplexity&timeout=5000"
Response
Clean name (low presence)
When a name has little or no online presence:
{
"name": "mycoolstartup",
"score": 7,
"status": "clean",
"summary": "No significant online presence exists for \"mycoolstartup\" as a brand, company, product, domain, social handle, or notable individual...",
"engines": [
{
"engine": "perplexity",
"score": 8,
"exact_hits": 0,
"loose_hits": 0,
"total_results_estimate": 10,
"top_matches": [
{
"title": "Marketing Tools & Branding Solutions | Canva",
"url": "https://www.canva.com/solutions/startups/",
"type": "brand",
"relevance": "low"
}
],
"response_ms": 518
},
{
"engine": "brave",
"score": 5,
"exact_hits": 0,
"loose_hits": 0,
"total_results_estimate": 0,
"top_matches": [],
"response_ms": 561
}
],
"signals": {
"exact_phrase_found": false,
"brand_exists": false,
"company_exists": false,
"product_exists": false,
"domain_registered": false,
"social_handles_found": [],
"notable_individuals": []
},
"errors": [],
"total_ms": 2642,
"timestamp": "2026-02-17T14:00:20Z",
"cache_hit": false
}
High presence name
When a name has strong existing presence:
{
"name": "google",
"score": 77,
"status": "high",
"summary": "**Google** is a major American multinational technology company renowned for its dominant search engine, extensive product portfolio, and key domains like google.com, about.google, and cloud.google.com...",
"engines": [
{
"engine": "perplexity",
"score": 78,
"exact_hits": 10,
"loose_hits": 10,
"total_results_estimate": 10,
"top_matches": [
{
"title": "Google - Wikipedia",
"url": "https://en.wikipedia.org/wiki/Google",
"type": "company",
"relevance": "high"
},
{
"title": "About Google: Our products, technology and company information",
"url": "https://about.google",
"type": "domain",
"relevance": "high"
}
],
"response_ms": 730
},
{
"engine": "brave",
"score": 75,
"exact_hits": 10,
"loose_hits": 10,
"total_results_estimate": 0,
"top_matches": [
{
"title": "Google",
"url": "https://www.google.com",
"type": "domain",
"relevance": "high"
},
{
"title": "Google - Wikipedia",
"url": "https://en.wikipedia.org/wiki/Google",
"type": "company",
"relevance": "high"
}
],
"response_ms": 769
}
],
"signals": {
"exact_phrase_found": true,
"brand_exists": false,
"company_exists": true,
"product_exists": true,
"domain_registered": true,
"social_handles_found": [],
"notable_individuals": []
},
"errors": [],
"total_ms": 2705,
"timestamp": "2026-02-17T13:59:43Z",
"cache_hit": false
}
Response Fields
Top-Level Fields
| Field | Type | Description |
|---|---|---|
name |
string | The name that was searched |
score |
integer | Overall presence score (0–100) |
status |
string | Presence level: clean, low, medium, or high |
summary |
string | AI-generated summary of the name’s online presence |
engines |
array | Per-engine search results |
signals |
object | Detected presence signals |
errors |
array | Per-engine errors (partial failures) |
total_ms |
integer | Total response time in milliseconds |
timestamp |
ISO 8601 | When the response was generated |
cache_hit |
boolean | Whether the response was served from cache |
Scoring Guide
| Score Range | Status | Meaning |
|---|---|---|
| 0–10 | clean |
No meaningful online presence — name is likely available |
| 11–30 | low |
Minimal presence — some loose matches but no strong brand |
| 31–60 | medium |
Moderate presence — existing brands or products use this name |
| 61–100 | high |
Strong presence — well-known brand, company, or individual |
Engine Object
| Field | Type | Description |
|---|---|---|
engine |
string | Search engine identifier (brave, perplexity) |
score |
integer | Per-engine presence score (0–100) |
exact_hits |
integer | Number of results with an exact name match |
loose_hits |
integer | Number of results with a partial/related match |
total_results_estimate |
integer | Estimated total results from this engine |
top_matches |
array | Top matching results from this engine |
response_ms |
integer | Engine response time in milliseconds |
Top Match Object
| Field | Type | Description |
|---|---|---|
title |
string | Page title of the result |
url |
string | URL of the result |
type |
string | Result type: domain, company, product, brand |
relevance |
string | Relevance level: high, medium, low |
Signals Object
| Field | Type | Description |
|---|---|---|
exact_phrase_found |
boolean | Whether the exact name appears in search results |
brand_exists |
boolean | Whether an existing brand uses this name |
company_exists |
boolean | Whether an existing company uses this name |
product_exists |
boolean | Whether an existing product uses this name |
domain_registered |
boolean | Whether a matching domain appears to be registered |
social_handles_found |
array | Social media handles found (if any) |
notable_individuals |
array | Notable individuals associated with this name (if any) |
Error Handling
HTTP Status Codes
| Status | Condition |
|---|---|
200 |
Success (including partial failures with some engine data) |
400 |
Missing or invalid name parameter |
405 |
Method not allowed (only GET supported) |
503 |
All engines failed / service unavailable |
Partial Failures
If one engine fails, the other still returns data. Check the errors array:
{
"name": "example",
"score": 45,
"status": "medium",
"engines": [
{ "engine": "brave", "score": 45, "..." : "..." }
],
"errors": [
{
"engine": "perplexity",
"message": "request timeout"
}
]
}
Use Cases
Brand name validation
Before registering a domain, check if the name is already taken by an established brand:
curl "https://api.robotdomainsearch.com/v1/name-search-presence?name=nextvault"
A clean or low status means the name is likely safe to use. A high status suggests potential trademark or branding conflicts.
Competitive analysis
Evaluate how established a competitor’s brand is online:
curl "https://api.robotdomainsearch.com/v1/name-search-presence?name=stripe"
Domain investment research
When evaluating domains to purchase, check if the name has existing brand value:
curl "https://api.robotdomainsearch.com/v1/name-search-presence?name=cloudpay"
A higher presence score may indicate the domain has more inherent value.
Code Examples
curl
curl "https://api.robotdomainsearch.com/v1/name-search-presence?name=mycoolstartup"
Python
import requests
response = requests.get(
"https://api.robotdomainsearch.com/v1/name-search-presence",
params={"name": "mycoolstartup"}
)
data = response.json()
print(f"Name: {data['name']}")
print(f"Score: {data['score']}/100 ({data['status']})")
print(f"Summary: {data['summary']}")
# Check signals
signals = data["signals"]
if signals["brand_exists"]:
print("⚠️ Existing brand detected")
if signals["domain_registered"]:
print("⚠️ Domain appears registered")
if signals["company_exists"]:
print("⚠️ Existing company detected")
# Per-engine breakdown
for engine in data["engines"]:
print(f"\n{engine['engine']}: {engine['score']}/100")
print(f" Exact hits: {engine['exact_hits']}")
print(f" Loose hits: {engine['loose_hits']}")
for match in engine["top_matches"][:3]:
print(f" - {match['title']} ({match['relevance']})")
for error in data.get("errors", []):
print(f" Error [{error.get('engine')}]: {error.get('message')}")
JavaScript
const name = "mycoolstartup";
const response = await fetch(
`https://api.robotdomainsearch.com/v1/name-search-presence?name=${name}`
);
const data = await response.json();
console.log(`Name: ${data.name}`);
console.log(`Score: ${data.score}/100 (${data.status})`);
console.log(`Summary: ${data.summary}`);
// Check signals
const { signals } = data;
if (signals.brand_exists) console.log("⚠️ Existing brand detected");
if (signals.domain_registered) console.log("⚠️ Domain appears registered");
if (signals.company_exists) console.log("⚠️ Existing company detected");
// Per-engine breakdown
data.engines.forEach(engine => {
console.log(`\n${engine.engine}: ${engine.score}/100`);
console.log(` Exact hits: ${engine.exact_hits}`);
engine.top_matches.slice(0, 3).forEach(match => {
console.log(` - ${match.title} (${match.relevance})`);
});
});
data.errors?.forEach(e => {
console.log(` Error [${e.engine}]: ${e.message}`);
});
Go
resp, err := http.Get("https://api.robotdomainsearch.com/v1/name-search-presence?name=mycoolstartup")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var data struct {
Name string `json:"name"`
Score int `json:"score"`
Status string `json:"status"`
Summary string `json:"summary"`
Engines []struct {
Engine string `json:"engine"`
Score int `json:"score"`
ExactHits int `json:"exact_hits"`
LooseHits int `json:"loose_hits"`
TotalResultsEstimate int `json:"total_results_estimate"`
TopMatches []struct {
Title string `json:"title"`
URL string `json:"url"`
Type string `json:"type"`
Relevance string `json:"relevance"`
} `json:"top_matches"`
ResponseMs int `json:"response_ms"`
} `json:"engines"`
Signals struct {
ExactPhraseFound bool `json:"exact_phrase_found"`
BrandExists bool `json:"brand_exists"`
CompanyExists bool `json:"company_exists"`
ProductExists bool `json:"product_exists"`
DomainRegistered bool `json:"domain_registered"`
SocialHandlesFound []string `json:"social_handles_found"`
NotableIndividuals []string `json:"notable_individuals"`
} `json:"signals"`
Errors []struct {
Engine string `json:"engine"`
Message string `json:"message"`
} `json:"errors"`
TotalMs int `json:"total_ms"`
Timestamp string `json:"timestamp"`
CacheHit bool `json:"cache_hit"`
}
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
log.Fatal(err)
}
fmt.Printf("Name: %s\n", data.Name)
fmt.Printf("Score: %d/100 (%s)\n", data.Score, data.Status)
fmt.Printf("Summary: %s\n", data.Summary)
for _, engine := range data.Engines {
fmt.Printf("\n%s: %d/100 (exact: %d, loose: %d)\n",
engine.Engine, engine.Score, engine.ExactHits, engine.LooseHits)
for _, match := range engine.TopMatches {
fmt.Printf(" - %s (%s)\n", match.Title, match.Relevance)
}
}
Notes
- The overall
scoreis an aggregate across all engines queried - The
summaryfield is AI-generated and may vary between requests - Per-engine scores may differ — the overall score balances across all engines
- No API key is required during beta (60 requests/minute rate limit)
- Responses may be cached;
cache_hitindicates whether a cached response was returned - The
signalsobject provides structured boolean flags for quick programmatic checks - Use
enginesto limit which search engines are queried (useful for faster responses or debugging)