---
title: "Sync Mailbox Now"
method: POST
path: "/email/mailboxes/{mailbox_id}/sync"
tags: ["email"]
---

# Sync Mailbox Now

`POST /email/mailboxes/{mailbox_id}/sync`

Queue an on-demand sync for one source.

Queued, not run inline. A full scan takes minutes — every thread listed,
messages fetched per changed thread — so running it in the request meant the
client timed out, the transaction rolled back, and nothing at all was
recorded: no threads, no ``last_synced_at``, no ``last_error``. Silent, and
indistinguishable from a broken integration.

## Path parameters

- `mailbox_id` string, uuid, required

## Response `200`

Successful Response

- EmailSyncQueuedRead — Acknowledgement that a sync was queued — not that it finished.
  - `account_id` string, uuid, required
  - `queued` boolean, required
  - `outcome` 'queued' | 'already_running' | 'unavailable', required
  - `detail` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/email/mailboxes/:mailbox_id/sync/post.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/41c5e4645524?raw)
