---
title: "Trigger domain verification check"
method: PUT
path: "/v1/merchants/{id}/domain-verification"
tags: ["Merchant Setup"]
---

# Trigger domain verification check

`PUT /v1/merchants/{id}/domain-verification`

## Request

- Base URL: `https://api.insumermodel.com`
- URL: `https://api.insumermodel.com/v1/merchants/{id}/domain-verification`
- Auth: API key in header `X-API-Key`

Checks all three verification methods (DNS TXT, meta tag, file) for the previously requested domain. Rate limited per merchant (429 says when to retry). If already verified, returns the existing verification result. Only the API key that created the merchant can call this.

## Path parameters

- `id` string, required

## Response `200`

Verification result

- object
  - `ok` true
  - `data` object
    - `verified` boolean
    - `domain` string
    - `method` 'dns' | 'meta' | 'file': Present only when verified is true
    - `verifiedAt` string, date-time: Present only when verified is true
    - `message` string: Present only when verified is false
    - `attemptsRemaining` integer: Present only when verified is false
  - `meta` Meta
    - `version` string
    - `timestamp` string, date-time

## Other responses

- `400`: No verification pending
- `401`: Invalid or missing API key
- `403`: API key does not own this merchant
- `404`: Merchant not found
- `429`: Rate limit exceeded (verification attempts for this merchant, or the key's daily request limit; the message says when to retry)
- `500`: Unexpected server error. Safe to retry; no credits are charged on a 500. Router endpoints return the standard error envelope; standalone endpoints (the ones whose 200 is a flat object) return a flat {"error": "..."} object.

---

[API](https://skmtc.dev/insumermodel/apis/insumerapi.md) · [All operations](https://skmtc.dev/insumermodel/apis/insumerapi/llms.txt) · [OpenAPI document](https://skmtc.dev/insumermodel/apis/insumerapi/revisions/91f56fe9e3d8?raw)
