POST
/api/v1/workspaces/{workspace_id}/domainsAdd a domain
Adds a domain to a workspace and returns the DNS records to create at your DNS provider.
API token required20 per minute per IP
Guide: Custom domain
Code samples and Try itPath parameters
#workspace_idstringRequiredThe workspace's id, from the address of its settings page (
markdrop.in/settings/workspaces/<workspace-id>) or from List workspaces.
Request body
#application/json, required
hoststringRequiredThe full hostname, like
docs.acme.com. 3–253 characters.kind"app" | "cdn"Requiredappserves documents and files;cdnserves files only.
Responses
#201Created.401No token, or the token is revoked or mistyped.422The request didn't validate.detaillists each problem, with where it is (loc) and why (msg).429Too many requests from your IP address. Wait the seconds inRetry-After.
201 response: 26 fields (DomainResponse)
idstringhoststringkind"app" | "cdn"status"pending" | "verified" | "failed" | "lapsed"created_atstring (date-time)ISO 8601, for example
2026-11-30T12:00:00Z.verified_atstring (date-time) | nullISO 8601, for example
2026-11-30T12:00:00Z.last_checked_atstring (date-time) | nullISO 8601, for example
2026-11-30T12:00:00Z.last_errorstring | nullattachedbooleanDefault
false.is_primarybooleanDefault
false.dns_record_namestring | nulldns_record_typestring | nullDefault
"TXT".dns_record_valuestring | nulldns_target_namestring | nulldns_target_typestring | nulldns_target_valuestring | nullwarningstring | nulllivebooleanDefault
false.routing_okboolean | nulltxt_okboolean | nullfailuresintegerDefault
0.first_failed_atstring (date-time) | nullISO 8601, for example
2026-11-30T12:00:00Z.lapsed_atstring (date-time) | nullISO 8601, for example
2026-11-30T12:00:00Z.expires_atstring (date-time) | nullISO 8601, for example
2026-11-30T12:00:00Z.apex_certainboolean | nullDefault
true.dns_routing_optionsarray of object3 fields inside
typestringnamestringvaluestring