---
title: "Get Customer Domain"
description: "Returns a single customer domain."
---

`GET /api/customer-domains/:customerDomainPublicId`

The response contains the customer domain itself and does not embed the full customer record.

## Path Parameters

- `customerDomainPublicId` (recommended): customer domain public UUID
- Backward compatibility: legacy numeric IDs are still accepted

Notes:

- Some registries/TLDs (e.g. `.de`) may not publish an expiration date via RDAP.
  In that case, `expiry.domainExpiresAt` can be `null` and `expiry.lastError` may contain an explanatory message.

## Example (cURL)

```bash
BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"

curl -X GET "$BASE_URL/api/customer-domains/22222222-2222-4222-8222-222222222222" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
```

## Example response

```json
{
  "id": 20,
  "publicId": "d70884d9-4cef-4fe5-9b15-341b7dd9e196",
  "customerId": 2,
  "customerName": "Zaskoku & Haupt GbR",
  "label": "Primary Domain",
  "domainName": "cacheassist.io",
  "status": "active",
  "expiryWarningDays": 30,
  "expiryErrorDays": 7,
  "createdAt": "2026-04-03T15:28:40.602Z",
  "updatedAt": "2026-04-03T15:28:40.602Z",
  "expiry": {
    "domainExpiresAt": null,
    "domainRegistrar": null,
    "isExpired": false,
    "lastError": "RDAP query error for cacheassist.io: fetch failed",
    "lastCheckedAt": "2026-04-03T15:29:00.200Z",
    "lastChangedAt": null,
    "lastNotifiedWarningAt": null,
    "lastNotifiedErrorAt": null,
    "lastNotifiedExpiredAt": null
  }
}
```

## Common errors

- `400 Invalid Domain identifier` when `:customerDomainPublicId` is neither a valid UUID nor a legacy numeric ID
- `401 Unauthorized` when you are not logged in
- `403 Forbidden` when you cannot access the domain/customer
- `404 Domain not found` when the domain does not exist

