Expo Application Services
API Reference


expo-sms provides access to the system's UI/app for sending SMS messages.

Platform Compatibility

Android DeviceAndroid EmulatoriOS DeviceiOS SimulatorWeb


→ expo install expo-sms

If you're installing this in a bare React Native app, you should also follow these additional installation instructions.

import * as SMS from 'expo-sms';

Determines whether SMS is available. Always returns false in the iOS simulator, and in browser.


const isAvailable = await SMS.isAvailableAsync();
if (isAvailable) {
  // do your SMS stuff here
} else {
  // misfortune... there's no SMS available on this device
  • Undo-iconPromise<boolean>

Returns a promise that fulfils with a boolean, indicating whether SMS is available on this device.

addressesstring | string[]An array of addresses (phone numbers) or single address passed as strings. Those would appear as recipients of the prepared message.
messagestringMessage to be sent.
SMSOptionsA SMSOptions object defining additional SMS configuration options.

Opens the default UI/app for sending SMS messages with prefilled addresses and message.


const { result } = await SMS.sendSMSAsync(
  ['0123456789', '9876543210'],
  'My sample HelloWorld message',
    attachments: {
      uri: 'path/myfile.png',
      mimeType: 'image/png',
      filename: 'myfile.png',

Returns a Promise that fulfils with the SMS action is invoked by the user, with corresponding result:

  • If the user cancelled the SMS sending process: { result: 'cancelled' }.
  • If the user has sent/scheduled message for sending: { result: 'sent' }.
  • If the status of the SMS message cannot be determined: { result: 'unknown' }.

Android does not provide information about the status of the SMS message, so on Android devices the Promise will always resolve with { result: 'unknown' }.


Note: The only feedback collected by this module is whether any message has been sent. That means we do not check actual content of message nor recipients list.

An object that is used to describe an attachment that is included with a SMS message.

filenamestringThe filename of the attachment.
mimeTypestringThe mime type of the attachment such as image/png.
uristringThe content URI of the attachment. The URI needs be a content URI so that it can be accessed by other applications outside of Expo. (See FileSystem.getContentUriAsync)

SMSAttachment | SMSAttachment[]-

result'unknown' | 'sent' | 'cancelled'Status of SMS action invoked by the user.