Email, calendar & files · Email
Fetches an email thread with its messages.
GET
https://api.pozy.ai/v1/email/threads/{threadId}getEmailThread
Guides: Email, Email, calendar & files, Google Workspace
Request
Send your API key as Authorization: Bearer pz_live_.... Read-only keys can call it. Keys with the messages resource group disabled get 403 resource_group_disabled. Authentication
Path parameters
| Name | Type | Notes |
|---|---|---|
threadIdrequired | string |
Query parameters
| Name | Type | Notes |
|---|---|---|
accountIdrequired | string |
Example
curl -X GET "https://api.pozy.ai/v1/email/threads/60186572e25ff711298bf12e?accountId=696e0b682d0a31188e7a2ba9" \
-H "Authorization: Bearer $POZY_API_KEY"const res = await fetch("https://api.pozy.ai/v1/email/threads/60186572e25ff711298bf12e?accountId=696e0b682d0a31188e7a2ba9", {
headers: { Authorization: `Bearer ${process.env.POZY_API_KEY}` },
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);import os
import requests
resp = requests.get(
"https://api.pozy.ai/v1/email/threads/60186572e25ff711298bf12e",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
params={
"accountId": "696e0b682d0a31188e7a2ba9",
},
timeout=30,
)
resp.raise_for_status()
print(resp.json())Response
200 on success
dataobject17 child fields
idstringaccountIdstringproviderstringOne of
google,microsoft.subjectstringsnippetstringparticipantsarray of object2 child fields
emailstring (email)requirednamestringCan be null.
messageIdsarray of stringdraftIdsarray of stringfoldersarray of stringhasAttachmentsbooleanhasDraftsbooleanunreadbooleanstarredbooleanearliestMessageAtstring (date-time)Can be null.
latestMessageReceivedAtstring (date-time)Can be null.
latestMessageSentAtstring (date-time)Can be null.
messagesarray of object21 child fields
idstringthreadIdstringaccountIdstringproviderstringOne of
google,microsoft.foldersarray of stringfromobjectOne of:
Email Address (2 fields)
emailstring (email)requirednamestringCan be null.
toarray of object2 child fields
emailstring (email)requirednamestringCan be null.
ccarray of object2 child fields
emailstring (email)requirednamestringCan be null.
bccarray of object2 child fields
emailstring (email)requirednamestringCan be null.
replyToarray of object2 child fields
emailstring (email)requirednamestringCan be null.
subjectstringsnippetstringtextstringCan be null.
htmlstringCan be null.
attachmentsarray of object6 child fields
idstringfilenamestringcontentTypestringsizeintegerisInlinebooleancontentIdstringCan be null.
headersmap of stringrawstringdatestring (date-time)unreadbooleanstarredbooleanmetadatamap of string
200 response
{
"data": {
"id": "6bfebd43ddc270f6d2c56fc5",
"accountId": "696e0b682d0a31188e7a2ba9",
"provider": "google",
"subject": "string",
"snippet": "string",
"participants": [
{
"email": "alex@example.com",
"name": "Acme"
}
],
"messageIds": [
"Hello from Pozy"
],
"draftIds": [
"string"
],
"folders": [
"string"
],
"hasAttachments": true,
"hasDrafts": true,
"unread": true,
"starred": true,
"earliestMessageAt": "2026-10-02T09:00:00.000Z",
"latestMessageReceivedAt": "2026-10-02T09:00:00.000Z",
"latestMessageSentAt": "2026-10-02T09:00:00.000Z",
"messages": [
{
"id": "6bfebd43ddc270f6d2c56fc5",
"threadId": "60186572e25ff711298bf12e",
"accountId": "696e0b682d0a31188e7a2ba9",
"provider": "google",
"folders": [
"string"
],
"from": {
"email": "alex@example.com",
"name": "Acme"
},
"to": [
{
"email": "alex@example.com",
"name": "Acme"
}
],
"cc": [
{
"email": "alex@example.com",
"name": "Acme"
}
],
"bcc": [
{
"email": "alex@example.com",
"name": "Acme"
}
],
"replyTo": [
{
"email": "alex@example.com",
"name": "Acme"
}
],
"subject": "string",
"snippet": "string",
"text": "Hello from Pozy",
"html": "string",
"attachments": [
{
"id": "6bfebd43ddc270f6d2c56fc5",
"filename": "photo.jpg",
"contentType": "image/jpeg",
"size": 482133,
"isInline": true,
"contentId": "6e56e1ad0e43e2da5ef935a5"
}
],
"headers": {
"key": "string"
},
"raw": "string",
"date": "2026-10-02T09:00:00.000Z",
"unread": true,
"starred": true,
"metadata": {
"key": "string"
}
}
]
}
}Errors
Errors use one shape: { error, type, code, param?, details? }. The ones you are most likely to see here:
| 400 | invalid_request_error | A parameter or body field is missing or invalid. param names it. |
| 401 | authentication_error | The API key is missing, revoked or expired. |
| 403 | permission_error | The key is scoped to other profiles or has this resource group disabled. |
| 404 | not_found | Nothing with that id exists in your workspace. |
| 429 | rate_limit_error | Too many requests this minute. Wait for Retry-After seconds. |
Every code is listed in Errors.