Examples

Real-world code examples for integrating DomainKit.

Check Domain Availability

curl

curl "https://api.domainkit.bot/check?name=mycoolstartup"

Python

import requests

def check_domain(name):
    response = requests.get(
        "https://api.domainkit.bot/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.domainkit.bot/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.domainkit.bot/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 Domain Check

Check multiple domain names in one request:

import requests

names = ["startup1", "startup2", "startup3"]

for name in names:
    response = requests.get(
        "https://api.domainkit.bot/check",
        params={"name": name}
    )
    data = response.json()
    print(f"\n{name}:")
    for r in data["results"]:
        status = "" if r["available"] else ""
        print(f"  {status} {r['domain']}")

Filter by TLD

Check specific TLDs only:

# Check only .com
curl "https://api.domainkit.bot/check?name=mycoolstartup&tld=com"

# Check multiple TLDs
curl "https://api.domainkit.bot/check?name=mycoolstartup&tld=com,io,dev"

Find where to register available domains:

import requests

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

link = get_registration_link("mycoolstartup.com")
print(f"Register at: {link['url']}")

List All TLDs

Get all supported top-level domains:

import requests

response = requests.get("https://api.domainkit.bot/tlds")
tlds = response.json()

print(f"Supported TLDs: {len(tlds['tlds'])}")
for tld in tlds["tlds"][:10]:
    print(f"  .{tld}")

Error Handling

import requests

def check_domain_safe(name):
    try:
        response = requests.get(
            "https://api.domainkit.bot/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