Documentation version: Latest (v1)

API endpoint

List instant OTP verifications

Returns verification history for analytics and reconciliation.

GET/api/v1/instant-otp/verifications?limit=50

Auth: Bearer public OTP token + X-Otp-Secret header

Required headers

HeaderRequiredValueDescription
AuthorizationYesBearer <token>API key, server OTP key, or public OTP token depending on endpoint.
X-Otp-SecretYesrisu_otp_sec_...Analytics secret paired with public OTP token.

Query parameters

FieldTypeRequiredDescription
limitnumberNoMax records, capped at 100.

Code examples (all supported languages)

Snippets use placeholder tokens. Replace them with real credentials from your dashboard.

curl -X GET "https://risumail.risu.in/api/v1/instant-otp/verifications?limit=50" \
  -H "Authorization: Bearer risu_otp_PUBLIC_TOKEN" \
  -H "X-Otp-Secret: risu_otp_sec_ANALYTICS_SECRET"

Response schema

Canonical schema inferred from the documented success payload. Copy this block when generating typed clients.

{
  "type": "object",
  "required": [
    "success",
    "data"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "required": [
        "verifications"
      ],
      "properties": {
        "verifications": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "email",
              "sentAt",
              "verifiedAt"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "email": {
                "type": "string"
              },
              "sentAt": {
                "type": "string"
              },
              "verifiedAt": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}

Success response example

{
  "success": true,
  "data": {
    "verifications": [
      {
        "id": "otp_sess_01J...",
        "email": "user@example.com",
        "sentAt": "2026-04-19T11:45:00.000Z",
        "verifiedAt": "2026-04-19T11:45:24.000Z"
      }
    ]
  }
}

Common error cases

StatusCodeWhen
401UNAUTHORIZEDMissing token or x-otp-secret.
403OTP_PUBLIC_IP_NOT_ALLOWEDToken allowlist rejected request.

Implementation notes

  • Use this endpoint in backend jobs for OTP conversion analytics exports.