curl --request GET \
--url https://dev-public-api.openphone.dev/messages \
--header 'Authorization: <api-key>' \
--header 'Quo-Api-Version: <quo-api-version>'{
"data": [
{
"id": "AC123abc",
"to": [
"+15555555555"
],
"from": "+15555555555",
"text": "Hello, world!",
"conversationId": "CN123abc",
"direction": "incoming",
"status": "sent",
"createdAt": "2022-01-01T00:00:00Z",
"updatedAt": "2022-01-01T00:00:00Z",
"media": [
{
"url": "https://example.com/image.png",
"type": "image/png"
}
],
"phoneNumberId": "PN123abc",
"userId": "US123abc"
}
],
"nextCursor": "eyJsYXN0SWQiOiJVU211a09NaXBhIn0"
}{
"message": "The input was invalid",
"docs": "https://quo.com/docs",
"title": "Bad Request",
"errors": [
{
"path": "/messageId",
"message": "Expected string to match '^AC(.*)$'",
"value": "abc123",
"schema": {
"type": "TemplateLiteral",
"pattern": "^AC(.*)$"
}
}
]
}{
"message": "Unauthorized",
"docs": "https://quo.com/docs",
"title": "Unauthorized",
"trace": "6897907457496870895"
}{
"message": "The user is forbidden from accessing the message",
"docs": "https://quo.com/docs",
"title": "Forbidden",
"trace": "6897907457496870895"
}{
"message": "Message not found",
"docs": "https://quo.com/docs",
"title": "Not Found",
"trace": "6897907457496870895"
}{
"message": "The message has permanently failed and cannot be retried",
"docs": "https://quo.com/docs",
"title": "Unprocessable Entity",
"trace": "6897907457496870895"
}{
"message": "We have encountered an unknown error",
"docs": "https://quo.com/docs",
"title": "Unknown",
"trace": "6897907457496870895"
}List messages
Get a paginated list of the organization’s messages across all conversations, most recently created first. Supports filtering by from (the sender, equality), to (the exact recipient set, via a bare value or a comma-separated to[all] list), status, direction, phoneNumberId, userId, and a createdAt date range.
curl --request GET \
--url https://dev-public-api.openphone.dev/messages \
--header 'Authorization: <api-key>' \
--header 'Quo-Api-Version: <quo-api-version>'{
"data": [
{
"id": "AC123abc",
"to": [
"+15555555555"
],
"from": "+15555555555",
"text": "Hello, world!",
"conversationId": "CN123abc",
"direction": "incoming",
"status": "sent",
"createdAt": "2022-01-01T00:00:00Z",
"updatedAt": "2022-01-01T00:00:00Z",
"media": [
{
"url": "https://example.com/image.png",
"type": "image/png"
}
],
"phoneNumberId": "PN123abc",
"userId": "US123abc"
}
],
"nextCursor": "eyJsYXN0SWQiOiJVU211a09NaXBhIn0"
}{
"message": "The input was invalid",
"docs": "https://quo.com/docs",
"title": "Bad Request",
"errors": [
{
"path": "/messageId",
"message": "Expected string to match '^AC(.*)$'",
"value": "abc123",
"schema": {
"type": "TemplateLiteral",
"pattern": "^AC(.*)$"
}
}
]
}{
"message": "Unauthorized",
"docs": "https://quo.com/docs",
"title": "Unauthorized",
"trace": "6897907457496870895"
}{
"message": "The user is forbidden from accessing the message",
"docs": "https://quo.com/docs",
"title": "Forbidden",
"trace": "6897907457496870895"
}{
"message": "Message not found",
"docs": "https://quo.com/docs",
"title": "Not Found",
"trace": "6897907457496870895"
}{
"message": "The message has permanently failed and cannot be retried",
"docs": "https://quo.com/docs",
"title": "Unprocessable Entity",
"trace": "6897907457496870895"
}{
"message": "We have encountered an unknown error",
"docs": "https://quo.com/docs",
"title": "Unknown",
"trace": "6897907457496870895"
}Authorizations
Headers
API version header. Supported values: 2026-03-30
2026-03-30 Query Parameters
A phone number in E.164 format, a short code (3-8 digits), or a non-phone-number caller ID (Anonymous, Restricted, or Blocked).
^\+[1-9]\d{1,14}$"+15555555555"
A phone number in E.164 format, a short code (3-8 digits), or a non-phone-number caller ID (Anonymous, Restricted, or Blocked).
^\+[1-9]\d{1,14}$"+15555555555"
The status of the message.
queued, sent, delivered, undelivered, received, failed "sent"
The direction of the message relative to the Quo number.
incoming, outgoing "incoming"
^PN(.*)$^US(.*)$Show child attributes
Show child attributes
Max number of items to return per page.
1 <= x <= 50"eyJsYXN0SWQiOiJVU211a09NaXBhIn0"
Was this page helpful?