Skip to main content

Custom Domains

A shop's own address, like book.yourshop.com or www.yourshop.com. Each address opens either the booking page (no EquipDash website needed) or the shop's EquipDash website. A shop can have one of each. Included on the Pro plan.

The shop adds two DNS records where it bought the domain. EquipDash checks every few minutes, sets up the secure padlock, and emails the shop once when the address is live.

Statusesโ€‹

StatusMeaning
pendingThe two records are not showing yet
securingRecords found; the padlock certificate is being set up
liveCustomers can open it over HTTPS
pausedThe plan no longer includes it; nothing is served on it

live is only set once the records are in, the certificate is issued, and the address answers over HTTPS. Treat anything else as not reachable by customers.

The address objectโ€‹

{
"id": 12,
"domain": "book.yourshop.com",
"opens": "booking",
"status": "pending",
"status_label": "Not connected yet",
"status_line": "Add the two records below. We check every few minutes and email you when it is live.",
"live": false,
"url": "https://book.yourshop.com",
"live_since": null,
"records": [
{ "type": "CNAME", "name": "book", "full_name": "book.yourshop.com", "value": "sites.equipdash.com", "purpose": "Sends visitors here" },
{ "type": "TXT", "name": "_equipdash.book", "full_name": "_equipdash.book.yourshop.com", "value": "equipdash-site-verify=...", "purpose": "Proves the domain is yours" }
],
"provider": {
"key": "godaddy",
"name": "GoDaddy",
"url": "https://dcc.godaddy.com/control/portfolio",
"steps": ["Sign in to GoDaddy and open Domain Portfolio.", "Click yourshop.com, then DNS, then Add New Record.", "Add these two, one at a time. Copy each box into the field with the same name."]
},
"last_checked_at": "2026-09-30T02:10:00+00:00"
}

records[].name is the short name most DNS providers want in their Name field (they add the domain themselves). full_name is there for a provider that does not. provider is worked out from the domain's nameservers; other means we did not recognise the company.

List addressesโ€‹

GET /v1/domains

Scope: settings:read

Get an addressโ€‹

GET /v1/domains/{id}

Scope: settings:read. Returns 404 for an address that is not yours.

Add an addressโ€‹

POST /v1/domains

Scope: settings:write

FieldTypeRequiredDescription
domainstringYese.g. book.yourshop.com. A bare yourshop.com is refused - it cannot point at us.
opensstringYesbooking or website. website needs an EquipDash website.
curl -X POST "https://app.equipdash.com/api/v1/domains" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "domain": "book.yourshop.com", "opens": "booking" }'

Returns 201 with the address object. A refused address returns 422 with the reason in error.details.domain, for example when the shop is not on Pro, already has an address of that kind, or the domain is connected to another EquipDash account.

Check nowโ€‹

POST /v1/domains/{id}/check

Scope: settings:write. Looks again straight away instead of waiting for the next scheduled check. Returns the address object, with a plain sentence in meta.message.

Remove an addressโ€‹

DELETE /v1/domains/{id}

Scope: settings:write. The address stops opening the shop's pages at once. Returns 204.