/v1/conversations

List conversations (SMS, email, or call threads) for the authenticated user.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

A "conversation" groups all of the messages between the Apptoto user and a single counterpart -- often a participant on an event. Each conversation has the most recent inbound and outbound message timestamps and links back to the event and participant when applicable.

FieldTypeRequiredDescription
folderStringnoWhich folder to fetch. Defaults to inbox. See below for the full list.
qStringnoOptional search query using the Apptoto conversation search syntax. See below.
page_sizeNumbernoDefaults to 30
pageNumbernoDefaults to 1. total is only included when page=1.

Folders

FolderDescription
inboxConversations with at least one inbound message that have not been archived. (Default.)
inbox-appointmentsInbox conversations tied to an event.
inbox-campaignsInbox conversations tied to a campaign event.
inbox-otherInbox conversations with no associated event.
outboxConversations the user has sent at least one outbound message in.
outbox-appointmentsOutbox conversations tied to an event.
outbox-campaignsOutbox conversations tied to a campaign event.
outbox-otherOutbox conversations with no associated event.
archivedConversations that have been archived.
spamConversations marked as spam.

Search syntax

The q parameter accepts the same query language used in the Apptoto portal's Inbox/Outbox search. A few examples:

QueryMeaning
from:[email protected]Match conversations from this sender.
to=+15035551212Exact phone match. (= is exact, : is tokenized.)
comm_type:smsOnly SMS conversations.
event:sent AND delivery_state:deliveredSent messages that were delivered.
auto:trueOnly automated/reminder messages.
subject:"appointment confirmation"Phrase match on the email subject.
content:rescheduleMatch the message body.

Response

Each conversation has the following fields:

FieldTypeDescription
idNumberThe Apptoto id of the conversation.
eventObject or nullThe associated event, in the same shape as /v1/event (without the participants array).
participantObject or nullThe participant the conversation is with, in the same shape as a participant on /v1/events.
conversation_typeStringsms, email, or call.
fromStringSender phone number or email.
toStringRecipient phone number or email.
last_outDateTime or nullWhen the most recent outbound message was sent.
last_inDateTime or nullWhen the most recent inbound message was received.

Example response:

{
  "conversations": [
    {
      "id": 9876,
      "event": {
        "id": 123,
        "calendar_id": 456,
        "start_time": "2026-04-15T12:00:00-07:00",
        "end_time": "2026-04-15T13:00:00-07:00",
        "title": "Demo with Fred",
        "location": "",
        "content": "",
        "is_deleted": false
      },
      "participant": {
        "id": 789,
        "name": "Fred Smith",
        "phone": "650-555-1212",
        "normalized_phone": "+16505551212",
        "email": "[email protected]",
        "state": "confirmed"
      },
      "conversation_type": "sms",
      "from": "+15035550100",
      "to": "+16505551212",
      "last_out": "2026-04-14T17:31:02-07:00",
      "last_in": "2026-04-14T17:33:21-07:00"
    }
  ],
  "total": 1
}

OAuth scope

Calls authenticated with an OAuth 2.0 bearer token must include the messaging:read scope. A token without it receives a 403 insufficient_scope response. HTTP Basic auth is not scope-gated.

Query Params
string
Defaults to inbox

Which conversation folder to fetch. One of: inbox (default), inbox-appointments, inbox-campaigns, inbox-other, outbox, outbox-appointments, outbox-campaigns, outbox-other, archived, spam.

string

Optional search query using the Apptoto conversation search syntax. Examples: from:[email protected], to=+15035551212, comm_type:sms, event:sent AND delivery_state:delivered, auto:true, subject:"appointment confirmation", content:reschedule.

int32
Defaults to 30

Number of conversations to return.

int32
Defaults to 1

The page to fetch (1 based). total is only returned on page 1.

Language
Credentials
:
LoadingLoading…
Response
Click Try It! to start a request and see the response here!