GET GET /register

Get Registration Links

Get links to register a domain at popular registrars.

Endpoint

GET https://api.domainkit.bot/register

Parameters

Parameter Type Required Description
domain string Yes Full domain name (e.g., example.com)
registrar string No Filter to a specific registrar: porkbun, namecheap, or godaddy

Request

curl "https://api.domainkit.bot/register?domain=mycoolstartup.com"

Get a specific registrar:

curl "https://api.domainkit.bot/register?domain=mycoolstartup.com&registrar=porkbun"

Response

{
  "domain": "mycoolstartup.com",
  "registrars": [
    {
      "name": "Porkbun",
      "slug": "porkbun",
      "url": "https://porkbun.com/checkout/search?q=mycoolstartup.com",
      "estimatedPrice": 9.73
    },
    {
      "name": "Namecheap",
      "slug": "namecheap",
      "url": "https://www.namecheap.com/domains/registration/results/?domain=mycoolstartup.com"
    },
    {
      "name": "GoDaddy",
      "slug": "godaddy",
      "url": "https://www.godaddy.com/domainsearch/find?domainToCheck=mycoolstartup.com"
    }
  ],
  "timestamp": "2024-01-30T12:00:00Z"
}

Response Fields

Field Type Description
domain string The domain name
registrars array List of registrar options
registrars[].name string Registrar display name
registrars[].slug string Registrar identifier (for filtering)
registrars[].url string Direct link to register
registrars[].estimatedPrice number Estimated price in USD (Porkbun only, for supported TLDs)
timestamp string ISO 8601 timestamp of the response

Supported Registrars

Name Slug Pricing Data
Porkbun porkbun Yes (for com, org, app, xyz, ai, bot)
Namecheap namecheap No
GoDaddy godaddy No

Errors

Code Error Description
400 missing_domain The domain parameter is required
400 invalid_domain Domain must include TLD (e.g., example.com)
400 invalid_registrar Unknown registrar. Supported: porkbun, namecheap, godaddy

Code Examples

curl

curl "https://api.domainkit.bot/register?domain=mycoolstartup.com"

Python

import requests

response = requests.get(
    "https://api.domainkit.bot/register",
    params={"domain": "mycoolstartup.com"}
)
data = response.json()

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

JavaScript

const response = await fetch(
  "https://api.domainkit.bot/register?domain=mycoolstartup.com"
);
const data = await response.json();

console.log(`Register ${data.domain} at:`);
data.registrars.forEach(reg => {
  const price = reg.estimatedPrice ? ` (~$${reg.estimatedPrice})` : "";
  console.log(`  ${reg.name}${price}: ${reg.url}`);
});

Go

resp, err := http.Get("https://api.domainkit.bot/register?domain=mycoolstartup.com")
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()

var data struct {
    Domain     string `json:"domain"`
    Registrars []struct {
        Name           string   `json:"name"`
        Slug           string   `json:"slug"`
        URL            string   `json:"url"`
        EstimatedPrice *float64 `json:"estimatedPrice,omitempty"`
    } `json:"registrars"`
    Timestamp string `json:"timestamp"`
}

json.NewDecoder(resp.Body).Decode(&data)

fmt.Printf("Register %s at:\n", data.Domain)
for _, r := range data.Registrars {
    price := ""
    if r.EstimatedPrice != nil {
        price = fmt.Sprintf(" (~$%.2f)", *r.EstimatedPrice)
    }
    fmt.Printf("  %s%s: %s\n", r.Name, price, r.URL)
}

Notes

  • This endpoint provides affiliate links where applicable
  • We recommend checking availability first with /check
  • Registrar availability and pricing may vary
  • Porkbun provides estimated pricing for popular TLDs
  • Domain names are normalized to lowercase
────────────────────────────────────────────────────────────────────────────────
📄 Raw markdown: /docs/api/register.md