<!--
{
  "documentType" : "article",
  "framework" : "SiriKit",
  "identifier" : "/documentation/SiriKit/messaging",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Messaging"
}
-->

# Messaging

Send messages and search the user’s received messages.

## Discussion

With messaging intents, users can ask Siri to compose new messages, read existing messages, and indicate to other users whether they’re available.

To allow users to compose and send text or audio messages with your service, support [`INSendMessageIntent`](/documentation/Intents/INSendMessageIntent). Donate interactions when the user sends and receives messages in your app to give the system cues about which contacts to suggest in Share Sheets.

Support [`INSearchForMessagesIntent`](/documentation/Intents/INSearchForMessagesIntent) and [`INSetMessageAttributeIntent`](/documentation/Intents/INSetMessageAttributeIntent) to allow Siri to announce incoming messages on AirPods, and mark announced messages as [`INMessageAttribute.read`](/documentation/Intents/INMessageAttribute/read) or [`INMessageAttribute.played`](/documentation/Intents/INMessageAttribute/played). Adopting [`INSearchForMessagesIntent`](/documentation/Intents/INSearchForMessagesIntent) also enables users to see incoming messages on a [`INCarAudioSource.sourceCarPlay`](/documentation/Intents/INCarAudioSource/sourceCarPlay)-enabled display.

![A flow diagram going from left to right. On the left is an image of a user asking Siri to send a text. In the middle is an icon of Siri sending the user’s request to an app. On the right is the text the user asked Siri to send.](images/com.apple.sirikit/media-3743234@2x.png)

In iOS, you can use an Intents UI app extension to display a custom message composition interface.

## Topics

### Essentials

  <doc://com.apple.sirikit/documentation/SiriKit/improving-interactions-between-siri-and-your-messaging-app>

### Sending a Message

[`INSendMessageIntentHandling`](/documentation/Intents/INSendMessageIntentHandling)

An interface to handle sending messages to one or more designated users.

[`INSendMessageIntent`](/documentation/Intents/INSendMessageIntent)

A request to send a message to the designated recipients.

[`INSendMessageIntentResponse`](/documentation/Intents/INSendMessageIntentResponse)

Your app’s response to a send message intent.

[`INOutgoingMessageType`](/documentation/Intents/INOutgoingMessageType)

The format of the message.

[`INSendMessageAttachment`](/documentation/Intents/INSendMessageAttachment)

A file to include in a message.

[`INSendMessageIntentDonationMetadata`](/documentation/Intents/INSendMessageIntentDonationMetadata)

### Editing a Message

[`INEditMessageIntent`](/documentation/Intents/INEditMessageIntent)

[`INEditMessageIntentResponse`](/documentation/Intents/INEditMessageIntentResponse)

[`INEditMessageIntentHandling`](/documentation/Intents/INEditMessageIntentHandling)

[`INEditMessageIntentResponseCode`](/documentation/Intents/INEditMessageIntentResponseCode)

### Unsending a Message

[`INUnsendMessagesIntent`](/documentation/Intents/INUnsendMessagesIntent)

[`INUnsendMessagesIntentResponse`](/documentation/Intents/INUnsendMessagesIntentResponse)

[`INUnsendMessagesIntentHandling`](/documentation/Intents/INUnsendMessagesIntentHandling)

[`INUnsendMessagesIntentResponseCode`](/documentation/Intents/INUnsendMessagesIntentResponseCode)

### Reacting to a Message

[`INMessageReactionType`](/documentation/Intents/INMessageReactionType)

[`INMessageLinkMetadata`](/documentation/Intents/INMessageLinkMetadata)

[`INMessageReaction`](/documentation/Intents/INMessageReaction)

[`INSticker`](/documentation/Intents/INSticker)

### Searching for Messages

[`INSearchForMessagesIntentHandling`](/documentation/Intents/INSearchForMessagesIntentHandling)

An interface that handles requests to search the current user’s messages.

[`INSearchForMessagesIntent`](/documentation/Intents/INSearchForMessagesIntent)

A request to list the messages that match the specified criteria.

[`INSearchForMessagesIntentResponse`](/documentation/Intents/INSearchForMessagesIntentResponse)

Your app’s response to a search for messages intent.

### Setting Message Attributes

[`INSetMessageAttributeIntentHandling`](/documentation/Intents/INSetMessageAttributeIntentHandling)

An interface that handles modifying message attributes.

[`INSetMessageAttributeIntent`](/documentation/Intents/INSetMessageAttributeIntent)

A request to modify the attributes of a message.

[`INSetMessageAttributeIntentResponse`](/documentation/Intents/INSetMessageAttributeIntentResponse)

Your app’s response to a set message attribute intent.

### Sharing the User’s Focus Status

[`INShareFocusStatusIntentHandling`](/documentation/Intents/INShareFocusStatusIntentHandling)

A set of methods an object implements to process intents that share the user’s focus status.

[`INShareFocusStatusIntent`](/documentation/Intents/INShareFocusStatusIntent)

An object that indicates the user’s focus status is changing.

[`INShareFocusStatusIntentResponse`](/documentation/Intents/INShareFocusStatusIntentResponse)

Your app’s response to an intent that shares the user’s focus status.

[`INShareFocusStatusIntentResponseCode`](/documentation/Intents/INShareFocusStatusIntentResponseCode)

A constant that indicates your app’s ability to handle an intent to share the user’s focus status.

[`INFocusStatus`](/documentation/Intents/INFocusStatus)

The user’s preference for receiving notifications.

[`INFocusStatusCenter`](/documentation/Intents/INFocusStatusCenter)

An object that maintains the user’s current focus status and your app’s ability to access it.

[`INFocusStatusAuthorizationStatus`](/documentation/Intents/INFocusStatusAuthorizationStatus)

A constant that indicates whether your app has authorization to access the user’s focus status.

### Managing Message Information

[`INMessage`](/documentation/Intents/INMessage)

An object that describes a sent or received message.

[`INMessageAttribute`](/documentation/Intents/INMessageAttribute)

Constants that indicate an attribute of a message.

[`INMessageAttributeOptions`](/documentation/Intents/INMessageAttributeOptions)

Constants that indicate a message search filter.

[`INPerson`](/documentation/Intents/INPerson)

Information about a person participating in a SiriKit interaction.

### Providing Resolution Results

[`INMessageAttributeResolutionResult`](/documentation/Intents/INMessageAttributeResolutionResult)

A resolution result for assorted attributes of a message.

[`INMessageAttributeOptionsResolutionResult`](/documentation/Intents/INMessageAttributeOptionsResolutionResult)

A resolution result for a search parameter that filters by message status.

[`INDateComponentsRangeResolutionResult`](/documentation/Intents/INDateComponentsRangeResolutionResult)

A resolution result for a range of dates in a parameter of an intent.

[`INSendMessageRecipientResolutionResult`](/documentation/Intents/INSendMessageRecipientResolutionResult)

A resolution result for the recipient of a message.

[`INPersonResolutionResult`](/documentation/Intents/INPersonResolutionResult)

A resolution result for a user as a parameter of an intent.

[`INOutgoingMessageTypeResolutionResult`](/documentation/Intents/INOutgoingMessageTypeResolutionResult)

A resolution result for the message’s format.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)