> For a complete page index of the Captain API documentation, fetch https://docs.captain.dev/llms.txt?excludeSpec=true

# Syncs

* **Keep a collection aligned with a cloud-storage bucket**: a sync binds an S3-compatible bucket to a collection once, runs an initial backfill, then keeps the collection current as objects are added, changed, and removed. Create one with [Set Up Sync](/guides/sync/set-up); each store has its own create endpoint ([S3](/reference/sync/s3/create), [R2](/reference/sync/r2/create), [Supabase](/reference/sync/supabase/create), [Backblaze](/reference/sync/backblaze/create)).
* **Two ways to stay current**: scheduled reconciliation (`sync_interval_minutes`, minimum 5) and optional real-time [event webhooks](/reference/sync/manage/webhooks) for sub-minute propagation. Reconciliation is the backstop for any dropped event, and you can trigger one on demand with [Reconcile](/reference/sync/manage/reconcile).
* **Deletion propagation**: `deletion_policy` controls what happens when an object leaves the bucket: `mirror` (remove from the collection), `archive` (keep the document but mark it archived, excluded from search by default, surfaced with `include_archived: true`), or `ignore`.
* **Manage syncs**: [list](/reference/sync/manage/list), [get](/reference/sync/manage/get), [update](/reference/sync/manage/update) (scope, schedule, deletion policy, pause/resume), and [delete](/reference/sync/manage/delete) (stops the sync while indexed documents remain in the collection), provider-agnostic once a sync exists.