---
title: "Verify whether an RPN exists and is active"
method: POST
path: "/api/v1/verify_rpn"
tags: ["Verification"]
---

# Verify whether an RPN exists and is active

`POST /api/v1/verify_rpn`

Look up a Resident Permit Number and report whether it belongs to a
legal entity, a natural person, or is unknown — and whether the
resident currently has an active residency.

Rate-limited to 5,000 requests per 24 hours and 50 per minute, per
API key. Exceeding either bound returns `429`.

Accepts standard API keys (`sk-`) and Agent Keys (`ak-`) holding the
`agent:verify_rpn` scope.

## Request body

- VerifyRpnRequest
  - `rpn` string, required

## Response `200`

Lookup result.

- VerifyRpnResponse
  - `result` 'found_legal_entity' | 'found_natural_person' | 'not_found', required
  - `active` boolean, required — Whether the resident has an active residency.

## Other responses

- `400` — Validation error or precondition failure.
- `401` — Missing or invalid credential.
- `403` — Credential lacks the required scope (Agent Key) or insufficient OAuth scope.
- `429` — Rate limit exceeded. No `Retry-After` header is currently emitted; back off exponentially.
- `500` — Server error.

---

[API](https://skmtc.dev/eprospera/apis/e-pro-spera-api.md) · [All operations](https://skmtc.dev/eprospera/apis/e-pro-spera-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/eprospera/e-pro-spera-api/revisions/9ecdd3ca5a8c/schema)
