---
title: "Verify OTP and activate live key"
method: POST
path: "/v1/keys/verify"
tags: ["Keys"]
---

# Verify OTP and activate live key

`POST /v1/keys/verify`

## Request

- Base URL: `https://api.offshoreproz.com`
- URL: `https://api.offshoreproz.com/v1/keys/verify`
- Auth: none required

Complete live key creation. OTP is emailed at POST /v1/keys. Also checks that a Stripe payment method is on file (402 if not).

## Request body

- object
  - `email` string, email, required
  - `otp` string, required: 6-digit code from email

## Response `201`

Live key activated

- object
  - `data` object
    - `key` string: Raw live key — copy now, never shown again
    - `id` string
    - `mode` 'live'
  - `request_id` string

## Other responses

- `402`: Payment method required — add a card at https://docs.offshoreproz.com/billing
- `422`: Invalid OTP, expired, or too many attempts
- `429`: Rate limit exceeded

---

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