---
title: "Trigger DNS verification"
method: POST
path: "/v1/apps/{app_id}/domains/{domain}/verify"
tags: ["Apps"]
---

# Trigger DNS verification

`POST /v1/apps/{app_id}/domains/{domain}/verify`

Trigger asynchronous DNS TXT record verification for a domain.

The domain status is set to `verifying` immediately. A Celery worker
polls DNS every 30 minutes for up to 72 hours. On success the status
advances to `provisioning_tls`.

## Path parameters

- `app_id` string, required — App ID (e.g. app_abc123def456)
- `domain` string, required — Domain to verify (e.g. search.acme.com)

## Response `200`

Domain record with status set to 'verifying'

- DomainResponse
  - `domain` string, required
  - `status` string, required
  - `verification_token` string, nullable
  - `cname_target` string, nullable
  - `is_primary` boolean, required
  - `verified_at` string, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.net/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mixpeek/mixpeek-api/revisions/220a3b263fda/schema)
