Create S3 Sync
Create a Sync for a collection and start the initial backfill. AWS S3 authenticates with cross-account assume-role (recommended) or an access key. Works across S3-compatible cloud storage: AWS S3, Google Cloud Storage, Cloudflare R2, Supabase Storage, and Backblaze B2 (each has its own create endpoint). Returns the sync; indexing runs asynchronously.
Path parameters
Headers
Request
Auth for reading the bucket: assume-role (AWS S3) or access-key (S3 or S3-compatible). Non-S3 stores require access-key auth.
Parsing tier. ‘advanced’ = full document understanding; ‘basic’ = faster/cheaper.
Key prefix to scope the sync (e.g. ‘docs/2024/’). Empty syncs the whole bucket.
Region of the bucket (AWS region for S3, or the provider’s region, e.g. ‘auto’ for R2, ‘us-west-004’ for Backblaze B2).
Cloud storage type. ‘s3’ = AWS S3 (assume-role or access-key). ‘r2’/‘supabase’/‘backblaze’ are S3-compatible and require access-key auth with an endpoint_url.
Glob patterns; only matching keys are synced. Empty includes everything under the prefix.
Glob patterns; matching keys are excluded.
How to propagate objects removed from the source: mirror removes them from the collection so they no longer appear in search; archive keeps the document’s content but marks it archived, excluded from search by default and surfaced with include_archived: true; ignore leaves the indexed copy in place.
Maps an S3 object tag/key to a Captain metadata field name.
Scheduled reconcile cadence. MINIMUM 5 minutes (the scheduler ticks every 5 min); values below 5 are silently raised to 5; >=5 honored exactly. null/omitted = manual (events + on-demand only). For sub-5-min propagation use the event webhook.
Response
The sync’s cloud storage type. Returned by the list endpoint (GET /v2/syncs) only; other sync endpoints omit this field.
How the sync authenticates to the bucket: ‘iam_role’ (AWS cross-account assume-role), ‘access_key’ (S3-compatible key pair), or ‘service_account’ (GCS service-account JSON).
Azure Blob syncs only: the storage account name. Null for other providers.
S3-compatible endpoint URL (access-key syncs on non-AWS providers); null for AWS S3. Returned by the list endpoint (GET /v2/syncs) only; other sync endpoints omit this field.
True once an event-webhook secret has been minted.
SNS subscribe URL; only surfaced by the subscribe-webhook endpoint.
Effective (already-clamped) cadence; null = manual.