Domains API
REST API reference for listing, adding, retrieving, and deleting domains, and managing per-check overrides in DomainCare.
Domains API
Manage your monitored domains programmatically. All endpoints require Bearer authentication.
List domains
GET /api/v1/domainsReturns all domains in your organization.
Response
{
"domains": [
{
"id": "clx1abc...",
"name": "example.com",
"createdAt": "2026-05-01T12:00:00.000Z",
"lastCheckedAt": "2026-05-29T08:00:00.000Z"
}
]
}Add a domain
POST /api/v1/domainsRequest body
{
"domain": "example.com"
}Response (201 Created)
{
"id": "clx1abc...",
"name": "example.com",
"createdAt": "2026-05-29T12:00:00.000Z"
}The domain is validated and normalized before being added. All checks begin running immediately after creation.
Get a domain
GET /api/v1/domains/:idReturns a single domain by ID, including its current check status.
Response
{
"id": "clx1abc...",
"name": "example.com",
"createdAt": "2026-05-01T12:00:00.000Z",
"lastCheckedAt": "2026-05-29T08:00:00.000Z"
}Delete a domain
DELETE /api/v1/domains/:idRemoves a domain and all its check history. This action is irreversible.
Response (204 No Content)
No response body.
Pause or resume a domain
PATCH /api/v1/domains/:idSend a status field to pause or resume monitoring. Minimum scope: write.
{ "status": "paused" }Resuming ("status": "active") respects your plan's active-domain limit — if you're already at the limit, the request returns 402 domain_limit_reached and the domain stays paused. Pause another domain or upgrade first.
You can also send disabledChecks (a string array of check types to disable) on the same endpoint, either instead of or alongside status. A body with neither field returns 400.
Response (200 OK)
{ "data": { "domainId": "…", "status": "paused" } }Per-check overrides
Control individual check settings per domain — the same controls available in the dashboard's check settings panel.
Get check overrides
GET /api/v1/domains/:id/checks/:checkType/overridesReturns current override state and the event catalog for that check type.
Response
{
"data": {
"domainId": "abc-123",
"checkType": "ssl",
"disabled": false,
"muted": false,
"intervalSeconds": null,
"defaultIntervalSeconds": 21600,
"disabledEventTypes": [],
"severityOverrides": {},
"eventCatalog": [
{ "type": "ssl_cert_expired", "label": "SSL certificate expired", "tone": "failure" },
{ "type": "ssl_cert_expiry_warning", "label": "SSL certificate expiring soon", "tone": "warning" }
]
}
}Update check overrides
PATCH /api/v1/domains/:id/checks/:checkType/overridesPartial update — only provided fields are changed. Requires write scope.
Request body (all fields optional)
{
"muted": true,
"intervalSeconds": 3600,
"disabledEventTypes": ["ssl_weak_cipher_detected", "ssl_weak_protocol_detected"],
"severityOverrides": { "ssl_cert_expiry_warning": "high" }
}Validation rules:
intervalSecondsmust be an allowed preset for the check's speed class, ornullto resetdisabledEventTypesentries must be valid event types for this check (seeeventCatalogin the GET response)severityOverridesvalues must behigh,medium,low, orinfo- Paired events (failure + recovery) are enforced bidirectionally — disabling either side automatically disables the other (e.g. disabling
ssl_recoveredalso disablesssl_validation_issue, and vice versa)
Response — returns the full updated override state (same shape as GET).
Reset check overrides
DELETE /api/v1/domains/:id/checks/:checkType/overridesClears all overrides for this check, reverting to defaults. Requires full scope.
Response (204 No Content)
Valid check types: uptime, ssl, dns, nameserver, rdap, robots, email_auth, redirect, sitemap, lighthouse, blacklist, security_headers, open_ports.
Rate limits
| Plan | Limit |
|---|---|
| Trial | API disabled |
| Paid | 60 requests per minute |
Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response.
Errors
| Status | Meaning |
|---|---|
| 400 | Invalid domain name or request body |
| 401 | Missing or invalid API key |
| 404 | Domain not found |
| 409 | Domain already exists in your organization |
| 429 | Rate limit exceeded |
Automate your domain management
Add, list, and remove domains programmatically with the DomainCare REST API.
Get an API key