# TLD Catalogue
Source: https://docs.namify.tech/TLD-catalogue
Namify supports a broad portfolio of TLDs through a single integration. Pricing is partner-specific and reflects your negotiated commercial terms.
## Supported TLD categories
| Category | Example |
| :- | :- |
| Legacy gTLDs | .com, .net, .org |
| Popular new gTLDs | .store, .online, .tech |
| Country-code (ccTLDs) | Select ccTLDs - varies by partner agreement. |
| Industry-specific | .design, .agency, .studio, and more. |
## Programmatic access
Use the TLD pricing endpoint to get the full, current list of supported TLDs with registration and renewal pricing:
```shellscript theme={null}
{
"tlds": [
{
"tld": ".com",
"registration_price": 11.99,
"renewal_price": 14.99,
"transfer_price": 11.99,
"currency": "USD",
"min_period": 1,
"max_period": 10,
"privacy_available": true,
"restrictions": null
},
{
"tld": ".store",
"registration_price": 2.99,
"renewal_price": 9.99,
"transfer_price": 9.99,
"currency": "USD",
"min_period": 1,
"max_period": 10,
"privacy_available": true,
"restrictions": null
}
]
}
```
## TLD restrictions
Some TLDs have registration requirements (e.g., .us requires a US nexus category, .eu requires EU/EEA residency). When restrictions apply, the restrictions field contains details. Attempting to register without meeting requirements returns a 422 error with the specific missing fields.
## Pricing tiers
Prices displayed above are illustrative. Your actual pricing depends on your partner agreement, volume tier, and any promotional arrangements. Contact your partner manager for a detailed pricing schedule.
# API Overview
Source: https://docs.namify.tech/api-overview
The Namify API is a RESTful JSON API over HTTPS. All requests and responses use JSON. The API is versioned in the URL path.
**Base URL:** `https://dev.namify.host`\
**Purpose:** Testing and development in a safe environment with no real charges.
**Base URL:** `https://namify.host`\
**Purpose:** Live domain purchases, renewals and domain management
**AI-Ready Documentation**
Copy any endpoint and use ChatGPT or Claude to generate production-ready code — or use the\
**“Ask a question…”** for instant answers inside the docs.
## Versioning
The version is embedded in the URL path (/v1/). Breaking changes increment the major version with at least 6 months of parallel support. Non-breaking changes (new fields, new endpoints) ship continuously.
## Request format
All request bodies must be JSON with Content-Type: application/json. Query parameters are used for filtering and pagination on GET requests.
## Response structure
Response shapes vary by endpoint. Most successful responses return a flat JSON object:
```json theme={null}
// Action response (e.g. register, renew, DNS)
{ "status": "SUCCESS", "message": "Domain registered successfully", "order_id": 124680932 }
// Creation response (e.g. customer signup)
{ "message": "Customer created", "customer_id": 85384231 }
// List response (e.g. domain orders)
{ "total_orders": 42, "orders_on_page": 10, "orders": [ ... ] }
```
Error responses return a `message` field. Errors originating from the upstream registrar also include a `status` field:
```json theme={null}
// Validation or auth error
{ "message": "The search term field is required." }
// Upstream registrar error
{ "status": "ERROR", "message": "Invalid order ID" }
```
## Pagination
The `/api/v1/domains/orders` endpoint is the only paginated endpoint. It uses page-based pagination via the `page` query parameter (defaults to `1`). The response includes `total_orders` (total matching records) and `orders_on_page` (count on the current page).
## Common headers
| Type | Description |
| - | - |
| Authorization | Bearer `nk_live_` or `Bearer nk_test_` |
| Content-Type | Application/json (required on `POST PUT PATCH`) |
| X-RateLimit-Remaining | Requests remaining in the current window. |
| X-RateLimit-Reset | Unix timestamp when the window resets. |
## HTTP status codes
| Code | Description |
| - | - |
| 200 | Success. |
| 201 | Resource created (e.g. customer signup). |
| 400 | Upstream request error. |
| 401 | Unauthorized. API key is missing or invalid. |
| 422 | Unprocessable. Validation failed or the registrar rejected the request. |
| 500 | Unexpected server error. |
| 502 | Upstream registrar returned an unexpected or unparseable response. |
# List Customers
Source: https://docs.namify.tech/api-reference/customer/all-customers
GET /api/v1/customers
Returns a paginated list of customer accounts belonging to your partner account.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Auto-Login
Source: https://docs.namify.tech/api-reference/customer/auto-login-token
POST /api/v1/customers/auto-login
Generates a short-lived authentication token for an existing customer account, identified by their email address.
**Use case:** Pass the returned `token` as a query parameter in the auto-login redirect URL to log the customer into their account without requiring a password. This is intended for partner-initiated flows — for example, redirecting a customer from your platform directly into their Namify control panel.
**Token expiry:** Tokens are valid for a short window. Redirect the customer immediately after calling this endpoint — do not store or reuse the token.
**Customer requirement:** The email must match an account previously created via `POST /api/v1/customers/signup`. Submitting an unregistered email returns a `422` error.
After generating a token, redirect to the following URL to log in a customer without a password:\
\
https\://\[your-subdomain].namify.tech/auto-login?token=\[token]
# Customer Details
Source: https://docs.namify.tech/api-reference/customer/get-customer
GET /api/v1/customers/details
Retrieves the account details of an existing customer, identified by their email address.
**Customer ID:** The response includes the customer's `customer_id` — the identifier required for subsequent operations such as `POST /api/v1/domains/register` and `GET /api/v1/domains/orders`. Use this endpoint to look it up if it was not stored at signup.
**Customer requirement:** The email must match an account previously created via `POST /api/v1/customers/signup`. Submitting an invalid or unregistered email returns a `422` error.
# Delete Customer
Source: https://docs.namify.tech/api-reference/customer/remove-customer
DELETE /api/v1/customers
Permanently deletes a customer account and all associated data.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Create Customer
Source: https://docs.namify.tech/api-reference/customer/signup
POST /api/v1/customers/signup
Creates a new end-customer account under your reseller account.
**Customer ID:** On success, the response includes a `customer_id`. Store it — this is the identifier required for all subsequent operations such as `POST /api/v1/domains/register` and `GET /api/v1/domains/orders`.
**WHOIS contact:** The name, address, phone, and email supplied here are automatically set as the registrant, admin, tech, and billing contact for every domain registered under this account. Ensure the details are accurate and in English — non-ASCII characters may cause upstream validation failures.
**Email uniqueness:** The email address serves as the customer's login username and must be unique across the platform. Submitting a duplicate email returns a `422` error.
**Password requirements:** 9–15 characters, including at least one uppercase letter, one lowercase letter, one digit, and one special character from `~ * ! @ $ # % _ + . ? : , { }`.
**State field:** Use the full state or province name (e.g. `California`, `England`). If the country has no states, pass `Other`.
> For a list of supported Countries & their States use [countries.json](/api-reference/customer/countries-json)
# Update Customer
Source: https://docs.namify.tech/api-reference/customer/update-customer
PUT /api/v1/customers/details
Updates contact information for an existing customer account.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Activate DNS
Source: https://docs.namify.tech/api-reference/dns/activate-dns
POST /api/v1/dns/activate
Activates the DNS service for a domain order, enabling DNS record management for that domain.
**Prerequisite:** DNS must be activated before any DNS records (A, AAAA, CNAME, MX, TXT) can be added to the domain. Call this endpoint once per domain before using the other DNS endpoints.
**Ownership check:** The `order_id` must belong to a domain under your partner account. Orders from other partners will be rejected with a 422.
# Add A
Source: https://docs.namify.tech/api-reference/dns/add-a-record
POST /api/v1/dns/a-record
Adds an A record to the domain's DNS zone, mapping a hostname to an IPv4 address.
**Use case:** Point your domain or subdomain to a server's IPv4 address (e.g. point `www.example.com` → `203.0.113.10`).
**Prerequisite:** DNS service must be activated for the domain via `POST /api/v1/dns/activate` before records can be added.
# Add AAAA
Source: https://docs.namify.tech/api-reference/dns/add-aaaa-record
POST /api/v1/dns/aaaa-record
Adds an AAAA record to the domain's DNS zone, mapping a hostname to an IPv6 address.
**Use case:** Point your domain or subdomain to a server's IPv6 address for IPv6-capable networks.
**Prerequisite:** DNS service must be activated for the domain via `POST /api/v1/dns/activate` before records can be added.
# Add CNAME
Source: https://docs.namify.tech/api-reference/dns/add-cname-record
POST /api/v1/dns/cname-record
Adds a CNAME (Canonical Name) record to the domain's DNS zone, aliasing one hostname to another.
**Use case:** Alias a subdomain to another hostname — for example, point `www.example.com` → `example.com`, or point `shop.example.com` → a third-party platform's domain.
**Prerequisite:** DNS service must be activated for the domain via `POST /api/v1/dns/activate` before records can be added.
# Add MX
Source: https://docs.namify.tech/api-reference/dns/add-mx-record
POST /api/v1/dns/mx-record
Adds an MX (Mail Exchanger) record to the domain's DNS zone, directing inbound email to a mail server.
**Use case:** Route email for the domain to a mail server — for example, to configure Google Workspace, Microsoft 365, or a custom mail server.
**Prerequisite:** DNS service must be activated for the domain via `POST /api/v1/dns/activate` before records can be added.
# Add TXT
Source: https://docs.namify.tech/api-reference/dns/add-txt-record
POST /api/v1/dns/txt-record
Adds a TXT record to the domain's DNS zone. TXT records store arbitrary text data and are widely used for domain verification and email authentication.
**Common use cases:**
- **Domain verification:** Prove ownership to Google Search Console, Stripe, and similar services (e.g. `google-site-verification=abc123`).
- **SPF:** Define authorised mail senders to reduce spam (e.g. `v=spf1 include:_spf.google.com ~all`).
- **DKIM:** Publish a public key for email signing (typically on a `selector._domainkey` host).
- **DMARC:** Set email authentication policy (typically on `_dmarc` host).
**Prerequisite:** DNS service must be activated for the domain via `POST /api/v1/dns/activate` before records can be added.
# Delete A
Source: https://docs.namify.tech/api-reference/dns/delete-a-record
DELETE /api/v1/dns/a-record
Deletes an A record from the domain's DNS zone.
# Delete AAAA
Source: https://docs.namify.tech/api-reference/dns/delete-aaaa-record
DELETE /api/v1/dns/aaaa-record
Deletes an AAAA record from the domain's DNS zone.
# Delete CNAME
Source: https://docs.namify.tech/api-reference/dns/delete-cname-record
Delete /api/v1/dns/cname-record
Deletes a CNAME record from the domain's DNS zone.
# Delete MX
Source: https://docs.namify.tech/api-reference/dns/delete-mx-record
DELETE /api/v1/dns/mx-record
Deletes an MX record from the domain's DNS zone.
# Delete TXT
Source: https://docs.namify.tech/api-reference/dns/delete-txt-record
DELETE /api/v1/dns/txt-record
Deletes a TXT record from the domain's DNS zone.
# Modify A
Source: https://docs.namify.tech/api-reference/dns/modify-a-record
PUT /api/v1/dns/a-record
Modifies an existing A record on the domain's DNS zone.
# Modify AAAA
Source: https://docs.namify.tech/api-reference/dns/modify-aaaa-record
PUT /api/v1/dns/aaaa-record
Modifies an existing AAAA record on the domain's DNS zone.
# Modify CNAME
Source: https://docs.namify.tech/api-reference/dns/modify-cname-record
PUT /api/v1/dns/cname-record
Modifies an existing CNAME record on the domain's DNS zone.
# Modify MX
Source: https://docs.namify.tech/api-reference/dns/modify-mx-record
PUT /api/v1/dns/mx-record
Modifies an existing MX record on the domain's DNS zone.
# Modify TXT
Source: https://docs.namify.tech/api-reference/dns/modify-txt-record
PUT /api/v1/dns/txt-record
Modifies an existing TXT record on the domain's DNS zone.
# View DNS Records
Source: https://docs.namify.tech/api-reference/dns/view-dns-records
GET /api/v1/dns/dns-records
Returns DNS records for a domain. Use `record_type` to filter by type — defaults to `A` if omitted. Supported types: `A`, `AAAA`, `CNAME`, `MX`, `TXT`, `NS`, `SRV`, `SOA`.
**Prerequisite:** DNS service must be activated for the domain via `POST /api/v1/dns/activate` before records can be retrieved.
# Availability
Source: https://docs.namify.tech/api-reference/domains/availability
GET /api/v1/domains/availability
**Being phased out.** This endpoint will be retired soon. New integrations should use [MetaSearch](/api-reference/domains/metasearch), which returns exact-match availability, alternative names, AI-generated suggestions, and live pricing in one call.
Checks whether one or more domain names are available for registration across the specified TLDs.
**Input format:** `search_term` accepts a single SLD string or an array of SLD strings (label only — no dots or TLD). Pass the TLD(s) separately via `tlds[]`. This allows you to check the same name across multiple extensions in one request (e.g. `search_term=example&tlds[]=com&tlds[]=store&tlds[]=tech`).
**TLD filtering:** Only TLDs enabled on your partner account are checked. Any requested TLD not in your allowed list is silently ignored. If no valid TLDs remain after filtering, the request falls back to your first allowed TLD.
**Premium domains:** If a result has `premium: true`, the domain is available but carries a premium price. If your partner account does not support premium registrations, these are returned with `available: false`.
**Result interpretation:** Each result in the `results` array corresponds to one domain+TLD combination. Check the `available` field to determine purchasability. Use this endpoint before calling `POST /api/v1/domains/register` to avoid failed registration attempts.
> Premium domains are not currently supported by our APIs for registration.
# Delete Domain
Source: https://docs.namify.tech/api-reference/domains/delete-domain
POST /api/v1/domains/delete
Deletes a domain order.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Domain Details
Source: https://docs.namify.tech/api-reference/domains/domain-details
GET /api/v1/domains/details
Returns detailed information for a specific domain order.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# List Transfers
Source: https://docs.namify.tech/api-reference/domains/list-transfers
GET /api/v1/transfers
Returns a paginated list of domain transfers associated with your partner account.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Lock / Unlock
Source: https://docs.namify.tech/api-reference/domains/lock-unlock-domain-transfer
PUT /api/v1/transfers/lock
Locks or unlocks the transfer status of a domain to prevent or allow transfers to another registrar.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# MetaSearch
Source: https://docs.namify.tech/api-reference/domains/metasearch
api-reference/metasearch-openapi.json GET /v1/search
Search a name and return the best available domains: the exact match, available alternatives, and optional AI-generated suggestions, each with live pricing.
Returns a ranked set of available domains for a search term: the exact-match domain, available alternatives, and (optionally) AI-generated brandable suggestions, each with ready-to-display pricing.
**How it works:** Pass a `search_term`: either a bare name (`coffee`) or a full domain including a TLD (`coffee.com`). The response leads with a featured result (`type: "hero"`), followed by the results list, and (when enabled) a trailing block of AI-suggested names. Every item carries a live `available` flag and a `pricing` object (`null` when the domain is taken).
**Suggestions:** Set `autosuggest=true` and MetaSearch automatically suggests additional available names (close variations around your search term) in the results list. Set `aisuggest=true` and it appends a block of AI-suggested, brandable names (each `type: "ai_suggestion"`). Both are off by default; enable either or both.
**Pricing:** Each available result includes a `pricing` object with the registration and renewal price, an `is_free_first_year` flag, and a ready-to-display `summary` string (e.g. `"1st Year Free, then $9.99/yr"`). Prices are scoped to your partner account's catalogue.
**The searched domain:** When the search includes a TLD (e.g. `coffee.com`), the row matching that exact domain is flagged with `is_searched_exact: true`, so you can highlight "the domain you searched," whether it's available or taken.
# Orders
Source: https://docs.namify.tech/api-reference/domains/orders
GET /api/v1/domains/orders
Returns a paginated list of domain orders belonging to a specific customer under your partner account.
**Statuses returned:** Only orders with a current status of `Active`, `Suspended`, `Pending Delete Restorable`, or `Expired` are included. Domains past their expiry date are automatically marked as `Expired` based on their `expiry_timestamp`, regardless of the upstream registry status.
**Pagination:** Results are paged. Use the `page` parameter to navigate through large result sets. The response includes `total_orders` (total matching records across all pages) and `orders_on_page` (count on the current page).
**Filtering:** Use the optional `search` parameter to filter results by domain name keyword.
**Renewal workflow:** The `expiry_timestamp` on each order is the value you must pass to `POST /api/v1/domains/renew`. Always fetch the latest value from this endpoint immediately before submitting a renewal to avoid expiry mismatch errors.
# Registration
Source: https://docs.namify.tech/api-reference/domains/registration
POST /api/v1/domains/register
Registers a domain name under an existing customer account.
**Before registering**, always verify the domain is available using `GET /api/v1/domains/availability`. Attempting to register an unavailable domain will result in a failed order.
**Customer requirement:** The `customer_id` must correspond to an account previously created via `POST /api/v1/customers/signup`. The customer's saved contact details are automatically used as the WHOIS registrant, admin, tech, and billing contacts for the domain.
**Billing:** A billing settlement is performed automatically before the registration is submitted to the registry. If the settlement fails, the registration will not proceed.
**Duration:** You may register for 1–10 years. Some TLDs enforce a minimum registration period — check TLD-specific requirements if registration fails for a short duration.
**On success**, the response includes an `order_id` which is required for subsequent operations such as renewal, DNS management, and privacy protection.
# Renewal
Source: https://docs.namify.tech/api-reference/domains/renewal
POST /api/v1/domains/renew
Extends the registration term of an existing domain order before it expires.
**Ownership check:** The `order_id` must belong to a domain under your partner account. Orders from other partners will be rejected with a 422.
**Expiry verification:** The `expiry_timestamp` must exactly match the domain's current expiry as a Unix epoch timestamp. This acts as an optimistic concurrency check to prevent accidental double-renewals. Retrieve the current value from `GET /api/v1/domains/orders` before submitting.
**Billing:** A billing settlement is performed automatically before the renewal is submitted to the registry. If the settlement fails, the renewal will not proceed.
**Duration:** Renewals are accepted for 1–9 years. Some TLDs enforce a minimum renewal period (e.g. 2 years for `.ai`) — if the renewal fails for a short duration, try increasing the `duration`.
**Timing:** Renew before the domain expires. Domains in `Pending Delete Restorable` status may require a restore instead of a standard renewal.
# Suggestions
Source: https://docs.namify.tech/api-reference/domains/suggestions
GET /api/v1/domains/suggestions
**Being phased out.** This endpoint will be retired soon. New integrations should use [MetaSearch](/api-reference/domains/metasearch), which returns exact-match availability, alternative names, AI-generated suggestions, and live pricing in one call.
Returns a list of available domain name suggestions derived from a keyword. Useful for surfacing alternatives when the exact domain a customer wants is already taken.
**How it works:** The engine generates variations of the `search_term` keyword — such as prefixes, suffixes, and synonyms — and returns only those that are currently available for registration. Each suggestion includes `available`, `premium`, `sld`, and `tld` fields in the same format as the availability check endpoint.
**TLD scoping:** Use `tld` to restrict suggestions to one or more extensions. Only TLDs enabled on your partner account are used — unrecognised values are silently ignored and fall back to your first allowed TLD.
**Premium domains:** Suggestions with `premium: true` carry a higher registration price. If your partner account does not support premium registrations, these are returned with `available: false`.
**Recommended flow:** Use this endpoint alongside `GET /api/v1/domains/availability` — present exact-match results first, then fall back to suggestions when the target domain is unavailable.
# Auto-Renewal
Source: https://docs.namify.tech/api-reference/domains/toggle-auto-renew
PUT /api/v1/domains/auto-renew
Enables or disables automatic renewal for a domain before its expiry date.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Transfer Status
Source: https://docs.namify.tech/api-reference/domains/transfer-status
GET /api/v1/transfers/status
Returns the current status of an in-progress domain transfer.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# View Transfer Code
Source: https://docs.namify.tech/api-reference/domains/view-transfer-code
GET /api/v1/transfers/auth-code
Retrieves the EPP authorization code (also known as the auth code or transfer secret) required to transfer a domain to another registrar.
# Hello
Source: https://docs.namify.tech/api-reference/hello
GET /api/v1/hello
A lightweight health-check endpoint. Use this call to confirm that your bearer token is valid and that the API server is reachable. Returns the current server timestamp and a confirmation message. Ideal for testing credentials during initial integration or diagnosing authentication issues.
# Authentication
Source: https://docs.namify.tech/authentication
All API requests require a Bearer token in the Authorization header. Tokens are scoped to a single partner account and environment.
## Getting your API key
1. Sign in to your **Dashboard**.
2. Go to **Settings > API Key.**
3. Both your sandbox or production keys will be viewable.
4. Copy & use the key based on the environment.
## Using your key
```javascript theme={null}
curl -X GET https://namify.host/api/v1/domains/availability \
-H "Authorization: Bearer nk_live_abc123def456"
```
## Key prefixes
> **nk\_test\_\* -** Sandbox. No charges, simulated registrations.
> **nk\_live\_\* -** Production. Real charges, real ICANN registrations.
Never expose keys in client-side code, Git repos, or logs. Use environment variables.
## Key management
* Up to 2 active keys per account.
* Revoke any key instantly by getting in touch with us.
* Requests using a revoked key return 401 immediately.
## Auth error codes
| Code | Reason for error |
| - | - |
| 401 Unauthorized | Missing or invalid key. Check the header format and key value. |
| 401 key\_revoked | This key has been revoked. Generate a new one via dashboard. |
| 401 key\_expired | Key has passed its expiry date (if an expiry was set). |
| 403 Forbidden | Valid key, but insufficient permissions for this endpoint/resource. |
| 403 environment\_mismatch | Using a sandbox key against production or vice versa. |
# Changelog
Source: https://docs.namify.tech/changelog
Dated entries tracking every API change. Entries are categorized as Added, Improved, Fixed, or Deprecated.
## Versioning policy
The API version is in the URL path (/v1/). Breaking changes increment the major version with at least 6 months of parallel support. Non-breaking additions (new fields, new endpoints) ship continuously without version bumps.
## Format
Each changelog entry follows this structure:
```text theme={null}
## 2026-03-05
### Added
- GET /domains/suggestions endpoint for AI-generated domain alternatives.
- include_suggestions parameter on GET /domains/search.
### Improved
- Domain search response time reduced to <200ms for single-TLD queries.
### Fixed
- 422 error now returns the specific missing field for TLD-restricted registrations.
### Deprecated
- None.
```
# Coupon Codes
Source: https://docs.namify.tech/coupon-codes
POST /api/v1/coupons/validate
Validates a coupon code and returns its applicable discount details.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Enable / Disable
Source: https://docs.namify.tech/enable-disable-privacy
PUT /api/v1/privacy-protection
Enables or disables WHOIS privacy protection on a domain that already has privacy purchased.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Environments
Source: https://docs.namify.tech/environments
Namify provides two fully isolated environments. Same API surface, same endpoints, same response shapes. The only differences are real-world impact and billing.
## Sandbox
| **Variable** | Description |
| :- | :- |
| **Base URL** | [https://dev.namify.host/api/v1](https://dev.api.namify.tech/v1) |
| **Key prefix** | nk\_test\_\* |
| **Billing** | No charges. All transactions succeed without debiting your account. |
| **Registrations** | Simulated. Nothing is submitted to ICANN or any registry. |
| **Availability** | Most standard TLDs return as available. |
| **Webhooks** | Fire normally. Test your integration end-to-end. |
| **Data retention** | Purged every 24hrs. Do not rely on sandbox for persistence. |
| **Pre-funded** | Sandbox accounts come with simulated credit. No setup required. |
## Production
| **Variable** | Description |
| :- | :- |
| **Base URL** | [https://namify.host/api/v1](https://api.namify.tech/v1) |
| **Key prefix** | nk\_live\_\* |
| **Billing** | Real charges. Invoiced monthly or per-transaction
based on your commercial terms. |
| **Registrations** | Live ICANN registrations. Domains are active on the internet. |
| **Webhooks** | Fire normally. |
## Switching environments
Swap two environment variables. No code changes:
```shellscript theme={null}
# Sandbox
NAMIFY_BASE_URL=https://dev.namify.host/api/v1
NAMIFY_API_KEY=nk_test_...
# Production
NAMIFY_BASE_URL=https://namify.host/api/v1
NAMIFY_API_KEY=nk_live_...
```
## Migration path
Build and test against sandbox. When your integration passes the Go-Live Checklist, swap in production credentials. The API behavior is identical the only change is that domains become real and billing begins.
# Fetch Pricing
Source: https://docs.namify.tech/fetch-pricing
GET /api/v1/premiums/pricing
Returns pricing information for premium domains.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Full API
Source: https://docs.namify.tech/full-api
A compltely headless API. Complete registrar-style control. Your users never leave your product.
## What you build
Everything user-facing: domain search, registration, DNS management, billing, renewal flows, expiry notifications, and customer support. Domains are indistinguishable from any other feature in your product.
## What Namify handles
The registrar layer: EPP commands, ICANN accreditation, compliance, WHOIS database updates, and the technical infrastructure that makes domains resolve on the internet.
## Typical integration
Same API calls as Hybrid, but you also own renewal UX, DNS management UI, transfer flows, and all customer communications about domain status. You'll use the full breadth of the API reference: customers, search, registration, renewals, DNS, nameservers, contacts, and webhooks.
## 🤖 AI-Optimized API Integration
All endpoints are structured for AI-assisted development.
Copy any request and use it with ChatGPT or Claude to generate complete backend or frontend integrations instantly.
You can also use the built-in **“Ask a question…”** assistant to explore endpoints, debug issues, and accelerate development directly within the docs.
## When to choose Full API
Choose this tier when domains are a core part of your product (not just a nice-to-have), you have engineering capacity to build and maintain the UX, and you want full control over pricing, messaging, and the customer experience.
**Variation:** Full API partners can request white-label domain management panels for end users and custom modifications to API behavior. Contact your partner manager to scope these.
[Connect with us](mailto:partner@namify.tech) & we can evaluate your fitment for the FULL API solution.
# Get Contacts
Source: https://docs.namify.tech/get-contacts
GET /api/v1/contacts
Retrieves the contact information associated with your partner account.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Go-Live Checklist
Source: https://docs.namify.tech/go-live-checklist
Verify these before switching from sandbox to production. This is the gate between testing and real registrations.
## Authentication
Production API key generated and stored securely (environment variable, secrets manager - never in code).
> Base URL set to [**https://namify.host/api/v1**](https://namify.host/api/v1).
401 & other error handling tested and user-facing messaging in place.
## Integration
* Customer creation flow tested. Every domain registration is tied to a `customer_id.`
* Domain search, availability check, and registration flow tested end-to-end.
* Renewal flow tested (manual and/or auto-renew, depending on your tier).
## Webhooks
* Webhook endpoint deployed and reachable over HTTPS.
* Signature verification implemented and tested.
* Key events handled: `domain.registered`, `domain.renewed`, `domain.expired`, `domain.auto_renew_failed`.
* Idempotent event processing in place (duplicate webhook delivery handled).
## Error handling
4xx errors surfaced to users with clear messaging (domain unavailable, invalid input, payment failed).
Rate limit (429) handling with Retry-After header.
## Operations
* Logging: request\_id from every API response stored for debugging.
* Monitoring: alerts on elevated error rates, failed webhooks, and failed renewals.
* Support escalation path defined (your support team > Namify partner support).
**Tip:** Run through this checklist with your team before enabling production keys. It saves a lot of post-launch fire drills. You can also consult with us to help you through the journey.
# Hybrid
Source: https://docs.namify.tech/hybrid
The best of both worlds. You build a native registration & billing experience on your platform. When users register, you call our APIs - we handle billing, compliance, lifecycle management & support.
## What you build
A native domain search (calling our Search API), a registration/checkout flow, and payment collection through your own billing system.
## What Namify handles
Registrar operations: the actual domain registration, renewal processing, ICANN compliance emails (registrant verification, WHOIS accuracy), transfer management, and dispute resolution.
## Typical integration
A "Get a domain" button or link in your product that redirects to the Namify hosted flow.
User searches for a domain in your product (you call `GET /domains/search`).
User selects a domain and checks out (you collect payment via Stripe, Paddle, or your billing system if needed).
Your backend calls `POST /domains/register` with the customer\_id and domain.
Namify registers the domain and returns the result. You update the user's account.
Namify handles processing and fires webhooks. You update your records accordingly.
## 🤖 Hybrid Integration, Supercharged with AI
Combine manual control with AI-assisted speed.
Copy specific API requests and use ChatGPT or Claude to generate only the parts you need — while keeping full flexibility over your implementation.
Or use the built-in **“Ask a question…”** assistant to understand endpoints, refine logic, and accelerate development directly within the docs.
## Customization
Logo, primary brand color, favicon, and a custom return URL. Configure in Settings > Hosted Flow on your Namify partner dashboard.
**Variation:** If you don't want to handle domain-specific payments, enable hosted billing. Namify collects from your end users directly, handles dunning and retry logic, and pays you a revenue share monthly.
# Welcome to Namify
Source: https://docs.namify.tech/index
We provide domain infrastructure built for SaaS. Our API lets you ship domain search, registration, and management as a native feature inside your product - without becoming a registrar, negotiating with registries, or staffing a domain support team.
This API enables developers, SaaS platforms, and businesses to seamlessly integrate domain operations into their products, automate lifecycle management, and offer domain-linked services through a single, scalable interface.
Domains under management.
Typical API search API response time.
Registrar status baked into the platform.
## Who this is for
CEO’s, CTO’s, Product managers, engineering leads, and DevOps teams at SaaS companies who want to offer custom domains to their users. Website builders, e-commerce platforms, email tools, landing page builders, agency platforms - if your users benefit from a custom domain, Namify powers it.
## What you can do
Let users find and register domains from inside your product.
Programmatically configure A, CNAME, MX, TXT records on registration.
Handle renewals, expiry warnings, transfers, and locks via API.
Set your own margins. Earn on registrations and renewals.
## Quick navigation
New here? Start with the [Quickstart](/quickstart) - zero to a registered domain in 4 API calls.
Need to plan your integration? Read [Integration Patterns.](/integration-patterns)
Ready to build? Jump to the [API Reference](/api-overview).
**AI-First Developer Experience**
Built for AI-assisted development — copy any endpoint into ChatGPT or Claude to generate working code, or use the built-in “Ask a question…” assistant for instant answers and integrations.
# Integration Patterns
Source: https://docs.namify.tech/integration-patterns
Three ways to integrate, same infrastructure underneath. Start with what fits your team today. Can consult your Bizdev partner to evaluate what would suit your needs the best.
## Low Lift
Get up and running in quickly with our hosted flow that helps you test waters.
### You build:
A button or link in your product.
### Namify handles:
Search UI, checkout, billing, domain management, and support.
### Best for:
Testing demand, small teams, MVPs.
\<1 week
***
## Hybrid
The best of both worlds. You build a native registration & billing experience on your platform with domain management and support handled by us.
### **You build:**
Search, registration, and billing UX (calling our APIs).
### **Namify handles:**
Renewals, expiry comms, ICANN/registry compliance.
### **Best for:**
Platforms wanting branded UX without operational overhead.
1-2 weeks
Optional:\
Hosted billing with automated dunning, payment retry, and failed payment recovery.
***
## Full API
Total control. You own the entire user experience — search, checkout, billing, and domain management — all built natively into your product. Namify operates silently in the background, handling the registrar infrastructure so you don't have to.
### **You build:**
Everything user-facing. Domains feel native to your product.
### **Namify handles:**
Registry operations, ICANN accreditation, registrar compliance.
### **Best for:**
Larger partners who can provide their own support.
**30+ days**
Optional:\
White-label management panels. Custom API modifications possible.
***
**Tip:** Not sure which tier? Start with [Low Lift](/low-lift) to validate demand, then move to [Hybrid](/hybrid) or [Full API](/full-api) when you're ready to invest in a branded experience.
# Low Lift
Source: https://docs.namify.tech/low-lift
The fastest way to offer domains. Add a button, we handle everything else. We host everything; search, checkout, management - on a co-branded Namify platform.
## What you build
A "Get a domain" button or link in your product that redirects to the Namify hosted flow.
Optionally, a webhook handler to activate the domain in your product after registration.
## Typical integration
A "Get a domain" button or link in your product that redirects to the Namify hosted flow.
Embed the link as a button or redirect in your product.
Your user completes domain search and registration on the Namify hosted flow.
Your user logs into their Namify dashboard to use and manage their domain
Namify can fire a `domain.registered` webhook to your endpoint with the domain, customer\_id, and order details. Your backend receives the webhook and activates the custom domain in your product.
## 🤖 Fastest Way to Integrate
Copy any API request and paste it into ChatGPT or Claude to generate working code instantly.
Or use the built-in **“Ask a question…”** assistant to understand endpoints and generate integrations in real time — no manual setup, no guesswork.
## Customization
Logo, primary brand color, favicon, and a custom return URL. Configure in Settings > Hosted Flow on your Namify partner dashboard.
## Limitations
You do not control the search UX, checkout flow, or payment collection. If you need that control, move to Hybrid.
**Variation:** You add the search box and API at your end and once the user selects the domain name they are sent to namify.tech to complete the transaction and a optionally webhook to push back the confirmation
# Purchase Privacy
Source: https://docs.namify.tech/purchase-privacy
POST /api/v1/privacy-protection
Adds or renews WHOIS privacy protection for a domain, keeping personal contact details hidden from public lookups.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Quickstart
Source: https://docs.namify.tech/quickstart
Zero to a registered domain in 4 API calls. This guide uses the sandbox - no charges, no real registrations.
**Before you start:**
You'll need a Namify partner account ([request access here](mailto:partner@namify.tech)) and a sandbox API key (prefix: nk\_test\_).
All examples in this guide use the sandbox. Nothing here costs money or touches real registrations.
Switch to production credentials only when you are ready to work with live data.
**Base URL:** `https://dev.namify.host`\
**Purpose:** Testing and development in a safe environment with no real charges.
**Base URL:** `https://namify.host`\
**Purpose:** Live domain purchases, renewals and domain management
## Step 1: Search for a domain
Start by checking whether the domain you want is available.
```json theme={null}
curl -X GET "https://dev.namify.host/api/v1/domains/availability?search_term=janesbakery&tlds[]=com&tlds[]=store" \
-H "Authorization: Bearer nk_test_..."
{
"results": [
{
"product_category": "domain_registration",
"domain_name": "janesbakery.com",
"sld": "janesbakery",
"tld": "com",
"available": true,
"premium": false
},
{
"product_category": "domain_registration",
"domain_name": "janesbakery.store",
"sld": "janesbakery",
"tld": "store",
"available": true,
"premium": false
}
]
}
```
## Step 2: Create a customer
Every domain registration is tied to a customer. Create one to register the domain under.
```shellscript theme={null}
curl -X POST https://dev.namify.host/api/v1/customers/signup \
-H "Authorization: Bearer nk_test_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Smith",
"company": "Janes Bakery",
"email": "jane@example.com",
"password": "SecureP@ss1",
"phone": "5551234567",
"country_code": "1",
"address": "123 Main St",
"city": "San Francisco",
"state": "California",
"zipcode": "94102",
"country": "US"
}'
{
"message": "Customer created",
"customer_id": 85384231
}
```
## Step 3: Register the domain
Found something you like? Let's go ahead and make it yours.
```json theme={null}
curl -X POST https://dev.namify.host/api/v1/domains/register \
-H "Authorization: Bearer nk_test_..." \
-H "Content-Type: application/json" \
-d '{
"customer_id": 85384231,
"domain_name": "janesbakery.com",
"duration": 1
}'
{
"status": "SUCCESS",
"message": "Domain registered successfully",
"order_id": 124680932
}
```
## Step 4: Verify
Congratulations! You should see janesbakery.com with status "Active". That's it -\
four calls from zero to a live custom domain.
```json theme={null}
curl -X GET "https://dev.namify.host/api/v1/domains/orders?customer_id=85384231" \
-H "Authorization: Bearer nk_test_..."
{
"total_orders": 1,
"orders_on_page": 1,
"orders": [
{
"order_id": 124680932,
"domain_name": "janesbakery.com",
"status": "Active",
"expiry": "Mar 5, 2027",
"expiry_timestamp": 1772726400
}
]
}
```
**Tip:** Ready for production? Swap nk\_test\_ for nk\_live\_ and change the base URL to namify.host. Same code, real domains.
# Rate Limits
Source: https://docs.namify.tech/rate-limits
Rate limits protect the platform and ensure fair usage. Limits are per API key.
## Per-endpoint limits
| **Domain search** | 50 requests/second |
| :- | :- |
| **Domain registration** | 10 requests/second |
| **All other endpoints** | 10 requests/second |
| **Burst allowance** | Up to 2x the per-second limit for 5 seconds |
## Response headers
| **X-RateLimit-Limit** | Max requests per window. |
| :- | :- |
| **X-RateLimit-Remaining** | Requests remaining in the current window. |
| **X-RateLimit-Reset** | Unix timestamp when the window resets. |
| **Retry-After** | Seconds to wait (only on 429 responses). |
## Handling 429
When you receive a 429 Too Many Requests, stop sending requests and wait for the number of seconds in the Retry-After header. Implement exponential backoff with jitter to avoid thundering-herd problems when your rate limit resets.
## Need higher limits?
Contact your partner manager or email [partner@namify.tech](mailto:partner@namify.tech) before high-traffic events (product launches, promotions). We can temporarily raise limits with advance notice.
# Registration
Source: https://docs.namify.tech/registration
POST /api/v1/premiums/register
Registers a premium domain under an existing customer account.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Renewal
Source: https://docs.namify.tech/renewal
POST /api/v1/premiums/renew
Renews the registration term of an existing premium domain order.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# Set Contacts
Source: https://docs.namify.tech/set-contacts
POST /api/v1/contacts
Sets or updates the contact information associated with your partner account.
This is what we're building next. If something here unblocks your integration, let us know at [partner@namify.tech](mailto:partner@namify.tech) - it moves up the list.
# All TLD Pricing
Source: https://docs.namify.tech/tld-pricing
GET /api/v1/pricing
Returns your partner pricing for all configured TLDs and privacy protection.
Each TLD entry is keyed by its slug (e.g. `dotcom`, `dotstore`) and contains pricing broken down by operation and duration. Duration keys are integers representing years (for `register`, `renew`, `transfer`, `restore`) or months (for `register_monthly`, `renew_monthly`), and values are the price in USD.
`privacy_protection` is returned as a flat annual price in USD.
# Upcoming
Source: https://docs.namify.tech/upcoming
We're constantly evolving based on partner feedback and market needs. Here's what's in active development.
We're building an MCP (Model Context Protocol) integration that exposes the Namify domain API to AI agents. This enables autonomous domain registration and lifecycle management via natural language.
**Status:**\
Beta testing with select partners.
**Timeline:**\
H2 2026 general availability.
**Usecase:**\
AI coding agents (e.g., Cursor, Claude Code) register and configure domains programmatically during development workflows.
An optimized availability endpoint with sub-millisecond response times, powered by intelligent caching layers and parallel multi-registry queries. Designed for high-traffic search UIs where speed directly impacts conversion.
**Status:**\
Alpha testing in-house.
**Timeline:**\
H2 2026 general availability.
SSL certificates, professional email, and WHOIS privacy protection — all accessible via the same API. These turn domains from a feature into a product line.
**Status:**\
In build.
**Timeline:**\
4-6 months.