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โ
| Status | Meaning |
|---|---|
pending | The two records are not showing yet |
securing | Records found; the padlock certificate is being set up |
live | Customers can open it over HTTPS |
paused | The 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
| Field | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | e.g. book.yourshop.com. A bare yourshop.com is refused - it cannot point at us. |
opens | string | Yes | booking 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.