Registration
Search, register, renew, and transfer domains.
Overview
Register domains programmatically. Search for availability, register new domains, transfer existing domains, and manage renewals.
Searching for Domains
Basic Search
TypeScript:
const results = await client.domains.search('techstartup');
console.log('Search results for "techstartup":');
// Available domains
for (const domain of results.available) {
console.log(`Available: ${domain.domain} - $${domain.price}/year`);
}
// Taken domains
for (const domain of results.unavailable) {
console.log(`Taken: ${domain.domain}`);
}Python:
results = client.domains.search("techstartup")
print('Search results for "techstartup":')
for domain in results.available:
print(f"Available: {domain.domain} - ${domain.price}/year")
for domain in results.unavailable:
print(f"Taken: {domain.domain}")Search with TLD Filter
const results = await client.domains.search('techstartup', {
tlds: ['com', 'io', 'co', 'dev'],
});Check Specific Domain
const availability = await client.domains.checkAvailability('techstartup.io');
if (availability.available) {
console.log('Domain available!');
console.log('Price:', availability.price);
console.log('Premium:', availability.isPremium);
} else {
console.log('Domain taken');
}Registering Domains
Basic Registration
TypeScript:
const domain = await client.domains.register({
domainName: 'techstartup.io',
years: 1,
registrant: {
firstName: 'John',
lastName: 'Doe',
email: 'john@company.com',
phone: '+1.4155551234',
address: '123 Main Street',
city: 'San Francisco',
state: 'CA',
postalCode: '94102',
country: 'US',
},
});
console.log('Registered:', domain.domainName);
console.log('Status:', domain.status);
console.log('Expires:', domain.expiresAt);With Organization
const domain = await client.domains.register({
domainName: 'techstartup.io',
years: 2,
registrant: {
firstName: 'John',
lastName: 'Doe',
organization: 'Tech Startup Inc.',
email: 'domains@techstartup.io',
phone: '+1.4155551234',
address: '123 Main Street',
city: 'San Francisco',
state: 'CA',
postalCode: '94102',
country: 'US',
},
whoisPrivacy: true,
autoRenew: true,
});Different Contacts
Use different contacts for admin, tech, and billing:
const domain = await client.domains.register({
domainName: 'techstartup.io',
years: 1,
registrant: {
firstName: 'John',
lastName: 'Doe',
// ...
},
// Optional: separate contacts
admin: {
firstName: 'Jane',
lastName: 'Smith',
email: 'admin@company.com',
// ...
},
tech: {
firstName: 'Bob',
lastName: 'Developer',
email: 'tech@company.com',
// ...
},
billing: {
firstName: 'Alice',
lastName: 'Finance',
email: 'billing@company.com',
// ...
},
});Contact Information
Required Fields
| Field | Description |
|---|---|
firstName | First name |
lastName | Last name |
email | Email address |
phone | Phone in E.164 format (+1.5551234567) |
address | Street address |
city | City |
postalCode | ZIP/postal code |
country | Two-letter country code |
Optional Fields
| Field | Description |
|---|---|
organization | Company name |
state | State/province |
fax | Fax number |
Country-Specific Requirements
Some TLDs have additional requirements:
// .UK domains require organization type
const domain = await client.domains.register({
domainName: 'company.co.uk',
registrant: {
// ...standard fields
ukType: 'LTD', // LTD, PLC, PTNR, etc.
ukCompanyNumber: '12345678',
},
});
// .CA domains require CIRA agreement
const domain = await client.domains.register({
domainName: 'company.ca',
registrant: {
// ...standard fields
ciraAgreement: true,
ciraLanguage: 'EN',
},
});Domain Renewals
Manual Renewal
const renewed = await client.domains.renew('techstartup.io', {
years: 1,
});
console.log('New expiration:', renewed.expiresAt);Auto-Renewal Settings
// Enable auto-renewal
await client.domains.updateSettings('techstartup.io', {
autoRenew: true,
});
// Disable auto-renewal
await client.domains.updateSettings('techstartup.io', {
autoRenew: false,
});Renewal Reminders
Configure when you receive renewal notifications:
await client.domains.updateSettings('techstartup.io', {
renewalReminders: {
enabled: true,
daysBeforeExpiry: [90, 60, 30, 14, 7, 1],
},
});Domain Transfers
Transfer In
Move a domain from another registrar:
// 1. Get auth code from current registrar
const authCode = 'abc123xyz';
// 2. Initiate transfer
const transfer = await client.domains.transferIn({
domainName: 'existingdomain.com',
authCode: authCode,
registrant: {
firstName: 'John',
lastName: 'Doe',
// ...
},
whoisPrivacy: true,
autoRenew: true,
});
console.log('Transfer initiated:', transfer.status);
console.log('Transfer ID:', transfer.id);Check Transfer Status
const status = await client.domains.getTransferStatus(transfer.id);
console.log('Status:', status.status);
console.log('Step:', status.currentStep);
console.log('Message:', status.message);
// Status values:
// - PENDING: Waiting to start
// - PROCESSING: In progress
// - PENDING_APPROVAL: Needs confirmation
// - COMPLETED: Transfer successful
// - FAILED: Transfer failed
// - CANCELLED: Transfer cancelledCancel Transfer
await client.domains.cancelTransfer(transfer.id);Transfer Out
Get auth code to transfer to another registrar:
// Unlock domain first
await client.domains.updateSettings('techstartup.io', {
registrarLock: false,
});
// Get auth code
const authCode = await client.domains.getAuthCode('techstartup.io');
console.log('Auth code:', authCode.code);
console.log('Expires:', authCode.expiresAt);Bulk Operations
Bulk Registration
const domains = await client.domains.registerBulk({
domains: [
{ domainName: 'brand1.com', years: 1 },
{ domainName: 'brand2.com', years: 1 },
{ domainName: 'brand3.io', years: 2 },
],
registrant: {
firstName: 'John',
lastName: 'Doe',
// ...
},
whoisPrivacy: true,
autoRenew: true,
});
for (const result of domains.results) {
console.log(`${result.domainName}: ${result.status}`);
}Bulk Renewal
const renewals = await client.domains.renewBulk({
domains: [
{ domainName: 'brand1.com', years: 1 },
{ domainName: 'brand2.com', years: 1 },
],
});Listing Domains
Get All Domains
const domains = await client.domains.list();
for (const domain of domains) {
console.log(`${domain.domainName}: ${domain.status}`);
console.log(` Expires: ${domain.expiresAt}`);
console.log(` Auto-renew: ${domain.autoRenew}`);
}Filter Domains
// Expiring soon
const expiring = await client.domains.list({
expiringWithinDays: 30,
});
// By status
const active = await client.domains.list({
status: 'ACTIVE',
});
// Search
const results = await client.domains.list({
search: 'tech',
});Get Domain Details
const domain = await client.domains.get('techstartup.io');
console.log('Domain:', domain.domainName);
console.log('Status:', domain.status);
console.log('Created:', domain.createdAt);
console.log('Expires:', domain.expiresAt);
console.log('Auto-renew:', domain.autoRenew);
console.log('WHOIS Privacy:', domain.whoisPrivacy);
console.log('Registrar Lock:', domain.registrarLock);
console.log('Nameservers:', domain.nameservers);Domain Status
| Status | Description |
|---|---|
ACTIVE | Domain is active and functional |
EXPIRED | Domain has expired |
PENDING_TRANSFER | Transfer in progress |
PENDING_VERIFICATION | Awaiting email verification |
SUSPENDED | Domain suspended |
REDEMPTION | In redemption grace period |
Premium Domains
Some domains cost more than standard pricing:
const availability = await client.domains.checkAvailability('cars.com');
if (availability.isPremium) {
console.log('This is a premium domain');
console.log('Registration price:', availability.price);
console.log('Renewal price:', availability.renewalPrice);
}Next Steps
- DNS Management - Configure DNS records
- Settings - Domain security settings
- DNSSEC - Enable DNS security
On This Page
- Overview
- Searching for Domains
- Basic Search
- Search with TLD Filter
- Check Specific Domain
- Registering Domains
- Basic Registration
- With Organization
- Different Contacts
- Contact Information
- Required Fields
- Optional Fields
- Country-Specific Requirements
- Domain Renewals
- Manual Renewal
- Auto-Renewal Settings
- Renewal Reminders
- Domain Transfers
- Transfer In
- Check Transfer Status
- Cancel Transfer
- Transfer Out
- Bulk Operations
- Bulk Registration
- Bulk Renewal
- Listing Domains
- Get All Domains
- Filter Domains
- Get Domain Details
- Domain Status
- Premium Domains
- Next Steps