Skip to content

Reseller API (Preview) (1.0.0)

Feature Overview

The Reseller API provides domain reseller partners with the ability to search, register and manage traditional DNS domains. The API exposes a RESTful interface for domain registration, DNS management, and domain lifecycle operations.

  • Domain Discovery: Search for specific domains or find suggested alternatives, determine pricing, availability and registration details
  • Domain Registration: Register domains with full control over registration period, contacts, and initial DNS configuration
  • DNS Management: Create, update and delete DNS records for your domains
  • Domain Lifecycle: Manage renewals, transfers, contacts, and domain flags through a simple API interface

Managed Solution

The API handles domain registration and DNS management through Unstoppable Domains' registrar infrastructure. Resellers interact with a single RESTful API to manage the full domain lifecycle without needing direct registrar or registry integrations.

Resellers are empowered to manage domains on behalf of their users, including registration, DNS configuration, renewals, and transfer operations.

Payments

The API keeps track of a running balance of charges and Unstoppable Domains will periodically invoice Resellers to settle that balance. This empowers Resellers to build payment processing in a way that works best for them.

Contacts

ICANN-accredited domain registrations require contact information for various roles (owner, admin, tech, billing). The API provides a dedicated Contacts system for creating and managing these contacts, which can then be associated with domains.

Contacts must be verified via email before they can be used for domain registration. The API supports the full contact verification lifecycle.

Important Concepts

Operations

All interactions with the API that initiate changes will create an Operation for tracking that change. Operations can complete immediately or run in the background depending on the operation type and current system conditions.

Operations include dependencies that represent the smaller units of work associated with the overall operation. These dependencies can also be tracked through the API and each have their own status and metadata.

Your integration should properly handle and anticipate all of the following possible statuses for Operations and their dependencies:

  • QUEUED : The Operation has not started processing yet, but should be started shortly
  • PROCESSING : The Operation has started and is being processed
  • COMPLETED : The Operation has finished processing successfully
  • FAILED : The Operation has finished processing and has either fully or partially failed
  • CANCELLED : The Operation has been cancelled, usually due to a failure with a sibling dependency

Domain Flags

Domain flags control various aspects of domain behavior and security. Each flag can be independently enabled or disabled:

  • DNS_RESOLUTION: Controls whether the domain resolves via DNS
  • DNS_TRANSFER_OUT: Controls whether the domain can be transferred to another registrar
  • DNS_DELETE: Controls whether the domain can be deleted
  • DNS_UPDATE: Controls whether DNS records can be modified
  • DNS_RENEW: Controls whether the domain can be renewed
  • DNS_WHOIS_PROXY: Controls whether WHOIS privacy protection is enabled

Flags may also have a readonly state with reasons indicating why a flag cannot be changed.

Preview Mode

Many mutating endpoints support a $preview query parameter. When set to true, the API will validate the request and return the expected Operation result without actually executing the changes. This is useful for validating requests and getting price quotes before committing.

Get Access

The Reseller Dashboard for registering and managing your API credentials is coming soon. In the meantime, contact our Reseller Engineering Team to get API access or learn more.

Overview
Unstoppable Domains (Reseller Engineering)
Languages
Servers
Production
https://api.unstoppabledomains.com/partner/v3
Sandbox
https://api.ud-sandbox.com/partner/v3

Lookup multiple domains

Request

Get domain availability and details for multiple domains using the query string search options. Optionally, use the $expand query parameter to include additional data in the response (e.g. ?$expand=registration&$expand=flags).

If a domain is available for registration it will have an availability.status of AVAILABLE and will include an availability.price object.

Security
bearer
Query
$expandArray of strings
Items Enum"registration""flags"
endingArray of stringsrequired
Default []
queryArray of strings<= 50 itemsrequired
curl -i -X GET \
  'https://api.unstoppabledomains.com/partner/v3/domains?%24expand=registration&query=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/json
@typestringrequired
Value"unstoppabledomains.com/partner.v3.List"
itemsArray of objects(DomainSearchResponse)required
items[].​@typestringrequired
Value"unstoppabledomains.com/partner.v3.Domain"
items[].​namestringrequired
items[].​ownerobject(DomainOwnerResponse)required
items[].​owner.​typestringrequired
Enum"NONE""UD""UNKNOWN"
items[].​owner.​contactIdstring
items[].​availabilityobject(SingleDomainAvailabilityResponse)required
items[].​availability.​sourcestringrequired
Enum"UD""SEDO""AFTERNIC"
items[].​availability.​statusstringrequired
Enum"AVAILABLE""AVAILABLE_BACKORDER""REGISTERED""PROTECTED""COMING_SOON""DISALLOWED""RESERVED""AVAILABLE_FROM_ISSUER""AVAILABLE_FROM_SELLER""EXCEEDS_PRICE_LIMIT"
items[].​availability.​issuerobject(DomainOwnerResponse)
items[].​availability.​priceobject(DomainPriceResponse)
items[].​availability.​offerobject(DomainOfferPriceResponse)
items[].​availability.​additionalPricingobject(DomainAvailabilityAdditionalPricingResponse)
items[].​availability.​constraintsobject(DomainAvailabilityConstraintsResponse)
items[].​availability.​availableAfterTimestampnumber
items[].​registrationobject or null
items[].​flagsobject(DomainFlagsSubResponse)
Response
application/json
{ "@type": "unstoppabledomains.com/partner.v3.List", "items": [ {} ] }

