Edit

Share via


Create copilotConversation

Important

APIs under the /beta version are subject to change. Use of these APIs in production applications is not supported.

The Microsoft 365 Copilot Chat API allows you to create and continue multi-turn conversations with Microsoft 365 Copilot, while respecting the defined access controls within the organization. Use the Chat API to integrate Microsoft 365 Copilot into your generative AI solutions.

This documentation covers creating Copilot conversations using the Chat API. Learn how to continue synchronous conversations or streamed conversations with the Chat API.

Permissions

Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.

Permission type Least privileged permissions Higher privileged permissions
Delegated (work or school account) Sites.Read.All, Mail.Read, People.Read.All, OnlineMeetingTranscript.Read.All, Chat.Read, ChannelMessage.Read.All, ExternalItem.Read.All* Not supported.
Delegated (personal Microsoft account) Not supported. Not supported.
Application Not supported. Not supported.

* You need all of these Microsoft Graph permissions to successfully call the Microsoft 365 Copilot Chat API.

HTTP request

POST https://graph.microsoft.com/beta/copilot/conversations

Request headers

Name Description
Authorization Bearer {token}. Required. Learn more about authentication and authorization.
Content-Type application/json. Required.

Request body

In the request body, supply an empty JSON body.

Response

If successful, this action returns a 201 Created response code and a copilotConversation in the response body.

Example

The following example shows how to create a Copilot conversation through the Microsoft 365 Copilot Chat API. Once the conversation is created, the id in the response body is used as a path parameter for continuing the conversation, using either the synchronous endpoint or the streamed endpoint.

Request

The following example shows the request.

POST https://graph.microsoft.com/beta/copilot/conversations
Content-Type: application/json

{}

Response

The following example shows the response.

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "0d110e7e-2b7e-4270-a899-fd2af6fde333",
  "createdDateTime": "2025-09-30T15:28:46.1560062Z",
  "displayName": "",
  "status": "active",
  "turnCount": 0
}