Skip to content
Open app

Get an email thread with messages

GET
/v1/email/threads/{id}

Returns a thread with its messages (plain text only). Requires scope email:read.

id
required
integer
limit
integer
default: 20 >= 1 <= 50

Thread with messages.

object
id
integer
subject
string
preview
string
nullable
status
string
Allowed values: open pending closed
unreadCount
integer
isStarred
boolean
contactId
integer
nullable
assignedToUserId
integer
nullable
aiLeadScore
integer
nullable
lastMessageAt
string format: date-time
aiSummary
string
nullable
messages
Array<object>
object
id
integer
direction
string
Allowed values: inbound outbound
fromAddress
string
fromName
string
nullable
subject
string
body

Plain text only; raw HTML is never returned.

string
nullable
isRead
boolean
receivedAt
string format: date-time

Missing or invalid bearer token.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "unauthorized",
"message": "Invalid bearer principal"
}

The API key does not have the required scope for this operation.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "forbidden",
"message": "scope contacts:write is required"
}

The requested resource does not exist or is not owned by the caller.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "not_found",
"message": "contact not found"
}