---
title: "Step 2, verify: with code, check the mailed code; without, check the DNS TXT record, then the meta tag, then the file. A newly verified product gets its free check queued (private: it lists nothing)"
method: POST
path: "/api/claims/{id}/verify"
tags: ["Claims"]
---

# Step 2, verify: with code, check the mailed code; without, check the DNS TXT record, then the meta tag, then the file. A newly verified product gets its free check queued (private: it lists nothing)

`POST /api/claims/{id}/verify`

## Request

- Base URL: `https://agentdrives.com`
- URL: `https://agentdrives.com/api/claims/{id}/verify`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

## Path parameters

- `id` string, required

## Request body

- object
  - `code` string: The code from POST /api/claims/{id}/email
  - `scan` boolean

## Response `200`

Verified

- object
  - `claim` Claim
    - `id` string
    - `domain` string
    - `tool_slug` string, nullable
    - `status` 'pending' | 'verified'
    - `token` string
    - `listed` boolean: GET /api/me: the product is in the directory
    - `check` object: GET /api/me, a proved domain only: its latest finished free check when another account ran it. You read its result at GET /api/orders/{order_id}/report
      - `order_id` string
      - `checked_at` string, date-time
      - `next_free_at` string, date-time
    - `plan_hint` object, nullable: GET /api/me: the product's cheapest paid plan from its pricing page as we last read it (checked), a suggestion for an order's plan; price_cents null when it isn't billed monthly
      - `plan` string
      - `price_cents` integer, nullable
      - `per_seat` boolean
      - `monthly` boolean, nullable
      - `source` string
      - `checked` string, date
  - `scan` ScanQueued, nullable: The free check a newly verified claim queues (null when the claim was verified before)
    - `queued` boolean
    - `order_id` string
    - `next_free_at` string, date-time: with scanned_recently
    - `reason` string: Why not: scanned_recently, check_running, rate_limited, scan_budget_reached, site_unreachable, flagged_unsafe
    - `fix` string

## Other responses

- `409`: Error as problem details (RFC 9457) with a machine-readable `error` and a `fix` that says what to do next

---

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