Lookup a single domain

Request

Get availability and details for a single domain. Optionally, use the $expand query parameter to include additional data such as registration details and flags.

Security
bearer
Path
namestringrequired
Query
$expandArray of strings
Items Enum"registration""flags"
curl -i -X GET \
  'https://api.unstoppabledomains.com/partner/v3/domains/{name}?%24expand=registration' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/json
@typestringrequired
Value"unstoppabledomains.com/partner.v3.Domain"
namestringrequired
ownerobject(DomainOwnerResponse)required
owner.​typestringrequired
Enum"NONE""UD""UNKNOWN"
owner.​contactIdstring
availabilityobject(SingleDomainAvailabilityResponse)required
availability.​sourcestringrequired
Enum"UD""SEDO""AFTERNIC"
availability.​statusstringrequired
Enum"AVAILABLE""AVAILABLE_BACKORDER""REGISTERED""PROTECTED""COMING_SOON""DISALLOWED""RESERVED""AVAILABLE_FROM_ISSUER""AVAILABLE_FROM_SELLER""EXCEEDS_PRICE_LIMIT"
availability.​issuerobject(DomainOwnerResponse)
availability.​priceobject(DomainPriceResponse)
availability.​offerobject(DomainOfferPriceResponse)
availability.​additionalPricingobject(DomainAvailabilityAdditionalPricingResponse)
availability.​constraintsobject(DomainAvailabilityConstraintsResponse)
availability.​availableAfterTimestampnumber
registrationobject or null
flagsobject(DomainFlagsSubResponse)
Response
application/json
{ "@type": "unstoppabledomains.com/partner.v3.Domain", "name": "string", "owner": { "type": "NONE", "contactId": "string" }, "availability": { "source": "UD", "status": "AVAILABLE", "issuer": {}, "price": {}, "offer": {}, "additionalPricing": {}, "constraints": {}, "availableAfterTimestamp": 0 }, "registration": { "status": "REGISTERED", "tokenId": "string", "tokenType": "ERC721", "pricing": {}, "expirationDate": "string", "expirationGracePeriodDate": "string", "deletionAtTimestamp": 0, "icann": {} }, "flags": { "DNS_RESOLUTION": {}, "DNS_TRANSFER_OUT": {}, "DNS_DELETE": {}, "DNS_UPDATE": {}, "DNS_RENEW": {}, "DNS_WHOIS_PROXY": {} } }

Suggestions

Find available domain alternatives based on keywords and preferences.

Operations

Registration & Renewals

Register new domains and manage renewals. Use $preview=true to validate requests and get price quotes before committing.

Operations

Domain Management

Comprehensive domain updates — modify nameservers, DNSSEC, contacts, flags, and DNS records in a single request.

Operations

DNS Records

Create, read, update and delete DNS records for your domains. Also includes DNS metadata, nameserver management, and DNSSEC configuration.

Operations

Transfers

Check transfer eligibility and retrieve authorization codes for transferring domains to another registrar.

Operations

Domain Flags

View and manage domain flags that control behavior and security settings such as DNS resolution, transfer locks, WHOIS privacy, and more.

Operations

Domain Contacts

View and update the ICANN-required contacts (owner, admin, tech, billing) assigned to a specific domain.

Operations

Pricing

Retrieve pricing information for domain registration, renewal, transfer, and restoration by domain name or TLD.

Operations

TLDs

Browse available top-level domains (TLDs), their details, and DNS security configuration.

Operations

Contacts

Create and manage ICANN-required contacts for domain registration. Contacts represent individuals or organizations associated with domain roles (owner, admin, tech, billing).

New contacts must be verified via email before they can be used in domain registrations.

Operations

Operations

All asynchronous processes handled by the API are represented as Operations. This includes registering a domain, updating DNS records, renewing a domain, and more.

Operations contain dependencies that represent the individual units of work. Each dependency has its own status, parameters, and result data.

Operations
Webhooks

Account

Manage your account details, authentication tokens, and webhook subscriptions.

Operations