Skip to content
New to this? Read the Track SMS guide.

List conversations

GET
/v2/conversations
curl --request GET \
--url https://api.connect.ms/v2/conversations \
--header 'Authorization: Bearer <token>'

Message threads between your numbers (or sender names, for web replies) and other parties, most recent activity first. Covers at most the last three months. Paginated with cursor.

inboundNumber
string
nullable

Only threads on this inbound number of yours (E.164 format). Web threads are excluded when set.

archived
boolean
nullable

Set to true to list archived threads instead of active ones. Defaults to false.

hasInbound
boolean
nullable

Only threads where the other party has replied (true) or has not (false).

cursor
string
nullable

The nextCursor value from the previous page.

limit
integer format: int32
nullable

Page size, between 1 and 200. Defaults to 50.

Connect-Version
string

The API version to use, for example 2026-10-01. Defaults to the version set on your API key.

A page of conversations.

Media typeapplication/json

A page of results.

object
data
required

The items on this page.

Array<object>

A thread of messages between one of your numbers, or a sender name for web replies, and another party.

object
inboundNumber
required

Your side of the thread: the inbound number (E.164 format) for sms, or the sender name for web.

string
counterparty

The other party’s number (E.164 format). Null when the caller may not see recipients.

string
nullable
channel
required
One of:

How an inbound message arrived: sms (a text to one of your numbers) or web (a reply through a message link).

string
Allowed values: sms web
contactName

The name of the matching contact, or null when no contact with a name matches the number.

string
nullable
lastMessage

The first 160 characters of the latest message. Null when the caller may not see content.

string
nullable
lastDirection
required
One of:

Which way the message travelled: outbound (sent by you) or inbound (received on one of your numbers, or as a reply through a message link).

string
Allowed values: outbound inbound
lastMessageAt
required

When (UTC) the latest message was sent (or created, if not yet sent) or received.

string format: date-time
messageCount
required

How many messages the thread holds within the available history.

integer format: int32
hasInbound
required

True when the other party has sent at least one message.

boolean
nextCursor

Pass as cursor to fetch the next page. Null when there are no more results, except on the events feed, which always returns one.

string
nullable

Example

{
"data": [
{
"channel": "sms",
"lastDirection": "outbound"
}
]
}

The request is not valid. The detail field says why, and errors lists any problems by field name.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The API key or bearer token is missing or not valid, or the request signature could not be verified.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The caller is not allowed to do this.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The workspace has no inbound number matching inboundNumber.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The service is temporarily unavailable. Retry after the Retry-After header.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}