Settings
Configure WHOIS privacy, registrar lock, and auto-renewal.
Overview
Domain settings control security features, privacy, and renewal behavior. Configure these settings to protect your domains and ensure uninterrupted service.
Getting Domain Settings
TypeScript:
const domain = await client.domains.get('example.com');
console.log('Domain:', domain.domainName);
console.log('Status:', domain.status);
console.log('Expires:', domain.expiresAt);
console.log('Auto-renew:', domain.autoRenew);
console.log('WHOIS Privacy:', domain.whoisPrivacy);
console.log('Registrar Lock:', domain.registrarLock);Python:
domain = client.domains.get("example.com")
print(f"Domain: {domain.domain_name}")
print(f"Status: {domain.status}")
print(f"Expires: {domain.expires_at}")
print(f"Auto-renew: {domain.auto_renew}")
print(f"WHOIS Privacy: {domain.whois_privacy}")
print(f"Registrar Lock: {domain.registrar_lock}")Updating Settings
All Settings
await client.domains.updateSettings('example.com', {
autoRenew: true,
whoisPrivacy: true,
registrarLock: true,
});Individual Settings
// Just auto-renewal
await client.domains.updateSettings('example.com', {
autoRenew: true,
});
// Just privacy
await client.domains.updateSettings('example.com', {
whoisPrivacy: true,
});Auto-Renewal
Enable Auto-Renewal
await client.domains.updateSettings('example.com', {
autoRenew: true,
});Disable Auto-Renewal
await client.domains.updateSettings('example.com', {
autoRenew: false,
});Renewal Reminders
Configure when you receive expiration notifications:
await client.domains.updateSettings('example.com', {
renewalReminders: {
enabled: true,
daysBeforeExpiry: [90, 60, 30, 14, 7, 1],
recipients: ['admin@company.com', 'billing@company.com'],
},
});Check Renewal Status
const domain = await client.domains.get('example.com');
const daysUntilExpiry = Math.floor(
(new Date(domain.expiresAt).getTime() - Date.now()) / (1000 * 60 * 60 * 24)
);
if (daysUntilExpiry < 30) {
console.log(`Warning: Domain expires in ${daysUntilExpiry} days`);
if (!domain.autoRenew) {
console.log('Auto-renewal is disabled!');
}
}WHOIS Privacy
WHOIS privacy protects your personal information in the public WHOIS database.
Enable Privacy
await client.domains.updateSettings('example.com', {
whoisPrivacy: true,
});
// WHOIS now shows:
// Registrant: REDACTED FOR PRIVACY
// Email: Please contact via domainDisable Privacy
await client.domains.updateSettings('example.com', {
whoisPrivacy: false,
});
// WHOIS now shows your actual registrant infoCheck WHOIS Privacy Status
const domain = await client.domains.get('example.com');
if (!domain.whoisPrivacy) {
console.log('Warning: Your contact info is public');
}Get WHOIS Info
const whois = await client.domains.getWhois('example.com');
console.log('Registrant:', whois.registrant);
console.log('Admin:', whois.admin);
console.log('Tech:', whois.tech);
console.log('Created:', whois.createdDate);
console.log('Updated:', whois.updatedDate);
console.log('Expires:', whois.expiryDate);Registrar Lock
Registrar lock prevents unauthorized domain transfers.
Enable Lock
await client.domains.updateSettings('example.com', {
registrarLock: true,
});Disable Lock
Required before transferring domain to another registrar:
await client.domains.updateSettings('example.com', {
registrarLock: false,
});Check Lock Status
const domain = await client.domains.get('example.com');
if (!domain.registrarLock) {
console.log('Warning: Domain can be transferred');
}Contact Information
Update Registrant Contact
await client.domains.updateContact('example.com', 'registrant', {
firstName: 'Jane',
lastName: 'Smith',
email: 'jane@company.com',
phone: '+1.4155551234',
address: '456 New Street',
city: 'San Francisco',
state: 'CA',
postalCode: '94102',
country: 'US',
});Update Other Contacts
// Admin contact
await client.domains.updateContact('example.com', 'admin', {
firstName: 'Admin',
lastName: 'User',
email: 'admin@company.com',
// ...
});
// Tech contact
await client.domains.updateContact('example.com', 'tech', {
firstName: 'Tech',
lastName: 'Support',
email: 'tech@company.com',
// ...
});
// Billing contact
await client.domains.updateContact('example.com', 'billing', {
firstName: 'Billing',
lastName: 'Dept',
email: 'billing@company.com',
// ...
});Get Current Contacts
const contacts = await client.domains.getContacts('example.com');
console.log('Registrant:', contacts.registrant.email);
console.log('Admin:', contacts.admin.email);
console.log('Tech:', contacts.tech.email);
console.log('Billing:', contacts.billing.email);Nameservers
View Current Nameservers
const domain = await client.domains.get('example.com');
console.log('Nameservers:');
for (const ns of domain.nameservers) {
console.log(` ${ns}`);
}Update Nameservers
await client.domains.updateNameservers('example.com', {
nameservers: [
'ns1.usetransactional.com',
'ns2.usetransactional.com',
],
});Custom Nameservers
Use your own nameservers:
await client.domains.updateNameservers('example.com', {
nameservers: [
'ns1.your-dns-provider.com',
'ns2.your-dns-provider.com',
],
});Reset to Default
await client.domains.updateNameservers('example.com', {
useDefault: true,
});Auth Code
Auth code (EPP code) is needed to transfer the domain.
Get Auth Code
// Must unlock domain first
await client.domains.updateSettings('example.com', {
registrarLock: false,
});
// Get auth code
const authCode = await client.domains.getAuthCode('example.com');
console.log('Auth code:', authCode.code);
console.log('Expires:', authCode.expiresAt);Regenerate Auth Code
const authCode = await client.domains.regenerateAuthCode('example.com');
console.log('New auth code:', authCode.code);Domain Status Codes
| Status | Description |
|---|---|
clientHold | Domain not resolving (unpaid) |
clientTransferProhibited | Transfer locked |
clientUpdateProhibited | Updates locked |
clientDeleteProhibited | Deletion locked |
serverHold | Registry hold |
pendingTransfer | Transfer in progress |
pendingDelete | Pending deletion |
Check Status Codes
const domain = await client.domains.get('example.com');
console.log('Status codes:', domain.statusCodes);
if (domain.statusCodes.includes('clientHold')) {
console.log('Warning: Domain is on hold');
}Bulk Settings Update
Update settings for multiple domains:
await client.domains.updateSettingsBulk({
domains: ['example1.com', 'example2.com', 'example3.com'],
settings: {
autoRenew: true,
registrarLock: true,
},
});Settings Audit Log
Track changes to domain settings:
const auditLog = await client.domains.getAuditLog('example.com', {
startDate: '2024-01-01',
endDate: '2024-01-31',
});
for (const entry of auditLog) {
console.log(`${entry.timestamp}: ${entry.action}`);
console.log(` By: ${entry.user}`);
console.log(` Changes: ${JSON.stringify(entry.changes)}`);
}Next Steps
- DNSSEC - Enable DNS security
- Email Integration - Set up for email
- API Reference - Complete API docs
On This Page
- Overview
- Getting Domain Settings
- Updating Settings
- All Settings
- Individual Settings
- Auto-Renewal
- Enable Auto-Renewal
- Disable Auto-Renewal
- Renewal Reminders
- Check Renewal Status
- WHOIS Privacy
- Enable Privacy
- Disable Privacy
- Check WHOIS Privacy Status
- Get WHOIS Info
- Registrar Lock
- Enable Lock
- Disable Lock
- Check Lock Status
- Contact Information
- Update Registrant Contact
- Update Other Contacts
- Get Current Contacts
- Nameservers
- View Current Nameservers
- Update Nameservers
- Custom Nameservers
- Reset to Default
- Auth Code
- Get Auth Code
- Regenerate Auth Code
- Domain Status Codes
- Check Status Codes
- Bulk Settings Update
- Settings Audit Log
- Next Steps