---
title: "Self-serve developer key (free; abuse control, not gating)"
method: POST
path: "/v1/keys"
---

# Self-serve developer key (free; abuse control, not gating)

`POST /v1/keys`

## Request

- Base URL: `https://mercantry.org`
- URL: `https://mercantry.org/v1/keys`
- Auth: none declared

## Request body

- object
  - `developer_name` string, required
  - `contact` string, required
  - `webhook_url` string: Optional http(s) URL for booking state-change webhooks.

## Response `200`

New key (reg_...) and documented rate limit.

## Other responses

- `400`: invalid_developer_name | invalid_contact | invalid_webhook_url.
- `429`: key_minting_limit_per_ip | key_minting_limit_global — Retry-After says when the rolling 24h window frees up.

---

[API](https://skmtc.dev/mercantry/apis/registry-agent-native-merchant-registry-rest-mirror.md) · [All operations](https://skmtc.dev/mercantry/apis/registry-agent-native-merchant-registry-rest-mirror/llms.txt) · [OpenAPI document](https://skmtc.dev/mercantry/apis/registry-agent-native-merchant-registry-rest-mirror/revisions/0a9bf614fe96?raw)
