---
title: "Verify (Legacy)"
method: POST
path: "/api/v2/verify/{app_id}"
---

# Verify (Legacy)

`POST /api/v2/verify/{app_id}`

Verify a World ID proof for a Cloud action.

## Path parameters

- `app_id` string, required

## Request body

- VerifyProofRequest
  - `nullifier_hash` string, required — The unique user identifier (called the nullifier hash in the ZKP), as provided by [IDKit](/world-id/idkit/integrate).
  - `proof` string, required — The zero-knowledge proof, as provided by [IDKit](/world-id/idkit/integrate).
  - `merkle_root` string, required — Part of the ZKP, the hash of the Merkle root that proves membership to the set of credentials. As provided by [IDKit](/world-id/idkit/integrate).
  - `verification_level` string, required — The verification level, as provided by [IDKit](/world-id/idkit/integrate).
  - `action` string, required — Same action identifier as passed to [IDKit](/world-id/idkit/integrate).
  - `signal_hash` string — The hash of the signal that was used to generate the proof. Defaults to the hash of an empty string.
  - `max_age` integer — The maximum age of the root in seconds. This parameter controls how old the Merkle root used in the proof can be. Minimum value is 3600 (1 hour) and maximum value is 604800 (7 days). Defaults to 7200 (2 hours).

## Response `200`

Verified

## Other responses

- `400` — Invalid or already verified

---

[API](https://skmtc.dev/world/apis/developer-portal-api.md) · [All operations](https://skmtc.dev/world/apis/developer-portal-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/world/developer-portal-api/revisions/a99055a8765b/schema)
