Skip to main content
POST
Create a domain
Connect a domain you already own to the workspace bound to your API key. This endpoint does not buy or register a domain.

Authentication and permission

Use a workspace API key with Custom domains: Write (custom_domains.create). Do not send a workspace ID; the key determines it. The workspace plan must also include custom domains.
Biqli rejects its own application domain, malformed hosts, unsafe or blacklisted hosts, and domains claimed by another account. Unknown fields and internal numeric IDs are not accepted.

Successful response

A new claim returns 201 Created. Add every record exactly as returned:
For an apex host such as example.com, the routing record is an A record whose name is @. Subdomains use a CNAME. The TXT record proves ownership. Use the returned values rather than assuming a target. Biqli also sends the domain owner a professional setup email containing these records for a brand-new claim. It does not send that email again when an already-owned domain is attached to another workspace.

Idempotent attachment

If the same API-key owner already owns the host, Biqli safely attaches it to the current workspace and returns 200 OK. created is false; attached is true only when this call created a new workspace attachment. Its existing DNS verification and SSL state are preserved.

Next steps

  1. Publish both records from dns_config at your DNS provider.
  2. Use Retrieve DNS configuration whenever you need the exact values again.
  3. Call Verify a domain after DNS propagation.
  4. Wait until the returned domain has status: active before using it for production links.

Errors

Every error includes a request_id, also returned in X-Biq-Request-Id.

Shared API behavior

Authentication is workspace-scoped; see Authentication. Errors use the standard envelope and request IDs described in Errors, and requests are subject to Rate limits.

Authorizations

Authorization
string
header
required

A workspace API key beginning with biqli_.

Body

application/json
host
string
required
Maximum string length: 100
Example:

"go.example.com"

Response

An already-owned domain was returned or attached.

domain
object
required
dns_config
object
required
created
boolean
required
attached
boolean
required
status
string
required
Allowed value: "success"