Custom Domains API endpoints to register, list, delete, and verify the custom domains that serve your short links, with SSL and DNS status for each.
Register a Domain
POST/domains
Add a custom domain
Request Body
Field
Type
Description
domain*
string
Must be a subdomain such as links.yourapp.com. Root domains, IP addresses and reserved domains (aplnk.to, warplink.app) are not allowed.e.g. links.myapp.com
Responses
201Domain created
Field
Type
Description
id
string
org_id
string
domain
string
e.g. links.myapp.com
verified
boolean
ssl_status
string
verification_token
string
verified_at
string | null
claimed_at
string | null
Set when this organization proved DNS control and won the exclusive claim on this domain. Null for a pending, unproven claim.
serving_state
"active" | "grace" | "inactive"
Computed from the plan and any trial grace window.
grace_until
string | null
Present only while serving_state is grace.
is_trial
boolean
True for a free-tier trial domain.
trial_ends_at
string | null
The trial's hard end date. Null when the domain is not a trial.
trial_data_reset_at
string | null
The next monthly analytics reset for a trial domain. Null when the domain is not a trial.
created_at
string
updated_at
string
400Validation error
Field
Type
Description
error*
object
401Unauthorized
Field
Type
Description
error*
object
403Forbidden, plan upgrade required, or domain limit exceeded
Field
Type
Description
error*
object
409Domain already registered
Field
Type
Description
error*
object
List Domains
GET/domains
List custom domains
Parameters
Name
Type
In
Description
limit
integer
query
offset
integer
query
Responses
200List of custom domains
Field
Type
Description
data
object[]
pagination
object
401Unauthorized
Field
Type
Description
error*
object
403Forbidden
Field
Type
Description
error*
object
Get a Domain
GET/domains/{id}
Get a custom domain
Parameters
Name
Type
In
Description
id*
string
path
Responses
200Domain details
Field
Type
Description
id
string
org_id
string
domain
string
e.g. links.myapp.com
verified
boolean
ssl_status
string
verification_token
string
verified_at
string | null
claimed_at
string | null
Set when this organization proved DNS control and won the exclusive claim on this domain. Null for a pending, unproven claim.
serving_state
"active" | "grace" | "inactive"
Computed from the plan and any trial grace window.
grace_until
string | null
Present only while serving_state is grace.
is_trial
boolean
True for a free-tier trial domain.
trial_ends_at
string | null
The trial's hard end date. Null when the domain is not a trial.
trial_data_reset_at
string | null
The next monthly analytics reset for a trial domain. Null when the domain is not a trial.
created_at
string
updated_at
string
400Invalid ID
Field
Type
Description
error*
object
401Unauthorized
Field
Type
Description
error*
object
403Forbidden
Field
Type
Description
error*
object
404Not found
Field
Type
Description
error*
object
Delete a Domain
DELETE/domains/{id}
Delete a custom domain
Parameters
Name
Type
In
Description
id*
string
path
Responses
200Deleted domain
Field
Type
Description
id
string
org_id
string
domain
string
e.g. links.myapp.com
verified
boolean
ssl_status
string
verification_token
string
verified_at
string | null
claimed_at
string | null
Set when this organization proved DNS control and won the exclusive claim on this domain. Null for a pending, unproven claim.
serving_state
"active" | "grace" | "inactive"
Computed from the plan and any trial grace window.
grace_until
string | null
Present only while serving_state is grace.
is_trial
boolean
True for a free-tier trial domain.
trial_ends_at
string | null
The trial's hard end date. Null when the domain is not a trial.
trial_data_reset_at
string | null
The next monthly analytics reset for a trial domain. Null when the domain is not a trial.