---
title: "Get email activities for an account"
method: GET
path: "/accounts/{id}/email-activities"
tags: ["accounts"]
---

# Get email activities for an account

`GET /accounts/{id}/email-activities`

## Request

- Base URL: `https://api.usepylon.com`
- URL: `https://api.usepylon.com/accounts/{id}/email-activities`
- Auth: HTTP bearer

Returns email threads synced to the specified account from connected Gmail and Outlook inboxes, ordered by their latest email from newest to oldest.
The {id} parameter accepts either:
Internal account ID (UUID format)
External ID (any string format)

**Rate limit:** 120 requests per minute

## Path parameters

- `id` string, required

## Query parameters

- `start_time` string, date-time
- `end_time` string, date-time
- `cursor` string
- `limit` integer

## Response `200`

- GetEmailActivitiesResponseBody
  - `data` EmailActivity[], required: The data payload of the response.
    - `account_id` string, required: The ID of the account that the activity belongs to.
    - `happened_at` string, date-time, required: The timestamp (RFC3339) when the thread's latest email was sent. A thread moves forward as it gets replies.
    - `id` string, required: The ID of the activity.
    - `messages` EmailActivityMessage[], required: The thread's emails sent from or to an account you can read, oldest first. Emails only between teammates are omitted.
      - `contact_id` string: The ID of the contact who sent the email, if the sender is a contact.
      - `email_info` EmailMessageInfo, required
        - `bcc_emails` string[], nullable: The email addresses of the BCC recipients of the message.
        - `cc_emails` string[], nullable: The email addresses of the CC recipients of the message.
        - `from_email` string, required: The email address of the sender of the message.
        - `message_id` string, required: The RFC 5322 Message-ID header value for this email. This is a provider-specific identifier, not the top-level Pylon message ID, and cannot be used as message_id when posting a reply or internal note.
        - `opens` EmailEvent[], nullable: When each recipient first opened an email Pylon sent, at most one entry per recipient. Always empty for inbound mail and for mail sent through a connected personal email account. Open tracking is approximate: clients that prefetch images (such as Apple Mail Privacy Protection) can report opens that never happened, and clients that block images report none.
          - `email` string, required: The email address of the recipient the event applies to.
          - `time` string, required: When the event happened, in RFC 3339 format.
        - `sender_authentication_status` string, required: The SPF/DKIM sender authentication result recorded by Pylon's inbound mail provider. One of "pass", "fail", or "unknown". "fail" means SPF failed outright, or the message carried a DKIM signature that did not validate. "pass" means SPF passed, or a DKIM signature validated. "unknown" means nothing vouched for the sender and must not be read as a pass. It covers mail Pylon sent, mail synced from a personal email integration, submissions stored as email messages, and senders whose domain published no SPF or DKIM records to check against.
        - `to_emails` string[], nullable: The email addresses of the recipients of the message.
      - `id` string, required: The ID of the email message.
      - `issue_id` string: The ID of the issue this email is on, if any. The issue messages endpoint also returns issue emails; match them by email_info.message_id.
      - `message_html` string, required: The HTML body of the email.
      - `subject` string, required: The subject of the email.
      - `timestamp` string, date-time, required: The time the email was sent.
      - `user_id` string: The ID of the user who sent the email, if the sender is a Pylon user.
  - `pagination` Pagination: Pagination information for list responses. Absent when there are no more results.
    - `cursor` string, required: The cursor for the next page of results.
    - `has_next_page` boolean, required: Indicates if there is a next page of results.
  - `request_id` string, required: The request ID for tracking.

## Other responses

- `400`: The request was invalid or could not be completed.
- `401`: The request could not be authenticated for this API.
- `403`: The authenticated caller or organization is not allowed to access this endpoint or operation.
- `404`
- `429`: The request exceeded the applicable rate limit.
- `500`: An unexpected internal error occurred.

## Changes

- **2026-10-27** `70797c3a1b5f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usepylon/apis/pylon-api/changes/accounts/:id/email-activities/get.md)

---

[API](https://skmtc.dev/usepylon/apis/pylon-api.md) - [All operations](https://skmtc.dev/usepylon/apis/pylon-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usepylon/apis/pylon-api/revisions/7d018a2a6265?raw)
