Skip to content

Reseller API (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

For access, authentication, environments, and your first request, start with the Quick Start.

For implementation guidance on operations, flags, registration flows, contact management, DNS management, webhooks, and lifecycle operations, see the Implementation Guide.

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

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 are automatically sent a verification email upon creation. Contacts can be used in domain registrations immediately, but domains associated with unverified contacts may become unmanageable after a certain period.

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

Hosting

Configure how your domains serve content on the web. Hosting configurations control what happens when someone visits your domain — whether it redirects to another URL or proxies content from another server.

Available hosting types:

  • REDIRECT_301 — Permanent redirect to another URL
  • REDIRECT_302 — Temporary redirect to another URL
  • REVERSE_PROXY — Proxy requests to a backend server

All hosting configurations require SSL certificate provisioning. When a configuration is created or updated, the certificateStatus field will be PENDING until the certificate is issued and active. This process typically completes within a few minutes but may take longer in some cases.

Operations

List hosting configurations

Request

Retrieve all hosting configurations for the specified domain. Each configuration represents how a domain or subdomain serves content (e.g., redirect, reverse proxy).

Use the subName parameter to filter results to specific subdomains. Results are paginated — use the $cursor parameter to retrieve subsequent pages.

Security
bearer
Path
namestringrequired

Domain name

Query
$cursorstring

Pagination cursor for retrieving the next page of results.

subNameArray of strings<= 50 items

Filter results by subdomain name(s).

curl -i -X GET \
  'https://api.unstoppabledomains.com/partner/v3/domains/{name}/dns/hosting?%24cursor=string&subName=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

List of hosting configurations

Bodyapplication/json
@typestringrequired
Value"unstoppabledomains.com/partner.v3.CursorList"
itemsArray of objects(DomainHostingDetailsItemResponse)required
items[].​@typestringrequired
Value"unstoppabledomains.com/partner.v3.DomainHostingDetails"
items[].​typestring or null(DomainHostingType)required
Enum"REDIRECT_301""REDIRECT_302""REVERSE_PROXY"
items[].​targetUrlstring or nullrequired

The target URL for redirect or reverse proxy configurations.

items[].​subNamestring

The subdomain this configuration applies to. Empty string for root domain.

items[].​statusstringrequired

Current status of the hosting configuration.

Enum"ACTIVE""INACTIVE""PENDING"
items[].​certificateStatusstringrequired

Status of the SSL certificate. Will be PENDING while the certificate is being provisioned.

Enum"ACTIVE""INACTIVE""PENDING"
nextobject or nullrequired
next.​cursorstring
Response
application/json
{ "@type": "unstoppabledomains.com/partner.v3.CursorList", "items": [ {} ], "next": { "cursor": "string" } }

Create or update hosting configuration

Request

Set or update the hosting configuration for a domain or subdomain. This controls how the domain serves content — whether via redirect or reverse proxy.

Use the subName field in the request body to target a specific subdomain. If omitted, the configuration applies to the root domain.

All hosting configurations require an SSL certificate. After creating or updating a configuration, the certificateStatus will initially be PENDING while the certificate is provisioned. This typically completes within a few minutes.

Use $preview=true to validate the request and see the expected result without applying changes.

Security
bearer
Path
namestringrequired

Domain name

Query
$previewbooleanrequired

Preview mode — validate the request without executing changes.

Default false
Bodyapplication/jsonrequired
subNamestring

The subdomain to configure. Omit or leave empty for the root domain.

targetUrlstring

The target URL for redirect or reverse proxy configurations.

typestring(DomainHostingType)required
Enum"REDIRECT_301""REDIRECT_302""REVERSE_PROXY"
$forceCompatibilitybooleanrequired

Force the update even if it may conflict with existing DNS records.

Default false
curl -i -X PUT \
  'https://api.unstoppabledomains.com/partner/v3/domains/{name}/dns/hosting?%24preview=false' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "subName": "string",
    "targetUrl": "string",
    "type": "REDIRECT_301",
    "$forceCompatibility": false
  }'

Responses

Hosting update operation created

Bodyapplication/json
@typestringrequired
Value"unstoppabledomains.com/partner.v3.DomainHostingOperationResult"
operationobject(OperationCheckResponse)required
operation.​@typestringrequired
Value"unstoppabledomains.com/partner.v3.Operation"
operation.​idstring^op-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...required

Operation ID

Example: "op-a1b2c3d4-e5f6-7890-abcd-ef1234567890"
operation.​statusstringrequired
Enum"PREVIEW""QUEUED""PROCESSING""FAILED""COMPLETED""CANCELLED""AWAITING_UPDATES"
operation.​typestringrequired
Enum"ADMIN_GENERIC""DOMAIN_ADMIN_UPDATE""DOMAIN_RENEW""ACCOUNT_UPDATE""DOMAIN_DNS_RECORD_CREATE""DOMAIN_DNS_RECORD_UPDATE""DOMAIN_DNS_RECORD_DELETE""DOMAIN_DNS_RECORD_BATCH""DOMAIN_DNS_SECURITY_ENABLE""DOMAIN_DNS_SECURITY_DELETE"
operation.​domainstring
operation.​createdAtTimestampnumberrequired
operation.​lastUpdatedTimestampnumberrequired
operation.​validUntilTimestampnumber
operation.​dependenciesArray of any(PlatformOperationDependency)required

List of platform operation dependencies that make up this operation

operation.​dependencies[].​idstringrequired
Example: "plop_abc12345-1234-1234-1234-abc123456789"
operation.​dependencies[].​@typestringrequired
Value"unstoppabledomains.com/partner.v3.PlatformOperation"
operation.​dependencies[].​statusstring(PlatformOperationStatus)required

