---
title: "List Email Threads"
method: GET
path: "/email/threads"
tags: ["email"]
deprecated: true
---

# List Email Threads

`GET /email/threads`

> **Deprecated.**

Paginated, filterable list of email threads (newest activity first).

## Query parameters

- `source` string, nullable
- `contact_source` string, nullable
- `account_id` string, uuid, nullable
- `include_spam` boolean — Include threads the source marked as spam
- `local_hour_of_day` integer, nullable — Filter to threads stamped at this tenant-local hour (0-23); heatmap cell drill.
- `local_day_of_week` integer, nullable — Filter to threads stamped on this tenant-local weekday (0=Mon..6=Sun); heatmap cell drill.
- `limit` integer, nullable
- `offset` integer, nullable
- `page` integer, nullable — Deprecated - use offset.
- `per_page` integer, nullable — Deprecated - use limit.
- `start_date` string, date, nullable
- `end_date` string, date, nullable
- `date_field` string, nullable — Which timestamp the date range filters. Valid values differ per subject; an unknown one is a 422 listing them.
- `date_from` string, date-time, nullable — Deprecated - use start_date.
- `date_to` string, date-time, nullable — Deprecated - use end_date.
- `use_created_at` boolean, nullable — Deprecated - use date_field=created_at.
- `property_ids` string[], nullable
- `property_ids_exclude` string[], nullable
- `include_considered_hotels` boolean, nullable — Include hotels the conversation was only considered for, not just the one it was attributed to.
- `agent_id` string, uuid, nullable
- `outcome_agent_ref` string, nullable
- `outcome_agent_refs` string[], nullable
- `outcome_agent_refs_exclude` string[], nullable
- `outcome_agent_kind` 'ai_voice' | 'ai_text' | 'human', nullable
- `reviewed` boolean, nullable
- `status` string, nullable
- `has_booking_intent` boolean, nullable
- `has_booking` boolean, nullable
- `booking_made` boolean, nullable
- `booking_attributed` boolean, nullable
- `tag_ids` string[], nullable
- `country` string, nullable
- `is_after_hours` boolean, nullable
- `population_filters` string[], nullable — Named conversation-population filters: business_hours, min_call_25s, real_customer_message, exclude_spam_test, dedupe_24h.
- `search` string, nullable
- `standard_filters` string, nullable
- `metric_filters` string, nullable
- `sort_by` string, nullable
- `sort_order` 'asc' | 'desc', nullable
- `strict` boolean — Reject filters this subject cannot apply with a 422, instead of returning a wider population and reporting them in ignored_filters.
- `voice_agent_id` string, uuid, nullable — Deprecated - use agent_id.
- `metric_id` string, uuid, nullable — Deprecated - use metric_filters.
- `metric_state` 'pass' | 'fail' | 'na' | 'not_run' | 'error', nullable — Deprecated - use metric_filters.
- `booking_intent` boolean, nullable — Deprecated - use has_booking_intent.

## Response `200`

Successful Response

- LogListResponseEmailThreadListItem
  - `items` EmailThreadListItem[], required
    - `id` string, uuid, required
    - `tenant_id` string, uuid, required
    - `email_account_id` string, uuid, required
    - `customer_profile_id` string, uuid, nullable
    - `subject` string, nullable
    - `status` string, required
    - `source` string, required
    - `guest_email` string, nullable
    - `guest_name` string, nullable
    - `message_count` integer, required
    - `started_at` string, date-time, nullable
    - `last_message_at` string, date-time, nullable
    - `booking_intent` boolean, required
    - `booking_made` boolean, required
    - `booking_value_cents` integer, nullable
    - `booking_value_currency` string, nullable
    - `booking_outcome_set_at` string, date-time, nullable
    - `disposition` string, nullable
    - `outcome_agent_ref` string, nullable
    - `review_status` string, required
    - `outcome` string, nullable
    - `contact_source` string, nullable
    - `local_hour_of_day` integer, nullable
    - `local_day_of_week` integer, nullable
    - `primary_property_id` string, uuid, nullable
    - `primary_property_name` string, nullable
  - `total` integer, required — Rows matching the filters, in `total_unit`s.
  - `limit` integer, required — Page size actually applied.
  - `offset` integer, required — Rows skipped.
  - `has_more` boolean, required — Whether another page exists.
  - `total_unit` 'logical_call' | 'row' — What `total` counts. `row` for text, email and bookings. `voice` returns `logical_call`, because a transferred call is several legs in `items` but one call in `total` — so a caller that counts `items` will legitimately disagree with `total`.
  - `applied_filters` string[] — Filters that were compiled into the query.
  - `ignored_filters` IgnoredFilter[] — Filters accepted but NOT applied by this subject, each with the reason. Send `strict=true` to make these a 422 instead.
    - `key` string, required — The query parameter that was not applied.
    - `reason` string, required — Operator-facing explanation, from the subject registry. This is the same sentence the UI shows in the disabled control's tooltip.
  - `page` integer, nullable — Deprecated — derive from `offset`/`limit`.
  - `per_page` integer, nullable — Deprecated — use `limit`.

## Other responses

- `401` — Authentication required
- `403` — Missing the required permission for these logs
- `422` — Invalid parameters: conflicting deprecated alias, inverted date range, unknown date_field, unsupported sort_by, or — with strict=true — a filter this subject cannot apply

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getanana/cleon-api/revisions/c0f54348e251/schema)
