Create Domain
Changed onAdds a domain to your account with the capabilities you want.
Pass registration to buy the domain through Whop; it's the default when you pass no capability. Pay its amount_due at purchase_url, or pass registration.payment_method_id to charge a saved card. Whop then registers it, runs its DNS, and renews it every year while auto_renew is on.
Pass registration.auth_code to transfer in a domain you own at another registrar. The transfer starts once its amount_due is paid, or at once when amount_due is null. While registration.phase is transferring, its issues say what the transfer needs from you.
Pass verification to connect a domain you registered elsewhere: its issues list the TXT and routing records to publish. Pass website with an app_id to serve that app on the domain.
To change a domain you already have, update it instead. Adding a domain this account deleted revives it under its original ID.
Request
- Base URLhttps://api.whop.com/api/v1
- URLhttps://api.whop.com/api/v1/domains
- AuthHTTP bearer
Headers
A unique key that makes this request safe to retry. See Idempotent requests.
Request body
Example request
{
"domain": "store.example.com",
"metadata": {
"project": "website"
},
"registration": {
"auth_code": "Tr4nsfer-Code"
},
"transfer": {
"destination": "internal"
},
"website": {
"app_id": "app_xxxxxxxxxxxxxx"
}
}Response
Domain created
Example response
{
"account_id": "biz_xxxxxxxxxxxxxx",
"apple_pay": {
"state": "pending"
},
"availability": {
"available": true,
"price": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"renewal_price": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"score": 75,
"transfer_price": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
}
},
"created_at": "2026-01-01T12:00:00.000Z",
"domain": "shop.com",
"email": {
"state": "pending"
},
"id": "dom_xxxxxxxxxxxxxx",
"issues": [
{
"capability": "verification",
"code": "verification_required",
"dns_records": [
{
"name": "_whop.shop.example.com",
"type": "TXT",
"value": "whop-domain-verification=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
],
"message": "Publish this TXT record to prove you own the domain. Verification runs automatically."
}
],
"metadata": {
"project": "website"
},
"owned_by": {
"id": "biz_xxxxxxxxxxxxxx",
"route": "biz_xxxxxxxxxxxxxx",
"title": "Rival Shop"
},
"pixel": {
"state": "pending"
},
"platform": {
"state": "pending"
},
"public_record": {
"expires_at": "2026-01-01T12:00:00.000Z",
"name_servers": [
"ns1.example.com"
],
"registered_at": "2026-01-01T12:00:00.000Z",
"registrant": {
"address": "Burlington\nMA",
"contact_url": "https://registrar.example/contact/example.com",
"country": "US",
"organization": "Privacy Protect, LLC"
},
"registrar": {
"iana_id": "9999",
"name": "Example Registrar, Inc.",
"url": "https://registrar.example"
},
"statuses": [
"client transfer prohibited"
],
"updated_at": "2026-01-01T12:00:00.000Z"
},
"registration": {
"amount_due": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"auto_renew": true,
"method": "transfer",
"phase": "awaiting_payment",
"purchase_url": "https://whop.com/checkout/ch_xxxxxxxxxxxxxx/",
"renewal_price": {
"amount": "-1234.56",
"currency": "usd",
"decimals": 2,
"display_decimals": 2
},
"state": "pending"
},
"status": "pending",
"transfer": {
"destination": "internal",
"state": "ready"
},
"updated_at": "2026-01-01T12:00:00.000Z",
"verification": {
"state": "pending",
"verification_expires_at": "2026-01-01T12:00:00.000Z"
},
"website": {
"app": {
"base_url": "https://domains-spec-site.whop.site",
"id": "app_xxxxxxxxxxxxxx"
},
"state": "pending"
}
}Changes
- warning
added the new
transferenum value to the//response property for the response status - info
added the new optional request property
- info
added the required property
to the response with the status
- warning
- info
added the required property
/////to the response with the status
- info