Get subscription
Namespace: microsoft.graph
Retrieve the properties and relationships of a subscription.
See the table in the Permissions section for the list of resources that support subscribing to change notifications.
Permissions
Depending on the resource and the permission type (delegated or application) requested, the permission specified in the following table is the least privileged required to call this API. To learn more, including taking caution before choosing more privileged permissions, search for the following permissions in Permissions.
Supported resource | Delegated (work or school account) | Delegated (personal Microsoft account) | Application |
---|---|---|---|
callRecord | Not supported | Not supported | CallRecords.Read.All |
channel (/teams/getAllChannels – all channels in an organization) | Not supported | Not supported | Channel.ReadBasic.All, ChannelSettings.Read.All |
channel (/teams/{id}/channels) | Channel.ReadBasic.All, ChannelSettings.Read.All | Not supported | Channel.ReadBasic.All, ChannelSettings.Read.All |
chat (/chats – all chats in an organization) | Not supported | Not supported | Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
chat (/chats/{id}) | Chat.ReadBasic, Chat.Read, Chat.ReadWrite | Not supported | ChatSettings.Read.Chat*, ChatSettings.ReadWrite.Chat*, Chat.Manage.Chat*, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
chatMessage (/teams/{id}/channels/{id}/messages) | ChannelMessage.Read.All | Not supported | ChannelMessage.Read.Group*, ChannelMessage.Read.All |
chatMessage (/teams/getAllMessages -- all channel messages in organization) | Not supported | Not supported | ChannelMessage.Read.All |
chatMessage (/chats/{id}/messages) | Not supported | Not supported | Chat.Read.All |
chatMessage (/chats/getAllMessages -- all chat messages in organization) | Not supported | Not supported | Chat.Read.All |
chatMessage (/users/{id}/chats/getAllMessages -- chat messages for all chats a particular user is part of) | Chat.Read, Chat.ReadWrite | Not supported | Chat.Read.All, Chat.ReadWrite.All |
contact | Contacts.Read | Contacts.Read | Contacts.Read |
conversationMember (/chats/getAllMembers) | Not supported | Not supported | ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
conversationMember (/chats/{id}/members) | ChatMember.Read, ChatMember.ReadWrite, Chat.ReadBasic, Chat.Read, Chat.ReadWrite | Not supported | ChatMember.Read.Chat*, Chat.Manage.Chat*, ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
conversationMember (/teams/{id}/members) | TeamMember.Read.All | Not supported | TeamMember.Read.All |
conversationMember (/teams/{id}/channels/getAllMembers) | Not supported | Not supported | ChannelMember.Read.All |
driveItem (user's personal OneDrive) | Not supported | Files.ReadWrite | Not supported |
driveItem (OneDrive for Business) | Files.ReadWrite.All | Not supported | Files.ReadWrite.All |
event | Calendars.Read | Calendars.Read | Calendars.Read |
group | Group.Read.All | Not supported | Group.Read.All |
group conversation | Group.Read.All | Not supported | Not supported |
list | Sites.ReadWrite.All | Not supported | Sites.ReadWrite.All |
message | Mail.ReadBasic, Mail.Read | Mail.ReadBasic, Mail.Read | Mail.Read |
printer | Not supported | Not supported | Printer.Read.All, Printer.ReadWrite.All |
printTaskDefinition | Not supported | Not supported | PrintTaskDefinition.ReadWrite.All |
security alert | SecurityEvents.ReadWrite.All | Not supported | SecurityEvents.ReadWrite.All |
team (/teams – all teams in an organization) | Not supported | Not supported | Team.ReadBasic.All, TeamSettings.Read.All |
team (/teams/{id}) | Team.ReadBasic.All, TeamSettings.Read.All | Not supported | Team.ReadBasic.All, TeamSettings.Read.All |
todoTask | Tasks.ReadWrite | Tasks.ReadWrite | Not supported |
user | User.Read.All | User.Read.All | User.Read.All |
Note: Permissions marked with * use resource-specific consent.
chatMessage
chatMessage subscriptions can be specified to include resource data. If specified to include resource data (includeResourceData set to true
), encryption is required. The subscription creation fails if an encryptionCertificate isn't specified for such subscriptions. Before you can create a chatMessage subscription with application permissions, you might need to request access. For details, see Protected APIs in Microsoft Teams.
You must use the Prefer: include-unknown-enum-members
request header to get the following values in chatMessage messageType evolvable enum: systemEventMessage
for /teams/{id}/channels/{id}/messages
and /chats/{id}/messages
resource.
Note
/teams/getAllMessages
, /chats/getAllMessages
, /me/chats/getAllMessages
, /users/{id}/chats/getAllMessages
, and /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
have licensing and payment requirements.
/teams/getAllMessages
and /chats/getAllMessages
support both model=A
and model=B
query parameters,
/me/chats/getAllMessages
, /users/{id}/chats/getAllMessages
, and /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
support only model=B
.
If no model is specified, evaluation mode will be used.
conversationMember
conversationMember subscriptions can be specified to include resource data. If specified to include resource data (includeResourceData set to true
), encryption is required. The subscription creation fails if an encryptionCertificate isn't specified.
Note
/teams/getAllMembers
, /chats/getAllMembers
, and /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers
have licensing and payment requirements.
/teams/getAllMembers
and /chats/getAllMembers
support both model=A
and model=B
query parameters. /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers
supports only model=B
.
If no model is specified, evaluation mode will be used.
team, channel, and chat
team, channel, and chat subscriptions can be specified to include resource data. If specified to include resource data (includeResourceData set to true
), encryption is required. The subscription creation fails if an encryptionCertificate isn't specified.
Note
/appCatalogs/teamsApps/{id}/installedToChats
has licensing and payment requirements, specifically supporting only model=B
.
If no model is specified, evaluation mode will be used.
Request example
Specify the model
query parameter in the resource property in the request body.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-type: application/json
{
"changeType": "created",
"notificationUrl": "https://webhook.azurewebsites.net/api/send/myNotifyClient",
"resource": "chats/getAllMessages?model=A",
"expirationDateTime":"2016-11-20T18:23:45.9356913Z",
"clientState": "secretClientValue",
"latestSupportedTlsVersion": "v1_2"
}
driveItem
Additional limitations apply for subscriptions on OneDrive items. The limitations apply to creating as well as managing (getting, updating, and deleting) subscriptions.
On a personal OneDrive, you can subscribe to the root folder or any subfolder in that drive. On OneDrive for Business, you can subscribe to only the root folder. Change notifications are sent for the requested types of changes on the subscribed folder, or any file, folder, or other driveItem instances in its hierarchy. You cannot subscribe to drive or driveItem instances that are not folders, such as individual files.
contact, event, and message
You can subscribe to changes in Outlook contact, event, or message resources.
Creating and managing (getting, updating, and deleting) a subscription requires a read scope to the resource. For example, to get change notifications on messages, your app needs the Mail.Read permission. Outlook change notifications support delegated and application permission scopes. Note the following limitations:
Delegated permission supports subscribing to items in folders in only the signed-in user's mailbox. For example, you cannot use the delegated permission Calendars.Read to subscribe to events in another user’s mailbox.
To subscribe to change notifications of Outlook contacts, events, or messages in shared or delegated folders:
- Use the corresponding application permission to subscribe to changes of items in a folder or mailbox of any user in the tenant.
- Do not use the Outlook sharing permissions (Contacts.Read.Shared, Calendars.Read.Shared, Mail.Read.Shared, and their read/write counterparts), as they do not support subscribing to change notifications on items in shared or delegated folders.
HTTP request
GET /subscriptions/{id}
Optional query parameters
This method supports the OData Query Parameters to help customize the response.
Request headers
Name | Type | Description |
---|---|---|
Authorization | string | Bearer {token}. Required. |
Request body
Do not supply a request body for this method.
Response
If successful, this method returns a 200 OK
response code and subscription object in the response body.
Example
Request
Here is an example of the request.
GET https://graph.microsoft.com/v1.0/subscriptions/{id}
Response
Here is an example of the response.
HTTP/1.1 200 OK
Content-type: application/json
{
"id":"7f105c7d-2dc5-4530-97cd-4e7ae6534c07",
"resource":"me/messages",
"applicationId" : "string",
"changeType":"created,updated",
"clientState":"secretClientValue",
"notificationUrl":"https://webhook.azurewebsites.net/api/send/myNotifyClient",
"lifecycleNotificationUrl":"https://webhook.azurewebsites.net/api/send/lifecycleNotifications",
"expirationDateTime":"2016-11-20T18:23:45.9356913Z",
"creatorId": "string",
"latestSupportedTlsVersion": "v1_2",
"encryptionCertificate": "",
"encryptionCertificateId": "",
"includeResourceData": false,
"notificationContentType": "application/json"
}
Feedback
Submit and view feedback for