Skip to main content
Use this if… you want to offer domain search, registration, and management directly in your own UI via server-side REST calls — without embedding the Entri modal. If you want an embedded purchase flow instead, see Sell Modal Integration.

Overview

The Entri Sell (Enterprise) API enables you to offer domain search, registration, and management directly within your platform. By integrating with our API, you can sell domains to your customers without needing to manage ICANN compliance, registry integrations, or billing infrastructure. Entri handles the provisioning and maintenance behind the scenes, while you focus on building a seamless customer experience.

Request Structure

All requests to the Entri Sell Enterprise API must be made over HTTPS. Base URL:
General format:
Request headers:
  • Authorization: Bearer {access_token} — required for authentication
  • Accept: application/json — required, JSON is the only supported format
  • Content-Type: application/json — required for requests with a body (POST, PUT)
  • applicationId: {your-application-name} — identifies your integration

Authentication

The Entri Sell Enterprise API uses a short-lived JWT that you mint server-side using your applicationId and secret. Do not expose your secret in client code. The JWT expires after 60 minutes.

1) Create a JWT

Endpoint POST https://api.goentri.com/token Headers Content-Type: application/json Body
Response (200)
JWT creation with applicationId and secret, 60-minute expiry.

2) Call the API with the JWT

Include the JWT as a Bearer token, and pass your applicationId header on every request:
(Use of the JWT in Authorization and the applicationId header is shown across the Secure/Power API examples and applies here as well.) Example

Notes

  • Mint tokens server-side only; never ship your secret to the browser.
  • Tokens expire after 60 minutes—mint a fresh token as needed.

Check Domain Availability

GET /domains/availability — Check if a domain is available. Params
  • domain (required): Domain name to check (e.g., example.com)
Description Checks if a domain is available for registration. Example request
Example response

Retrieve Domain Suggestions

GET /domains/suggestions — Returns domain suggestions based on the base domain name and TLDs. Params
  • domain (required): Base domain name for suggestions
  • tlds (optional): Comma separated list of TLDs, e.g: com,store,online. If no tlds are present as the request parameters, the default online,shop will be used.
Description Returns domain name suggestions for the given base domain name and TLDs. Example request
Example response

Domains – Management

Retrieve List of Domains

GET /domains — Retrieves list of all domains registered through the platform for the authenticated application. Authentication Required (JWT) Params
  • page (optional): Page number. Default first page (0)
  • size (optional): Results per page. Default: 10
  • status (optional): The status of the domain. Supported statuses: payment_initiated, payment_successful, payment_failed, registration_in_progress, registered, transferred, transfer_started, transfer_completed, transfer_ack, transfer_success, transfer_failed
  • domain (optional): The domain name used in the search query.
  • application_id (optional): The application_id used in the search query.
  • from_date (optional): ISO 8601 Date Format (YYYY-MM-DD) - Used for delimiting the start date of the search
  • to_date (optional): ISO 8601 Date Format (YYYY-MM-DD) - Used for delimiting the end date of the search
Example request
Example response

Retrieve Single Domain

GET /domains/{domain_name} — Retrieves detailed information about a specific domain. Path Parameters:
  • domain_name (required): Domain name to retrieve
Authentication Required (JWT) Example request
Example response

Update Domain Automatic Renewal Status

PUT /domains/{domain_name}/auto-renew — Updates the auto-renewal status for a domain. Authentication Required (JWT) Path Parameters
  • domain_name (required): Domain name to set the renew
Request Body
Example request
Example response

Resend Registrant Verification Email

POST /domains/{domain_name}/resend-verification — Resends the registrant verification email for a domain. Path Parameters
  • domain_name (required): Domain name
Description Resends the registrant verification email for a domain. Authentication Required (JWT) Example request
Example response

Retrieve Domain DNS Records

GET /domains/{domain_name}/dns-records — Retrieves all DNS records for a domain Path Parameters
  • domain_name (required): Domain name
Authentication Required (JWT) Example request
Example response

Update Domain DNS Records

PUT /domains/{domain_name}/dns-records — Updates DNS records for a given domain. Path Parameters
  • domain_name (required): Domain name
Authentication Required (JWT) Request Body
Example request
Example response

Domain Transfer In

POST /domains/{domain_name}/transfers/in — Initiates the domain transfer from an external registrar. Path Parameters
  • domain_name (required): Domain name to be transferred.
