ContestDrop your site, win 2x $500 in credits.Drop your site, share it on X, win 2x $500 in credits.Enter nowEnter now

Create Domains

View as Markdown
  • POST
  • /workspaces
  • /:workspace
  • /domains

Create a domain of any type (register, claim, point or private)

Request

REQUIRED SCOPES
DOMAIN_MANAGE
URL PARAMETERS
workspacerequiredstring
The human-readable ID of the workspace

Example: "my-company"

BODY PARAMETERS
typerequiredstring enum
The type of the domain to create
Allowed enum:
REGISTERED,
POINTED,
PRIVATE,
CLAIMED
namerequiredstring
The name of the domain to create
auto_renewboolean
Whether to enable auto-renewal for the domain (only if type = REGISTERED)
on_owner_behalfboolean
Whether to register or claim the domain on the workspace owner's behalf (only if type = REGISTERED or type = CLAIMED)

Response

RESPONSE BODY
typestring enum
The type of the domain
Allowed enum:
REGISTERED,
POINTED,
PRIVATE,
CLAIMED
urlread-onlystring
API endpoint to GET this object
html_urlread-onlystring
Web URL to view this object in Buddy.works
namestring
The name of the domain
idstring
The ID of the domain
pointed_viastring[]
auto_renewboolean
Whether the domain is set to auto-renew
transfer_lockboolean
Whether the domain has transfer lock enabled
dnssecboolean
Whether DNSSEC is enabled for the domain
expiry_datestring
The expiration date of the domain registration

Last modified on Oct 7, 2026

Examples

Example: Registered Domain

curl -X POST "https://api.buddy.works/workspaces/:workspace/domains" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "name": "testdomain.pl", "type": "REGISTERED", "auto_renew": true, "on_owner_behalf": false }'
EXAMPLE RESPONSE
{ "url": "https://api.buddy.works/workspaces/my-company/domains/4krmDRPw", "html_url": "https://app.buddy.works/my-company/-/domain/4krmDRPw", "id": "4krmDRPw", "name": "example.com", "type": "REGISTERED", "auto_renew": true, "transfer_lock": true, "dnssec": false, "expiry_date": "2026-09-26T19:30:18Z" }
STATUS
201 Domain created

Example: Claimed Domain

curl -X POST "https://api.buddy.works/workspaces/:workspace/domains" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "name": "mydomain.claim.net", "type": "CLAIMED", "on_owner_behalf": false }'
EXAMPLE RESPONSE
{ "url": "https://api.buddy.works/workspaces/my-company/domains/WEQgvpvg", "html_url": "https://app.buddy.works/my-company/-/domain/WEQgvpvg", "id": "WEQgvpvg", "name": "claim.claimable.com", "type": "CLAIMED" }
STATUS
201 Domain created

Example: Pointed Domain

curl -X POST "https://api.buddy.works/workspaces/:workspace/domains" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "name": "pointed.com", "type": "POINTED" }'
EXAMPLE RESPONSE
{ "url": "https://api.buddy.works/workspaces/my-company/domains/z2Qb9p03", "html_url": "https://app.buddy.works/my-company/-/domain/z2Qb9p03", "id": "z2Qb9p03", "name": "pointed.com", "type": "POINTED", "pointed_via": [ "NS" ] }
STATUS
201 Domain created

Example: Private Domain

curl -X POST "https://api.buddy.works/workspaces/:workspace/domains" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "name": "internal.lan", "type": "PRIVATE" }'
EXAMPLE RESPONSE
{ "url": "https://api.buddy.works/workspaces/my-company/domains/jBQ19Qya", "html_url": "https://app.buddy.works/my-company/-/domain/jBQ19Qya", "id": "jBQ19Qya", "name": "internal.lan", "type": "PRIVATE" }
STATUS
201 Domain created