SMS delivery

Appwrite supports phone authentication, which allows users to create accounts and log in using SMS messages. Appwrite requires an SMS provider to be set up before using Phone authentication.

Setting up Appwrite Messaging?

This page describes how to setup messaging for your self-hosted Appwrite instance to send one-time passwords during phone login.

If you are looking to send custom messages for promotions, reminders, and other purposes, view the documentation for Appwrite Messaging documentation.

SMS providers

Appwrite supports a growing list of SMS providers that you can choose from. Choose one from the list below and set up an account.

 SMS providerCreate accountGet credentials
TwilioWebsiteDocumentation
TextmagicWebsiteDocumentation
TelesignWebsiteDocumentation
MSG91WebsiteDocumentation
VonageWebsiteDocumentation

Environment variables

You will need to configure these environment variables and restart your Appwrite containers before you can use phone authentication.

URL encode

Ensure the values you insert in the _APP_SMS_PROVIDER placeholders are URL encoded if they contain any non-alphanumeric characters.

Provider_APP_SMS_PROVIDER_APP_SMS_FROM
Twiliosms://[ACCOUNT SID]:[AUTH TOKEN]@twilio[TWILIO PHONE NUMBER]
Textmagicsms://[USERNAME]:[API KEY]@text-magic[PHONE NUMBER OR SENDER ID]
TeleSignsms://[CUSTOMER ID]:[API KEY]@telesign[TELESIGN PHONE NUMBER]
MSG91sms://[SENDER ID]:[AUTH KEY]@msg91[FLOW ID]
Vonagesms://[API KEY]:[API SECRET]@vonage[PHONE NUMBER OR BRAND NAME]
Applying changes

After editing your docker-compose.yml or .env files, you will need to recreate your Appwrite stack by running the following compose command in your terminal.

Shell
docker compose up -d

You can verify if the changes have been successfully applied by running this command:

Shell
docker compose exec appwrite vars