---
title: "Prove ownership and publish (step two)"
method: POST
path: "/api/v1/mcp-directory/servers/{id}/verify"
tags: ["mcp-directory"]
---

# Prove ownership and publish (step two)

`POST /api/v1/mcp-directory/servers/{id}/verify`

## Request

- Base URL: `https://koskamo.com`
- URL: `https://koskamo.com/api/v1/mcp-directory/servers/{id}/verify`
- Auth: none declared

Checks a confirmed email proof if one was started, the well-known file on the endpoint host, then TXT records from that host up to its parent domains (or only `method`). An email proof counts when its link was confirmed within 365 days; with no contact email, the confirmed proof address becomes the contact (contact "proof-address"). Only when a proof is found AND the live check passes is the listing created and the owner key returned, once. An Official MCP Registry entry for the same host is reported as corroboration only. Also completes owner-key recovery started at /recover. Rate limit: 30 requests per hour per IP.

## Path parameters

- `id` string, required

## Request body

- object
  - `token` string, required
  - `method` 'http' | 'dns' | 'email'

## Response `200`

Key recovered. Store ownerKey now; it is never shown again.

- object
  - `status` 'recovered'
  - `ownerKey` string
  - `ownerKeyPrefix` string
  - `listingUrl` string, uri
  - `ownerKeyNote` string: The owner key is shown once; how to store it
  - `update` object: How to PATCH the listing with the owner key
  - `recover` object: Where to start key recovery if the key is lost
  - `nextSteps` string[]
  - `guide` string, uri

## Other responses

- `201`: Published. Store ownerKey now; it is never shown again.
- `400`: Missing token or invalid method
- `403`: Access denied (trusted ingress required)
- `404`: No pending registration for this id and token
- `409`: The id or host was taken after step one
- `410`: The registration expired; start again
- `422`: Proof not found or live check failed; nothing was published. Fix it and retry with the same token.
- `429`: Rate limited (30 requests per hour per IP)

---

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