---
title: "Create a historical unanswered-thread scan"
method: POST
path: "/reply-scans"
tags: ["Messages"]
---

# Create a historical unanswered-thread scan

`POST /reply-scans`

## Request

- Base URL: `https://shipmail.to/api/v1`
- URL: `https://shipmail.to/api/v1/reply-scans`
- 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`)

Atomically captures the current needs_reply threads in the requested window. The completed candidate set is frozen, retained for 30 days, limited to 5,000 rows, and cursor-paged. Windows are limited to 366 days.

## Headers

- `X-Shipmail-Organization` string

## Request body

- CreateReplyScanRequest
  - `mailbox_ids` string[], required
  - `after` string, date-time, required: Inclusive lower bound. The window through before must not exceed 366 days.
  - `before` string, date-time: Exclusive upper bound; defaults to snapshot creation time.

## Response `201`

Completed reply scan snapshot created.

- ReplyScan
  - `object` 'reply_scan', required
  - `id` string, required
  - `mailbox_ids` string[], required
  - `after` string, date-time, required
  - `before` string, date-time, required
  - `snapshot_at` string, date-time, required
  - `status` 'completed', required
  - `candidate_count` integer, required
  - `completed_at` string, date-time, required
  - `created_at` string, date-time, required

## 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)