Status of a platform operation dependency

Enum"PREVIEW""QUEUED""PROCESSING""FAILED""COMPLETED""CANCELLED""AWAITING_UPDATES"
operation.​dependencies[].​typestringrequired
Value"DOMAIN_REGISTER"
Discriminator
operation.​dependencies[].​parametersobjectrequired
operation.​dependencies[].​parameters.​ownerobject(ContactAssignment)required

Reference to an existing or newly created contact

operation.​dependencies[].​parameters.​owner.​newbooleanrequired

Whether this contact is being newly created as part of this operation

operation.​dependencies[].​parameters.​owner.​idstring

Contact ID (present when new is false)

Example: "con_abc12345-1234-1234-1234-abc123456789"
operation.​dependencies[].​parameters.​contactsobject(NonRegistrantContacts)

Non-registrant contact role assignments (admin, billing, tech)

operation.​dependencies[].​parameters.​periodinteger

Registration period in years

Example: 1
operation.​dependencies[].​errorobject(OperationDependencyError)

Error details for a failed operation dependency

Response
application/json
{ "@type": "unstoppabledomains.com/partner.v3.DomainHostingOperationResult", "operation": { "@type": "unstoppabledomains.com/partner.v3.Operation", "id": "op-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "PREVIEW", "type": "ADMIN_GENERIC", "domain": "string", "createdAtTimestamp": 0, "lastUpdatedTimestamp": 0, "validUntilTimestamp": 0, "dependencies": [] } }

Delete hosting configuration

Request

Remove the hosting configuration for a domain or subdomain. This stops the domain from serving content through the configured hosting type and releases the associated SSL certificate.

Use the subName field in the request body to target a specific subdomain's configuration. If omitted, the root domain configuration is removed.

Use $preview=true to validate the request without applying changes.

Security
bearer
Path
namestringrequired

Domain name

Query
$previewbooleanrequired

Preview mode — validate the request without executing changes.

Default false
Bodyapplication/jsonrequired
subNamestring

The subdomain whose hosting configuration should be removed. Omit or leave empty for the root domain.

curl -i -X DELETE \
  'https://api.unstoppabledomains.com/partner/v3/domains/{name}/dns/hosting?%24preview=false' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "subName": "string"
  }'

Responses

Hosting delete operation created

Bodyapplication/json
@typestringrequired
Value"unstoppabledomains.com/partner.v3.DomainHostingOperationResult"
operationobject(OperationCheckResponse)required
operation.​@typestringrequired
Value"unstoppabledomains.com/partner.v3.Operation"
operation.​idstring^op-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...required

Operation ID

Example: "op-a1b2c3d4-e5f6-7890-abcd-ef1234567890"
operation.​statusstringrequired
Enum"PREVIEW""QUEUED""PROCESSING""FAILED""COMPLETED""CANCELLED""AWAITING_UPDATES"
operation.​typestringrequired
Enum"ADMIN_GENERIC""DOMAIN_ADMIN_UPDATE""DOMAIN_RENEW""ACCOUNT_UPDATE""DOMAIN_DNS_RECORD_CREATE""DOMAIN_DNS_RECORD_UPDATE""DOMAIN_DNS_RECORD_DELETE""DOMAIN_DNS_RECORD_BATCH""DOMAIN_DNS_SECURITY_ENABLE""DOMAIN_DNS_SECURITY_DELETE"
operation.​domainstring
operation.​createdAtTimestampnumberrequired
operation.​lastUpdatedTimestampnumberrequired
operation.​validUntilTimestampnumber
operation.​dependenciesArray of any(PlatformOperationDependency)required

List of platform operation dependencies that make up this operation

operation.​dependencies[].​idstringrequired
Example: "plop_abc12345-1234-1234-1234-abc123456789"
operation.​dependencies[].​@typestringrequired
Value"unstoppabledomains.com/partner.v3.PlatformOperation"
operation.​dependencies[].​statusstring(PlatformOperationStatus)required

Status of a platform operation dependency

Enum"PREVIEW""QUEUED""PROCESSING""FAILED""COMPLETED""CANCELLED""AWAITING_UPDATES"
operation.​dependencies[].​typestringrequired
Value"DOMAIN_REGISTER"
Discriminator
operation.​dependencies[].​parametersobjectrequired
operation.​dependencies[].​parameters.​ownerobject(ContactAssignment)required

Reference to an existing or newly created contact

operation.​dependencies[].​parameters.​owner.​newbooleanrequired

Whether this contact is being newly created as part of this operation

operation.​dependencies[].​parameters.​owner.​idstring

Contact ID (present when new is false)

Example: "con_abc12345-1234-1234-1234-abc123456789"
operation.​dependencies[].​parameters.​contactsobject(NonRegistrantContacts)

Non-registrant contact role assignments (admin, billing, tech)

operation.​dependencies[].​parameters.​periodinteger

Registration period in years

Example: 1
operation.​dependencies[].​errorobject(OperationDependencyError)

Error details for a failed operation dependency

Response
application/json
{ "@type": "unstoppabledomains.com/partner.v3.DomainHostingOperationResult", "operation": { "@type": "unstoppabledomains.com/partner.v3.Operation", "id": "op-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "PREVIEW", "type": "ADMIN_GENERIC", "domain": "string", "createdAtTimestamp": 0, "lastUpdatedTimestamp": 0, "validUntilTimestamp": 0, "dependencies": [] } }

Account

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

Operations