A multi-tenant domain registrar service. This page is a quick-start overview of the public API; every endpoint returns JSON and uses standard HTTP verbs and status codes.
Authorization: Bearer <token>.The server implements OAuth 2.1 with PKCE, refresh-token rotation with reuse detection, and unauthenticated Dynamic Client Registration.
GET /.well-known/oauth-authorization-serverGET /oauth/authorizePOST /oauth/tokenPOST /oauth/introspectPOST /oauth/revokePOST /oauth/registerAll tenant-scoped endpoints are rooted at /api/v1/tenants/:tenant_id/.
POST /domains/check — availability checkPOST /domains — register (ICANN TLDs require a quote and an agreement acceptance block)GET /domains — list the tenant's domainsGET /domains/:name — show a single domainPOST /domains/:name/renew — renew for a supplied number of yearsPOST /domains/:name/update_nameservers — replace the nameserver set (external names auto-provision as host rows)POST /domains/:name/update_ds_records — replace the DNSSEC DS record set (full-replacement semantics bridged onto EPP secDNS-1.1 deltas)DELETE /domains/:name/ds_records — clear all DS recordsPOST /domains/:name/update_contacts — assign admin / tech / billing contactsPOST /domains/:name/transfer_in — initiate an inbound transferPOST /domains/:name/approve_transfer_out — approve a pending outbound transferPOST /domains/:name/reject_transfer_out — reject a pending outbound transferPOST /domains/:name/auth_code/rotate — rotate the transfer auth codePOST /domains/:name/transfer_lock — apply clientTransferProhibitedDELETE /domains/:name/transfer_lock — release the transfer lockPOST /domains/:name/apply_hold — place a registrar holdPOST /domains/:name/release_hold — release a registrar holdDELETE /domains/:name — delete the domainPOST /domains/:name/restore — restore a deleted domain during RGPPOST /domains/:name/reconcile — pull registry state back onto the local rowGET /domains/:name/events — audit logPOST /contacts/check — validate a contact handle's availabilityGET /contacts — list the tenant's contactsGET /contacts/:handle — show a single contactPOST /contacts — create a contactPATCH /contacts/:handle — update a contactDELETE /contacts/:handle — delete a contactPOST /contacts/:handle/transfer — transfer a contact between tenantsGET /hosts — list the tenant's hostsGET /hosts/:name — show a single hostPOST /hosts — create a host (subordinate hosts need IPs; external hosts take none)PATCH /hosts/:name — update a host's IPsPOST /hosts/:name/rename — rename a hostDELETE /hosts/:name — delete a hostPOST /hosts/:name/reconcile — pull registry state (statuses + IPs) back onto the local rowGET /tld_associations/:id/certificate — retrieve metadata + public PEM (never the key)PUT /tld_associations/:id/certificate — upload or rotate (key is write-only)DELETE /tld_associations/:id/certificate — remove the stored certificateGET /rate_cards — list active rate cardsGET /rate_cards/:tld — show the active rate card for a TLDPOST /quotes — mint a single-use quote (required for ICANN-TLD register / renew / transfer_in / restore)GET /agreement_versions — list agreement versionsGET /agreement_versions/:id — show a single agreement versionPOST /domains/:name/acceptance — record an acceptanceGET /domains/:name/acceptance — show the active acceptanceGET /domains/:name/acceptance/history — list every acceptance recorded for the domainGET /members — list membersGET /members/:user_id — show a single memberDELETE /members/:user_id — remove a memberPUT /members/:user_id/role — change a member's rolePUT /members/:user_id/activate — activate a memberPUT /members/:user_id/deactivate — deactivate a memberGET /invitations — list pending invitationsPOST /invitations — invite a userDELETE /invitations/:id — revoke an invitationGET /oauth_clients — list the tenant's OAuth clientsGET /oauth_clients/:id — show a single OAuth clientPOST /oauth_clients — register a new OAuth clientDELETE /oauth_clients/:id — revoke an OAuth clientPOST /oauth_clients/:id/rotate_secret — rotate a confidential client's secretGET /sessions — list active sessionsDELETE /sessions/:id — revoke a sessionGET /disputes — list disputesGET /disputes/:id — show a single disputePOST /abuse/reports — public abuse intake (unauthenticated)GET /abuse/cases — list the tenant's abuse cases (read-only)GET /directory/* — directory lookups (requires the directory:read scope)Unauthenticated endpoints that complete a workflow started by a server-sent token — typically delivered to the end user via email or SMS. Each carries its token in the URL or body and requires no bearer token; calling them is the confirmation action itself.
POST /api/v1/invitations/:token/accept — accept a tenant invitationPOST /api/v1/tenants/:tenant_id/contacts/:handle/verify — confirm a contact's email or phoneGET /verify/:tenant_id/:handle — registrar-hosted verification page (HTML fallback when the tenant has no custom verification URL template)POST /verify/:tenant_id/:handle — form submission target for the hosted verification page