Documentation version: Latest (v1)

API endpoint

Verify instant OTP

Consumes OTP session and marks verification complete.

POST/api/v1/instant-otp/verify

Auth: Bearer public OTP token OR server API key with server_otp scope

Required headers

HeaderRequiredValueDescription
AuthorizationYesBearer <token>API key, server OTP key, or public OTP token depending on endpoint.
Content-TypeYesapplication/jsonAll POST requests expect JSON payloads.

Request body

FieldTypeRequiredDescription
sessionIdstringYesSession id returned by send.
emailstringYesEmail from send call.
codestringYesOTP code entered by user.

Code examples (all supported languages)

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

curl -X POST "https://risumail.risu.in/api/v1/instant-otp/verify" \
  -H "Authorization: Bearer risu_otp_PUBLIC_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sessionId":"otp_sess_01J...","email":"user@example.com","code":"123456"}'

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": [
        "verified"
      ],
      "properties": {
        "verified": {
          "type": "boolean"
        }
      }
    }
  }
}

Success response example

{
  "success": true,
  "data": {
    "verified": true
  }
}

Common error cases

StatusCodeWhen
400INVALID_CODEMalformed or wrong OTP code.
404SESSION_NOT_FOUNDExpired or unknown session id.
429RATE_LIMITEDRepeated failed verification attempts.

Implementation notes

  • Verify accepts same auth styles as send route.