Team room messages

TFS 2017 | TFS 2015 | TFS 2013

Note

Looking for REST APIS that support TFS 2018 or later versions? See the Azure DevOps REST API Reference.

api-version = 1.0

If you haven't already, look at the information on getting started with these APIs.

Create a message

POST https://{instance}/DefaultCollection/_apis/chat/rooms/{roomId}/messages?api-version={version}
Content-Type: application/json
{
  content: {message}
}
Parameter Type Notes
URL
instance string TFS server name ({server:port}).
roomId int ID of the team room.
Query
api-version string Version of the API to use.
Body
content string Message to post to the team room.

Sample request

POST https://mytfsserver/DefaultCollection/_apis/chat/rooms/305/messages?api-version=1.0
{
  "content": "Here's a new message"
}

Sample response

{
  "id": 118943,
  "content": "Here's a new message",
  "messageType": "normal",
  "postedTime": "2014-10-27T16:42:06.073Z",
  "postedRoomId": 305,
  "postedBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "url": "https://mytfsserver/DefaultCollection/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://mytfsserver/DefaultCollection/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  }
}

Get a list of messages

GET https://{instance}/DefaultCollection/_apis/chat/rooms/{roomId}/messages?api-version={version}
Parameter Type Notes
URL
instance string TFS server name ({server:port}).
roomId int ID of the team room.
Query
api-version string Version of the API to use.
$filter string OData filter can be applied to the PostedTime field to return messages from a different timespan. The timespan can be up to 30 days. No more than 100,000 messages will be returned. If no filter is applied, messages from the last 24 hours are returned.

Sample request

GET https://mytfsserver/DefaultCollection/_apis/chat/rooms/305/messages?api-version=1.0

Sample response

{
  "count": 2,
  "value": [
    {
      "id": 118940,
      "content": "Normal Paulk entered the room",
      "messageType": "system",
      "postedTime": "2014-10-27T16:36:02.28Z",
      "postedRoomId": 305,
      "postedBy": {
        "id": "47d25e84-de54-49ce-8f3d-351c77422775",
        "displayName": "[DefaultCollection]\\Project Collection Service Accounts",
        "url": "https://mytfsserver/DefaultCollection/_apis/Identities/47d25e84-de54-49ce-8f3d-351c77422775",
        "imageUrl": "https://mytfsserver/DefaultCollection/_api/_common/identityImage?id=47d25e84-de54-49ce-8f3d-351c77422775"
      }
    },
    {
      "id": 118942,
      "content": "My second message!",
      "messageType": "normal",
      "postedTime": "2014-10-27T16:41:42.28Z",
      "postedRoomId": 305,
      "postedBy": {
        "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
        "displayName": "Normal Paulk",
        "url": "https://mytfsserver/DefaultCollection/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
        "imageUrl": "https://mytfsserver/DefaultCollection/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
      }
    }
  ]
}

In a date range

Sample request

GET https://mytfsserver/DefaultCollection/_apis/chat/rooms/305/messages?$filter=PostedTime ge 10/25/2014 and PostedTime lt 10/28/2014&api-version=1.0

Sample response

{
  "count": 2,
  "value": [
    {
      "id": 118940,
      "content": "Normal Paulk entered the room",
      "messageType": "system",
      "postedTime": "2014-10-27T16:36:02.28Z",
      "postedRoomId": 305,
      "postedBy": {
        "id": "47d25e84-de54-49ce-8f3d-351c77422775",
        "displayName": "[DefaultCollection]\\Project Collection Service Accounts",
        "url": "https://mytfsserver/DefaultCollection/_apis/Identities/47d25e84-de54-49ce-8f3d-351c77422775",
        "imageUrl": "https://mytfsserver/DefaultCollection/_api/_common/identityImage?id=47d25e84-de54-49ce-8f3d-351c77422775"
      }
    },
    {
      "id": 118942,
      "content": "My second message!",
      "messageType": "normal",
      "postedTime": "2014-10-27T16:41:42.28Z",
      "postedRoomId": 305,
      "postedBy": {
        "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
        "displayName": "Normal Paulk",
        "url": "https://mytfsserver/DefaultCollection/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
        "imageUrl": "https://mytfsserver/DefaultCollection/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
      }
    }
  ]
}

Get a message

GET https://{instance}/DefaultCollection/_apis/chat/rooms/{roomId}/messages/{messageId}?api-version={version}
Parameter Type Notes
URL
instance string TFS server name ({server:port}).
roomId int ID of the team room.
messageId int ID of the message.
Query
api-version string Version of the API to use.

Sample request

GET https://mytfsserver/DefaultCollection/_apis/chat/rooms/305/messages/118943?api-version=1.0

Sample response

{
  "id": 118943,
  "content": "Updated message",
  "messageType": "normal",
  "postedTime": "2014-10-27T16:42:06.073Z",
  "postedRoomId": 305,
  "postedBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "url": "https://mytfsserver/DefaultCollection/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://mytfsserver/DefaultCollection/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  }
}

Update message

PATCH https://{instance}/DefaultCollection/_apis/chat/rooms/{roomId}/messages/{messageId}?api-version={version}
Content-Type: application/json
{
  content: {message}
}
Parameter Type Notes
URL
instance string TFS server name ({server:port}).
roomId int ID of the team room.
messageId int ID of the message.
Query
api-version string Version of the API to use.
Body
content string Message to post to the team room.

Sample request

PATCH https://mytfsserver/DefaultCollection/_apis/chat/rooms/305/messages/118943?api-version=1.0
{
  "content": "Updated message"
}

Sample response

{
  "id": 118943,
  "content": "Updated message",
  "messageType": "normal",
  "postedTime": "2014-10-27T16:42:06.073Z",
  "postedRoomId": 305,
  "postedBy": {
    "id": "d6245f20-2af8-44f4-9451-8107cb2767db",
    "displayName": "Normal Paulk",
    "url": "https://mytfsserver/DefaultCollection/_apis/Identities/d6245f20-2af8-44f4-9451-8107cb2767db",
    "imageUrl": "https://mytfsserver/DefaultCollection/_api/_common/identityImage?id=d6245f20-2af8-44f4-9451-8107cb2767db"
  }
}

Delete message

DELETE https://{instance}/DefaultCollection/_apis/chat/rooms/{roomId}/messages/{messageId}?api-version={version}
Parameter Type Notes
URL
instance string TFS server name ({server:port}).
roomId int ID of the team room.
messageId int ID of the message.
Query
api-version string Version of the API to use.

Sample request

DELETE https://mytfsserver/DefaultCollection/_apis/chat/rooms/305/messages/118943?api-version=1.0