---
title: "List completed reply scan candidates"
method: GET
path: "/reply-scans/{scan_id}/results"
tags: ["Messages"]
---

# List completed reply scan candidates

`GET /reply-scans/{scan_id}/results`

## Request

- Base URL: `https://shipmail.to/api/v1`
- URL: `https://shipmail.to/api/v1/reply-scans/{scan_id}/results`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://shipmail.to/api/auth/oauth2/authorize`, token URL `https://shipmail.to/api/auth/oauth2/token`)

## Query parameters

- `cursor` string
- `limit` integer

## Headers

- `X-Shipmail-Organization` string

## Response `200`

Reply scan candidates.

- ReplyScanResults
  - `object` 'reply_scan_results', required
  - `scan_id` string, required
  - `data` ReplyScanCandidate[], required
    - `object` 'reply_scan_candidate', required
    - `id` string, required
    - `mailbox_id` string, required
    - `thread_id` string, required: Deprecated and not stable: a legacy thread ID that changes when the mail server re-threads its IDs or a relayed send's placeholder key is replaced. It remains supported in thread paths; store conversation_id instead.
    - `conversation_id` string, required: Stable Shipmail conversation identifier (thd_...). Store this: it survives thread merges and mail-server re-threading, which thread_id does not.
    - `tracked_thread_id` string, required: Same value as conversation_id, kept for compatibility.
    - `latest_message_id` string, nullable
    - `latest_email_id` string, nullable
    - `latest_inbound_message_id` string, nullable
    - `latest_inbound_email_id` string, nullable
    - `version` integer, required
    - `attention_since` string, date-time, required
    - `subject` string, nullable
  - `pagination` Pagination, required
    - `next_cursor` string, nullable, required: Cursor for the next page. Null if no more results.
    - `has_more` boolean, required: Whether more results exist beyond this page.
    - `limit` integer, required: Number of items per page.

## Other responses

- `401`: Authentication failed.
- `403`: Insufficient permissions.
- `404`: Resource not found.
- `409`: Resource conflict.
- `422`: Validation failed.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/shipmail/apis/shipmail-api.md) · [All operations](https://skmtc.dev/shipmail/apis/shipmail-api/llms.txt) · [OpenAPI document](https://skmtc.dev/shipmail/apis/shipmail-api/revisions/2c23e59d7e30?raw)
