Examples

Real-world code examples for integrating RobotDomainSearch.

Check Domain Availability

curl

curl "https://api.robotdomainsearch.com/check?name=mycoolstartup"

Python

import requests

def check_domain(name):
    response = requests.get(
        "https://api.robotdomainsearch.com/check",
        params={"name": name}
    )
    return response.json()

results = check_domain("mycoolstartup")
for r in results["results"]:
    status = "✓ Available" if r["available"] else "✗ Taken"
    print(f"{r['domain']}: {status}")

JavaScript (Node.js)

async function checkDomain(name) {
  const response = await fetch(
    `https://api.robotdomainsearch.com/check?name=${name}`
  );
  return response.json();
}

const results = await checkDomain("mycoolstartup");
results.results.forEach(r => {
  const status = r.available ? "✓ Available" : "✗ Taken";
  console.log(`${r.domain}: ${status}`);
});

Go

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

type CheckResponse struct {
    Results []struct {
        Domain    string `json:"domain"`
        Available bool   `json:"available"`
        TLD       string `json:"tld"`
    } `json:"results"`
}

func checkDomain(name string) (*CheckResponse, error) {
    resp, err := http.Get(
        "https://api.robotdomainsearch.com/check?name=" + name,
    )
    if err != nil {
        return nil, err
    }
    defer resp.Body.Close()

    var result CheckResponse
    if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
        return nil, err
    }
    return &result, nil
}

func main() {
    results, _ := checkDomain("mycoolstartup")
    for _, r := range results.Results {
        status := "✗ Taken"
        if r.Available {
            status = "✓ Available"
        }
        fmt.Printf("%s: %s\n", r.Domain, status)
    }
}

Bulk TLD Check

Check specific TLDs in a single request:

# Check specific TLDs
curl "https://api.robotdomainsearch.com/check?name=mycoolstartup&tld=com,net,io,ai"
import requests

response = requests.get(
    "https://api.robotdomainsearch.com/check",
    params={"name": "mycoolstartup", "tld": "com,net,io,ai"}
)
data = response.json()

print(f"Checked {data['checked']} TLDs: {data['available']} available, {data['unavailable']} taken")
for r in data["results"]:
    status = "" if r["available"] else ""
    print(f"  {status} {r['domain']}")

Category Check

Check all TLDs in a category:

# Check all technology TLDs
curl "https://api.robotdomainsearch.com/check?name=mycoolstartup&category=technology"
import requests

response = requests.get(
    "https://api.robotdomainsearch.com/check",
    params={"name": "mycoolstartup", "category": "technology"}
)
data = response.json()

print(f"Technology TLDs: {data['available']}/{data['checked']} available")
for r in data["results"]:
    if r["available"]:
        print(f"{r['domain']}")

Browse TLD Categories

import requests

response = requests.get("https://api.robotdomainsearch.com/tlds")
data = response.json()

print(f"Total: {data['total']} TLDs across {len(data['categories'])} categories\n")

for cat in data["categories"]:
    print(f"{cat['label']} ({cat['count']}): {', '.join(cat['tlds'][:5])}...")

Find where to register available domains:

import requests

def get_registration_link(domain):
    response = requests.get(
        "https://api.robotdomainsearch.com/register",
        params={"domain": domain}
    )
    return response.json()

data = get_registration_link("mycoolstartup.com")
for reg in data["registrars"]:
    price = f" (~${reg['estimatedPrice']})" if reg.get("estimatedPrice") else ""
    print(f"  {reg['name']}{price}: {reg['url']}")

ENS Name Lookup

Check ENS (.eth) name availability:

curl "https://ens.robotdomainsearch.com/check?name=vitalik"
import requests

# Check availability
response = requests.get(
    "https://ens.robotdomainsearch.com/check",
    params={"name": "vitalik"}
)
data = response.json()

if data["available"]:
    price = data["registrationPrice"]["usdEstimate"]
    print(f"{data['name']} is available (~${price}/year)")
else:
    print(f"{data['name']} is taken by {data['owner']}")

# Get metadata for a registered name
response = requests.get(
    "https://ens.robotdomainsearch.com/metadata",
    params={"name": "vitalik"}
)
meta = response.json()
print(f"Address: {meta['address']}")
if meta.get("records", {}).get("twitter"):
    print(f"Twitter: @{meta['records']['twitter']}")

Error Handling

import requests

def check_domain_safe(name):
    try:
        response = requests.get(
            "https://api.robotdomainsearch.com/check",
            params={"name": name},
            timeout=10
        )
        response.raise_for_status()
        return response.json()
    except requests.exceptions.HTTPError as e:
        if e.response.status_code == 429:
            print("Rate limited. Wait and retry.")
        elif e.response.status_code == 400:
            print(f"Invalid request: {e.response.json()}")
        raise
    except requests.exceptions.Timeout:
        print("Request timed out")
        raise