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:- 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 POSThttps://api.goentri.com/token
Headers
Content-Type: application/json
Body
2) Call the API with the JWT
Include the JWT as a Bearer token, and pass your applicationId header on every request:Notes
- Mint tokens server-side only; never ship your secret to the browser.
- Tokens expire after 60 minutes—mint a fresh token as needed.
Domains – Search
Check Domain Availability
GET/domains/availability — Check if a domain is available.
Params
domain(required): Domain name to check (e.g., example.com)
Retrieve Domain Suggestions
GET/domains/suggestions — Returns domain name suggestions using Identity Digital API.
Params
domain(required): Base domain name for suggestionstlds(optional): Comma separated list of TLDs, e.g:com,store,online. If notldsare present as the request parameters, the defaultonline,shopwill be used.
- Identity Digital API
- DynamoDB: Control Table for calculating the price for the given TLDs.
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: 10status(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_faileddomain(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 searchto_date(optional): ISO 8601 Date Format (YYYY-MM-DD) - Used for delimiting the end date of the search
Retrieve Single Domain
GET/domains/{domain_name} — Retrieves detailed information about a specific domain.
Path Parameters:
domain_name(required): Domain name to retrieve
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
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
Retrieve Domain DNS Records
GET/domains/{domain_name}/dns-records — Retrieves all DNS records for a domain
Path Parameters
domain_name(required): Domain name
Update Domain DNS Records
PUT/domains/{domain_name}/dns-records — Updates DNS records for a given domain.
Path Parameters
domain_name(required): Domain name
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.
{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
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
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
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: 10status(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_faileddomain(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 searchto_date(optional): ISO 8601 Date Format (YYYY-MM-DD) - Used for delimiting the end date of the search
Place New Order
POST/orders — Creates a new domain order and Stripe payment intent
Description
Creates a new domain order and Stripe payment intent
Authentication
Required (JWT)
Request Body
order_id: Order identifier.
payment_data: Payment hash required for opening the checkout modal using our built-in loadPayment(payment_data) javascript function.
payment_url: Checkout’s URL for opening the checkout without using the loadPayment javascript function. For more info, refer to loadPayment(payment_data).
loadPayment(payment_data)
This function is part of the entri.js library. It opens a modal that displays the checkout page, and once the customer either completes or cancels the payment process, the modal closes automatically. The result of the transaction is then communicated through a webhook event with type: “domain.purchased”. For more details, please visit our webhook documentation page. Parameters| Name | Type | Description |
|---|---|---|
| payment_data | string | A signed and encoded payment token obtained from the POST /orders endpoint. It contains all necessary information to securely initialize the checkout session. |
javascript
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
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
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

