curl -X POST "https://api.scanova.io/custom-domain/verify/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{ "id": 42 }'
{
"id": 42,
"domain": "https://links.example.com",
"is_default": false,
"disable_slug_case": false,
"txt_value": "scanova-verification=abc123...",
"is_txt_verified": true,
"is_cname_verified": true,
"is_migrated": false,
"dns_provider": { "name": "Cloudflare", "placeholders": { "cname": { "content": { "label": "Target" } } } },
"txt_error": null,
"cname_error": null,
"root_action": "no_action",
"redirect": null,
"template": null,
"protocol": "https",
"remove_qr_query": false,
"cname_target": "shortcname.scanova.io",
"domain_connect_supported": false,
"domain_connect_checked_at": null,
"created": "2026-09-08T10:00:00Z",
"modified": "2026-09-08T10:00:00Z"
}
Custom Domains
Verify a custom domain's DNS records
POST /custom-domain/verify/
POST
/
custom-domain
/
verify
/
curl -X POST "https://api.scanova.io/custom-domain/verify/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{ "id": 42 }'
{
"id": 42,
"domain": "https://links.example.com",
"is_default": false,
"disable_slug_case": false,
"txt_value": "scanova-verification=abc123...",
"is_txt_verified": true,
"is_cname_verified": true,
"is_migrated": false,
"dns_provider": { "name": "Cloudflare", "placeholders": { "cname": { "content": { "label": "Target" } } } },
"txt_error": null,
"cname_error": null,
"root_action": "no_action",
"redirect": null,
"template": null,
"protocol": "https",
"remove_qr_query": false,
"cname_target": "shortcname.scanova.io",
"domain_connect_supported": false,
"domain_connect_checked_at": null,
"created": "2026-09-08T10:00:00Z",
"modified": "2026-09-08T10:00:00Z"
}
Re-checks a custom domain’s DNS records and updates its verification status, on the Management API host (
This isn’t a status check — it performs a live TXT and CNAME lookup against the domain right now, and persists whatever it finds (including
api.scanova.io), authenticated with your raw Management API key.
POST https://api.scanova.io/custom-domain/verify/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
Requires an active plan.
integer
required
The domain’s
id, from List custom domains.curl -X POST "https://api.scanova.io/custom-domain/verify/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{ "id": 42 }'
{
"id": 42,
"domain": "https://links.example.com",
"is_default": false,
"disable_slug_case": false,
"txt_value": "scanova-verification=abc123...",
"is_txt_verified": true,
"is_cname_verified": true,
"is_migrated": false,
"dns_provider": { "name": "Cloudflare", "placeholders": { "cname": { "content": { "label": "Target" } } } },
"txt_error": null,
"cname_error": null,
"root_action": "no_action",
"redirect": null,
"template": null,
"protocol": "https",
"remove_qr_query": false,
"cname_target": "shortcname.scanova.io",
"domain_connect_supported": false,
"domain_connect_checked_at": null,
"created": "2026-09-08T10:00:00Z",
"modified": "2026-09-08T10:00:00Z"
}
txt_error/cname_error when a lookup fails). Expect this call to take a moment, and don’t poll it faster than DNS propagation would ever justify. 400 if id isn’t a domain owned by this account.
Related
- List custom domains — see the updated flags without re-running verification.
- Add a custom domain — where
txt_value/cname_targetcome from. - Get a Domain Connect setup link — an alternative one-click setup path that verifies automatically on completion.
- Management API overview — the auth scheme and quota rules that apply to this endpoint.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.
Response
Domain with updated verification flags.
Was this page helpful?