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®istrar=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