List one-time codes

The team's one-time codes, newest first, as the One-time codes page lists them: who each went to, by which channel, its status, when it was made and…

GEThttps://app.usenotix.dev/api/v1/verify

Full access and read only keys can call this. Sending access keys cannot. Key permissions lists the extra rules some calls have.

The team's one-time codes, newest first, as the One-time codes page lists them: who each went to, by which channel, its status, when it was made and expires, wrong guesses left, SMS delivery and the risk score. Filter by status (a pending code past its expiry is expired), channel and risk level; pass nextCursor back as cursor for the next page, limit 1 to 100 (50 by default). A cursor from another list answers 400. A code is never returned: not the code, not anything derived from it, and not the email it was sent in. Phone numbers are masked to their last four digits, as the dashboard shows them. Every read of the list is recorded in the key's audit log.

Who can call it

Full access and read only keys. Send-only and live AI keys answer 403 SCOPE_DENIED; a key limited to one domain answers 403 DOMAIN_PINNED, as on every SMS and one-time code route.

The team can make 60 of these reads a minute; when Notix cannot count them the answer is 503 SERVICE_UNAVAILABLE (try again shortly), never a 429. Each read holds the database at most 10 seconds and answers 422 past that.

Query parameters

statusstring

Only codes in this state. A pending code past its expiry is expired.

One of pending, verified, expired, failed, refused.

channelstring

One of email, sms.

levelstring

Only codes risk scoring put at this level.

One of LOW, MEDIUM, HIGH.

cursorstring

nextCursor from the previous page.

limitinteger

Minimum 1. Maximum 100. Default 50.

Headers

Authorizationstringrequired

Bearer followed by your API key.

Errors

400

A query value is not valid, or the cursor is not from this list.

403

`SCOPE_DENIED`: a send-only or live AI key. `DOMAIN_PINNED`: a key limited to one domain.

422

The read took longer than 10 seconds.

429

The team made 60 SMS and code reads in the last minute.

503

The rate counters or the database cannot be used just now; try again shortly.

Every error has the same shape. See all error codes.

curl -X GET "https://app.usenotix.dev/api/v1/verify" \
  -H "Authorization: Bearer $NOTIX_API_KEY"
Response200
{
  "data": [
    {
      "id": "ver_abc123",
      "to": "+234*******5678",
      "channel": "email",
      "status": "pending",
      "createdAt": "2026-10-05T10:00:00.000Z",
      "expiresAt": "2026-10-05T10:00:00.000Z",
      "attemptsRemaining": 1,
      "deliveryStatus": "queued",
      "deliveryReason": "string"
    }
  ],
  "nextCursor": "string"
}
Open in ClaudeOpen in ChatGPT