Description Initiates the domain transfer from an external registrar. Authentication Required (JWT) Request Body
The {AUTHORIZATION CODE} MUST be provided in order to successfully initiate the transfer due to the following purposes:
  • Validates that the person initiating the transfer is the legitimate domain owner
  • Identifies the legal owner or admin of the domain
  • Acts as authentication between the losing registrar and gaining registrar
Example request
Example response

Domain Transfer Out

POST /domains/{domain_name}/transfers/out — Initiates the domain transfer out to an external registrar Path Parameters
  • domain_name (required): Domain name to be transferred to the gaining / external registrar
Description Initiates the domain transfer out to an external registrar Authentication Required (JWT) Request Body
Example request
Example response

Orders

Validate Whois Contacts

POST /domains/contacts/validate — Validates WHOIS contact information before domain registration. Description Validates WHOIS contact information before domain registration. Authentication Required (JWT) Request Body
Example request
Example response

Retrieve Orders

GET /orders — Retrieves list of all orders for the authenticated application. Query Parameters
  • page (optional): Page number. Default first page (0)
  • size (optional): Results per page. Default: 10
  • status (optional): The status of the domain. Supported statuses: payment_initiated, payment_successful, payment_failed, registration_in_progress, registered, transferred, transfer_started, transfer_completed, transfer_ack, transfer_success, transfer_failed
  • domain (optional): The domain name used in the search query.
  • application_id (optional): The application_id used in the search query.
  • from_date (optional): ISO 8601 Date Format (YYYY-MM-DD) - Used for delimiting the start date of the search
  • to_date (optional): ISO 8601 Date Format (YYYY-MM-DD) - Used for delimiting the end date of the search
Authentication Required (JWT) Example request
Example response

Place New Order

POST /orders — Creates a new domain order Description Creates a new domain order Authentication Required (JWT) Request Body
contactDetails requirement depends on your application’s x-lightning-mode setting:
  • If x-lightning-mode is enabled, contactDetails is not required. The system will use the default contact info configured in Application Settings > Sell Contact Info. If sent, it will be ignored.
  • If x-lightning-mode is disabled, contactDetails is mandatory.
Example request
Example response

Retrieve Single Order

GET /orders/{order_id} — Retrieves detailed information about a specific order. Description Retrieves detailed information about a specific order. Path Parameters
  • order_id (required): Order UUID
Authentication Required (JWT) Example request
Example response
Where status is one of the supported: payment_initiated, payment_successful, payment_failed, registration_in_progress, registered, transferred, transfer_started, transfer_completed, transfer_ack, transfer_success, transfer_failed

Check Order Status

GET /orders/{order_id}/status — Checks and updates the current status of an order. Description Checks and updates the current status of an order. Path Parameters
  • order_id (required): Order UUID
Authentication Required (JWT) Example request
Example response
Where status is one of the supported: payment_initiated, payment_successful, payment_failed, registration_in_progress, registered, transferred, transfer_started, transfer_completed, transfer_ack, transfer_success, transfer_failed

Webhook Notifications

When your users go through the Sell flow, Entri will send you webhook notifications to update you on their progress and the status of their purchase. To learn more about the configuration and webhook notifications, please visit our webhook documentation page.

Errors

All errors from the API are returned in a standard JSON structure. The respective HTTP status code is also returned part of the HTTP response headers. Format:
  • message – human-readable description of the error

Security

IP Safelisting

The Entri Sell Enterprise API supports optional IP safelisting. If configured, only requests from approved IPs or CIDR ranges will be accepted. To request or update your safelist, please contact our support team with the IP addresses you would like to register.

Billing Integration

For a streamlined customer experience, you can provide your users with direct access to Entri’s billing management interface directly from your platform. Entri provides an API endpoint that returns a short-lived, authenticated billing link for a specific user. Your backend should request this link dynamically and then redirect the user to it. GET /billing/link — Returns an authenticated billing URL for a customer. Authentication Required (JWT) Query Parameters
  • email (required): The customer’s email address associated with their Entri account
  • returnUrl (required): The URL where the user should be redirected after leaving the billing portal
Example request
Example response
Use the returned url to redirect the user or open the billing experience in a new browser tab. The link is scoped to the authenticated user and expires automatically.