Overview

Register domains and manage DNS with the Transactional Domains API.

What is Domains?

Transactional Domains provides domain registration and DNS management as an API. Search, register, and manage domains programmatically. Seamlessly integrate with email sending for proper domain authentication.

Why Domains?

Complete Domain Management

  • Registration - Search and register domains from multiple TLDs
  • DNS management - Full DNS record control via API
  • Auto-renewal - Never lose a domain due to expiration
  • WHOIS privacy - Protect registrant information

Built for Developers

  • Simple API - RESTful endpoints with comprehensive SDKs
  • Webhooks - Real-time notifications for domain events
  • DNS presets - Quick configurations for common setups
  • Email integration - One-click email domain setup

Core Concepts

Domain Registration

Search and register domains:

// Search for available domains
const results = await client.domains.search('mycompany');
 
// Register a domain
const domain = await client.domains.register({
  domainName: 'mycompany.com',
  years: 1,
  registrant: {
    firstName: 'John',
    lastName: 'Doe',
    email: 'john@example.com',
    // ...
  },
});

DNS Management

Control DNS records:

// Add DNS record
await client.domains.dns.create('mycompany.com', {
  type: 'A',
  name: '@',
  value: '203.0.113.1',
  ttl: 3600,
});
 
// Add MX records for email
await client.domains.dns.create('mycompany.com', {
  type: 'MX',
  name: '@',
  value: 'mail.usetransactional.com',
  priority: 10,
});

Domain Settings

Configure domain options:

await client.domains.updateSettings('mycompany.com', {
  autoRenew: true,
  whoisPrivacy: true,
  registrarLock: true,
});

Key Features

Registration

FeatureDescription
Domain searchCheck availability across TLDs
Bulk registrationRegister multiple domains
Transfer inMove domains from other registrars
Auto-renewalPrevent accidental expiration

DNS Management

FeatureDescription
All record typesA, AAAA, CNAME, MX, TXT, SRV, etc.
TTL controlConfigure caching duration
Bulk updatesModify multiple records at once
DNS presetsQuick setup templates

Security

FeatureDescription
WHOIS privacyHide registrant details
Registrar lockPrevent unauthorized transfers
DNSSECCryptographic DNS security
2FA for transfersExtra transfer protection

Supported TLDs

Generic TLDs

  • .com - Commercial
  • .net - Network
  • .org - Organization
  • .io - Tech startups
  • .co - Company
  • .app - Applications
  • .dev - Developers
  • .ai - AI/Technology

Country TLDs

  • .us - United States
  • .uk - United Kingdom
  • .de - Germany
  • .eu - European Union
  • .ca - Canada
  • .au - Australia

New TLDs

  • .cloud
  • .tech
  • .store
  • .online
  • .site
  • .xyz

Architecture

DNS Query
Transactional DNS
Records
DNSSEC
CDN
DNS Response

Use Cases

SaaS Platforms

Custom domains for customers:

  • White-label domains
  • Custom email addresses
  • Vanity URLs

Web Hosting

Complete domain management:

  • Domain registration for clients
  • DNS configuration
  • SSL certificate provisioning

Email Services

Domain setup for email:

  • MX record configuration
  • SPF, DKIM, DMARC setup
  • Subdomain management

Marketing

Campaign-specific domains:

  • Landing page domains
  • Link shortener domains
  • Regional domains

Getting Started

  1. Search domains - Find available domains
  2. Register - Purchase your domain
  3. Configure DNS - Set up records
  4. Integrate - Connect to email or hosting
  5. Monitor - Track expiration and health

Quick Example

import { Transactional } from '@usetransactional/node';
 
const client = new Transactional({ apiKey: 'tr_live_xxx' });
 
// 1. Search for domains
const search = await client.domains.search('techstartup');
console.log('Available domains:');
for (const result of search.available) {
  console.log(`  ${result.domain}: $${result.price}/year`);
}
 
// 2. Register domain
const domain = await client.domains.register({
  domainName: 'techstartup.io',
  years: 2,
  registrant: {
    firstName: 'John',
    lastName: 'Doe',
    email: 'john@company.com',
    address: '123 Main St',
    city: 'San Francisco',
    state: 'CA',
    postalCode: '94102',
    country: 'US',
    phone: '+1.4155551234',
  },
  whoisPrivacy: true,
  autoRenew: true,
});
 
// 3. Set up DNS for email
await client.domains.dns.applyPreset('techstartup.io', {
  preset: 'TRANSACTIONAL_EMAIL',
});
 
console.log('Domain registered and configured!');

Next Steps