---
title: "Submit verification code"
method: POST
path: "/api/v1/verify/request/{id}/assets/{assetIndex}/submit"
tags: ["Verify"]
---

# Submit verification code

`POST /api/v1/verify/request/{id}/assets/{assetIndex}/submit`

## Request

- Base URL: `https://api.proof.holdings`
- URL: `https://api.proof.holdings/api/v1/verify/request/{id}/assets/{assetIndex}/submit`
- Auth: none declared

Submit a verification code for an asset (email OTP, etc.).

Accepted only where the code was delivered out-of-band to the party being verified — an email asset, or a domain challenged over `email`. A domain asset challenged over `dns`, `http` or `auto` answers `400 unsupported_for_type` and completes through `POST /api/v1/verify/request/{id}/assets/{assetIndex}/check` instead; a phone asset completes when the code reaches us from that number.

## Path parameters

- `id` string, required: MongoDB ObjectId
- `assetIndex` string, required: Asset index (0-based)

## Request body

- SubmitVerificationCodeRequest: Request body for submitting a verification code
  - `code` string, required: Verification code

## Response `200`

Code submitted

- object

## Other responses

- `400`: Invalid code, `unsupported_for_type` — this asset does not complete by submitting a code — `identifier_mismatch` — the code was mailed to an address not at the domain being proven — or `request_cancelled` — the verification request has been cancelled
- `429`: Rate limit exceeded

---

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