Consumer Authentication

/

API reference

/

One-time passcodes (OTP)

/

Via SMS

/

Login or create user

Log in or create User by SMS OTP

POSThttps://test.stytch.com/v1/otps/sms/login_or_create

Send a One-Time Passcode (OTP) to a User using their phone number. If the phone number is not associated with a user already, a user will be created.

Cost to send SMS OTP

Before configuring SMS or WhatsApp OTPs, please review how Stytch bills the costs of international OTPs and understand how to protect your app against toll fraud.

Note: SMS to phone numbers outside of the US and Canada is disabled by default for customers who did not use SMS prior to October 2023. If you're interested in sending international SMS, please reach out to support@stytch.com.

Even when international SMS is enabled, we do not support sending SMS to countries on our Unsupported countries list.

Next steps

Collect the OTP which was delivered to the User. Call Authenticate OTP using the OTP code along with the phone_id found in the response as the method_id.


Body parameters


phone_number*string

expiration_minutesint

create_user_as_pendingboolean

attributesobject

localestring

Response fields


status_codeint

request_idstring

user_idstring

phone_idstring

user_createdboolean
curl --request POST \
  --url https://test.stytch.com/v1/otps/sms/login_or_create \
  -u 'PROJECT_ID:SECRET' \
  -H 'Content-Type: application/json' \
  -d '{
    "phone_number": "+12025550162"
  }'

RESPONSE

200
{
  "status_code": 200,
  "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
  "user_id": "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
  "phone_id": "phone-number-test-d5a3b680-e8a3-40c0-b815-ab79986666d0",
  "user_created": true
}

Common Error Types