Skip to content
Appwrite Messaging

Messaging across every channel_

Reach users on email, SMS, and push from a unified API. Manage providers, audiences, and delivery without stitching vendors together.

Channels in one API
3
Broadcast messaging
Topics
Delivery providers
11
Auth user delivery
Targets
Compose and delivery logs
Schedule

Unified email, SMS, and push API

Send on every channel from one Messaging service and SDK. Use createEmail, createSms, and createPush for transactional mail, OTP codes, and mobile alerts without wiring three separate vendor integrations.

OverviewMessagesProviders

One Messaging service

Email, SMS, and push from a single SDK client.

3 channels

import { Messaging } from 'appwrite'

Email

subject, html body, topics

createEmail()

SMS

message body, topics

createSms()

Push

title, body, topics

createPush()

Replace separate email, SMS, and push SDKs with one API and delivery log.

Topics for group and broadcast messaging

Create topics from the Console Topics tab and subscribe targets for newsletters, product announcements, and security alerts. Broadcast to every subscriber in a topic or combine topics with direct targets when you need finer control.

MessagesTopicsProviders

Subscriber audiences

Group targets for broadcasts without managing recipient lists.

3 topics
TopicUse caseSubscribers
product-updates
Newsletters1,248
security-alerts
Alerts892
weekly-digest
Announcements3,401

Subscribe user targets from Auth or pick them in the Console when you create a topic.

Bring your own providers

Connect the email, SMS, and push providers you already use. Add credentials once in the Console, pick a vendor per channel, and route every message through the stack you operate.

Push notifications

Reach users instantly on iOS, Android, and web with APNS and FCM.

APNSFCM

Emails

Send receipts, digests, and transactional mail through SendGrid, Mailgun, SMTP, and other email providers.

ResendSendGridMailgunSMTP

Chat

Coming soon

Connect Slack, Discord, WhatsApp, and other chat surfaces for team and user notifications.

SlackDiscordWhatsApp

In app notifications

Coming soon

Send realtime alerts to signed-in users without leaving your application experience.

SMS

Send OTP codes, delivery updates, and alerts outside your app through Twilio, Vonage, MSG91, Telesign, Textmagic, and other SMS vendors.

TwilioVonageMSG91TelesignTextmagic

Targets linked to Auth users

Each user can have email, phone, and push device targets registered to your project. Inspect and manage them from the Targets tab on user detail in Auth, then subscribe those targets to topics or address them directly in a message.

OverviewSessionsTargets
W

Walter O'Brien

walter@acme.io · Auth user

3 targets
TargetProvider type
walter@acme.io
Email
+1 (555) 014-8921
SMS
iPhone 15 Pro
Push

Targets are created when users verify email or phone in Auth, or when your app registers push device tokens.

Compose and schedule messages

Draft email, SMS, and push from the Console Messages tab with channel-specific fields, topic and target selection, and delivery logs. Schedule sends for later or fire transactional flows such as OTP verification and account alerts from Functions or your backend.

MessagesTopicsProviders

Compose message

Weekly product digest

EmailSMSPush

Subject

Content

Ship notes, feature highlights, and links for your subscribers.

weekly-digest

Topic · 3,401 targets

Delivery

Scheduled send

Mon, 9:00 AM · America/New_York

Common flows

OTP verificationPassword resetAccount alerts
Schedule messageSend now

Tools built for developers and agents_

API-first by design. Use the Console, Realtime, SDKs, CLI, Terraform, MCP, and agent skills on the same project.

FAQ_

No. You connect your own provider credentials once in the Console, then send on every channel through one Messaging API and SDK. Pick a vendor per channel (Resend for email, Twilio for SMS, FCM for push, and so on) without maintaining three separate integrations or delivery logs.

Start building with Messaging_

Configure a provider, create a topic, and send your first message from the console or SDK.