WA.cr APP - API v2
  1. Authentication (OTP Verification)
WA.cr APP - API v2
  • API v2 Documentation
    • Account
      • Get Account Info
      • Get Usage Statistics
      • Get Plan Limits
    • Authentication (OTP Verification)
      • Send OTP/Verification Code
        POST
      • Resend OTP
        POST
      • Verify OTP
        POST
      • Check OTP Status
        POST
      • List Authentication Templates
        GET
    • Comments
      • Get Comments
      • Add Comment
    • Contacts
      • List Contacts
      • Create Contact
      • Get Contact
      • Update Contact
      • Delete Contact
      • Batch Create Contacts
      • Batch Delete Contacts
    • Groups
      • List Groups
      • Create Group
      • Get Group
      • Update Group
      • Delete Group
      • Add Contacts to Group
      • Remove Contacts from Group
    • Messages
      • Send Text Message
      • Send Template Message
      • Send Media Message
      • Send Interactive Message
      • List Messages
      • Get Message
    • Sources
      • List Sources
      • Create Source
      • Get Source
      • Update Source
      • Delete Source
    • Statuses
      • List Statuses
      • Create Status
      • Get Status
      • Update Status
      • Delete Status
    • Templates
      • List Templates
      • Sync Templates from WhatsApp
      • Get Template
  1. Authentication (OTP Verification)

Check OTP Status

POST
/auth/status
Check the status of an active OTP for a phone number without verifying it.
This is a non-destructive endpoint — it does not increment attempt counters or consume the OTP. Use it to display status information in your UI (expiry timer, remaining attempts, etc.) before the user submits their code.
Required Scope: messages:send

Request Body#

FieldTypeRequiredValidationDescription
phonestringYesPhone number to check
purposestringNomax:50OTP purpose (default: authentication)

Response Fields (Active OTP)#

FieldTypeDescription
has_active_otpbooleantrue if active OTP exists
expires_atstringISO 8601 expiry timestamp
expires_in_secondsintegerSeconds remaining until expiry (negative if expired)
is_expiredbooleanWhether OTP has expired
verification_attemptsintegerNumber of verification attempts made
max_attemptsintegerMaximum allowed verification attempts
attempts_remainingintegerRemaining verification attempts
created_atstringISO 8601 timestamp when OTP was created

Response Fields (No Active OTP)#

FieldTypeDescription
has_active_otpbooleanfalse
messagestring"No active OTP found"

Use Cases#

Display an expiry countdown timer in your UI
Show remaining verification attempts to the user
Determine if a resend is needed (OTP expired or max attempts reached)
Pre-check before showing the OTP input form

Error Responses#

StatusError CodeDescription
401UNAUTHORIZEDInvalid or missing API token
403INSUFFICIENT_SCOPEToken missing messages:send scope
422VALIDATION_ERRORRequest validation failed
429RATE_LIMIT_EXCEEDEDToo many requests
500INTERNAL_ERRORUnexpected server error

Validation Error Messages#

FieldMessage
phonePhone number is required

Request

Authorization
Bearer Token
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
or
Header Params

Body Params application/json

Examples

Responses

🟢200
application/json
Successful response
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST '/auth/status' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "phone": "+919999999999",
    "purpose": "authentication"
}'
Response Response Example
{}
Modified at 2026-02-25 01:30:15
Previous
Verify OTP
Next
List Authentication Templates
Built with