---
title: "Verify PIN"
method: POST
path: "/auth/me/pin/verify"
tags: ["auth"]
---

# Verify PIN

`POST /auth/me/pin/verify`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/auth/me/pin/verify`
- Auth: API key in header `Authorization`

Checks the entered PIN. A wrong PIN is 401 `pin_incorrect` with `attempts_remaining`; the guess that exhausts the window — and any entry while locked — is 423 `pin_locked` with `locked_until`. 404 `pin_not_set` when no PIN is enrolled.

## Request body

- InternalDeliveryHttpHandlerPinRequest
  - `pin` string

## Response `200`

OK

- InternalDeliveryHttpHandlerPinVerifyResponse
  - `data` InternalDeliveryHttpHandlerPinVerifyData
    - `attempts_remaining` integer
    - `locked_until` string
    - `valid` boolean
  - `success` boolean

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found
- `423`: Locked

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
