Verificar un dominio propio

Usalo después de publicar los registros DNS para forzar ya la validación del dominio, en lugar de esperar al chequeo automático.

POST
/custom-domains/{customDomain}/verify

Actively re-trigger Cloudflare Domain Control Validation for a domain and persist the resolved canonical status ("verify now", design.md D4/D6/D10)

Escritura · requiere el permiso accounts:write.

Scoped to the authenticated admin: a domain id belonging to another account resolves to a ModelNotFoundException, which the app's global exception handler (bootstrap/app.php) renders as a 404 JSON response for API requests — same behavior a mismatched implicit route-model binding would produce.

Confirmed against a live Cloudflare response: a plain GET never re-kicks validation, so a customer who just published DNS would see "nothing happen" until Cloudflare's own background re-check eventually ran. This method issues a PATCH (via patchSsl()) with the domain's CURRENT ssl_validation_method — a re-trigger, not a method switch — which Cloudflare confirmed re-kicks the DCV check instantly. The resulting state is still asynchronous: it may not reflect ACTIVE in this same response, but is captured here or on a subsequent verify/sweep.

If Cloudflare is unreachable or rejects the request, the domain's persisted status is left untouched and a 502 is returned (the CloudflareApiException thrown by the client already logs the raw error before this method ever sees it).

ssl_validation_string is TXT-specific (design.md D9): it is only re-captured from the response when the domain's method is TXT. For the HTTP default it stays null, matching DnsRecordBuilder's method-aware branching (design.md D12).

Also re-detects the DNS provider hint (design.md D15, Increment 6) following a STICKY policy: detected_provider is only overwritten when the detector returns a non-null value. A transient null (e.g. a flaky lookup) never clobbers a previously good hint. This covers the common case where NS did not resolve yet at store() time (freshly registered domain) but do resolve by the time the admin verifies.

Autorización

http
headerAuthorizationBearer <clave>

Parámetros de la ruta

customDomain*integer

Cuerpo de la respuesta

CustomDomainResource

application/json
  1. response
curl -X POST "https://example.com/custom-domains/0/verify"
{}