---
title: "Re-check a domain"
method: POST
path: "/domain/{domain_id}/recheck"
tags: ["domains"]
---

# Re-check a domain

`POST /domain/{domain_id}/recheck`

## Request

- Base URL: `https://api.faable.com`
- URL: `https://api.faable.com/domain/{domain_id}/recheck`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://faable.auth.faable.link/authorize`, token URL `https://faable.auth.faable.link/oauth/token`)
  - HTTP bearer
  - OAuth 2 (client credentials, token URL `https://faable.auth.faable.link/oauth/token`)
  - HTTP bearer
  - HTTP basic
  - API key in query parameter `apikey`

Check this domain’s DNS now. A dormant domain wakes up: it is checked and served again, and gets two more days to point at Faable.

## Path parameters

- `domain_id` string, required

## Response `200`

Domain

- Domain: Domain
  - `id` string, required: Domain ID
  - `team` string, required
  - `fqdn` string, required: Unique identifier of the domain
  - `tls` boolean, required: TLS is enabled for this domain
  - `app_id` string, nullable: Linked App
  - `verified` boolean, required: If the domain has the ownership verified
  - `active` boolean, required
  - `dns_alias` string, nullable: Internal DNS alias override host
  - `dormant_at` string, date-time, nullable: Set when the domain went dormant: it served no active app and had not pointed at Faable for two days. It is not checked nor served until `POST /domain/:id/recheck`.
  - `recheck_at` string, date-time, nullable: Last manual re-check (Retry) of this domain
  - `status` DomainStatus, required
    - `dns_state` 'pending' | 'ok' | 'misconfigured' | 'error', required: Outcome of the latest DNS verification check
    - `dns_checked_at` string, nullable, required: ISO timestamp of the last DNS change
    - `dns_last_seen_at` string, nullable, required: ISO timestamp of the last DNS check
    - `dns_verified_at` string, nullable, required: ISO timestamp of the first successful DNS verification
    - `dns_error_kind` 'transient' | 'proxy' | 'null', nullable, required: Why an `error` verdict could not conclude
    - `dns_expected` string[], required: Expected CNAME target(s) the fqdn should point to
    - `dns_observed` string[], required: CNAME target(s) actually resolved for the fqdn
    - `dns_expected_ips` string[], required: IPv4 address(es) the expected target currently resolves to
    - `dns_message` string, nullable, required: Human-readable diagnostic of the DNS check
    - `dns_warning` string, nullable, required: Advisory for a verified domain whose DNS is functional but not the record we publish
    - `acme_state` 'pending' | 'ok', required: Whether `_acme-challenge.<fqdn>` delegates to Faable, so the certificate can be issued before the fqdn points here
    - `acme_expected` string[], required: The record that pre-validates the certificate: `_acme-challenge.<fqdn>` CNAME to this target
    - `acme_observed` string[], required: CNAME target(s) resolved for `_acme-challenge.<fqdn>`
    - `tls_state` 'pending' | 'ok', required: Whether the edge serves a valid certificate for the fqdn (checked against the PoP with the fqdn as SNI)
    - `tls_expires_at` string, nullable, required: Expiry of the certificate the edge serves for the fqdn, when `tls_state` is `ok`
  - `metadata` object, required
  - `createdAt` string, required: Domain creation date
  - `updatedAt` string: Domain updated date

## Other responses

- `400`: `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
- `401`: `unauthorized` — The request carries no valid credentials. `invalid_token` — The bearer token is missing, malformed or expired.
- `403`: `forbidden` — The credentials are valid but do not allow this operation. `user_suspended` — The account is suspended. Contact support@faable.com.
- `404`: `not_found` — The resource does not exist, or not in the caller’s project.
- `429`: `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header.
- `500`: `internal_error` — Unexpected server error. Retry later; the request id is logged.
- `503`: `database_unavailable` — Faable cannot reach its database right now. Transient: retry after the `Retry-After` header.

---

[API](https://skmtc.dev/faable/apis/faablecloud-api.md) · [All operations](https://skmtc.dev/faable/apis/faablecloud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/faable/apis/faablecloud-api/revisions/e2fc93da3c49?raw)
