Create a sync configuration for a bucket.
REQUIRED: Bearer token authentication using your API key. Format: 'Bearer sk_xxxxxxxxxxxxx'. You can create API keys in the Mixpeek dashboard under Organization Settings.
REQUIRED: Namespace identifier for scoping this request. All resources (collections, buckets, taxonomies, etc.) are scoped to a namespace. You can provide either the namespace name or namespace ID. Format: ns_xxxxxxxxxxxxx (ID) or a custom name like 'my-namespace'
Request to create a bucket sync configuration.
Establishes automated synchronization between a storage connection and a bucket. The sync monitors the source path for changes and ingests files according to the specified mode and filters.
Use Cases: - Continuous monitoring of cloud storage folders - One-time bulk imports from storage providers - Scheduled batch imports with polling intervals
Requirements: - connection_id: REQUIRED, must be an existing connection - source_path: REQUIRED, path must exist in the storage provider - sync_mode: OPTIONAL, defaults to 'continuous' - All other fields are OPTIONAL with sensible defaults
Storage connection identifier to sync from. REQUIRED. Must reference an existing connection configured in the namespace. The connection defines the storage provider (S3, GCS, Azure, etc.) and credentials. Example: 'conn_abc123'
Source path within the storage provider to monitor and sync. REQUIRED. Path format depends on the storage provider: - S3/GCS: 'bucket-name/folder/subfolder' or 'bucket-name' for entire bucket. - Azure: 'container-name/folder' or 'container-name'. Trailing slashes are optional. All files under this path will be synced.
Synchronization mode determining how files are monitored and ingested. OPTIONAL. Defaults to 'continuous'. 'continuous': Actively monitors for new files and syncs immediately. 'one_time': Performs a single sync of existing files then stops. 'scheduled': Syncs on polling intervals only.
initial_only, continuous Optional filters to control which files are synced. NOT REQUIRED. When omitted, all files in source_path are synced. Supports: - 'extensions': List of file extensions (e.g., ['.mp4', '.jpg']). - 'min_size_bytes': Minimum file size. - 'max_size_bytes': Maximum file size. - 'patterns': Regex patterns for filename matching.
{ "extensions": [".mp4", ".mov"] }Interval in seconds between polling checks for new files. OPTIONAL. Defaults to 300 seconds (5 minutes). Must be between 30 and 900 seconds (0.5 to 15 minutes). Only applies to 'continuous' and 'scheduled' sync modes. Lower values mean faster detection but higher API usage.
30 <= x <= 900Number of files to process in each batch during sync. OPTIONAL. Defaults to 50 files per batch. Must be between 1 and 100. Larger batches improve throughput but require more memory. Smaller batches provide more granular progress tracking.
1 <= x <= 100Optional custom metadata to attach to the sync configuration. NOT REQUIRED. Arbitrary key-value pairs for tagging and organization. Common uses: project tags, environment labels, cost centers. Maximum 50 keys, values must be JSON-serializable.
{
"environment": "production",
"project": "video-pipeline"
}Successful Response
Bucket-scoped configuration describing how to sync external files.
Target bucket identifier (e.g. 'bkt_marketing_assets').
Storage connection identifier (e.g. 'conn_abc123').
Organization internal identifier (multi-tenancy scope).
Namespace identifier owning the bucket.
Source path in the external storage provider.
User identifier that created the sync configuration.
Unique identifier for the sync configuration.
Optional filter rules limiting which files are synced.
Sync mode controlling lifecycle (initial_only or continuous).
initial_only, continuous Polling interval in seconds (continuous mode).
30 <= x <= 900Number of files processed per sync batch.
1 <= x <= 100Whether objects should be created immediately after confirmation.
Skip files whose hashes already exist in the bucket.
Current lifecycle status for the sync configuration. PENDING: Not yet started. ACTIVE: Currently running/polling. SUSPENDED: Temporarily paused. COMPLETED: Initial sync completed (for initial_only mode). FAILED: Sync encountered errors.
PENDING, IN_PROGRESS, PROCESSING, COMPLETED, COMPLETED_WITH_ERRORS, FAILED, CANCELED, UNKNOWN, SKIPPED, DRAFT, ACTIVE, ARCHIVED, SUSPENDED Convenience flag used for filtering active syncs.
x >= 0x >= 0x >= 0x >= 0Most recent error message if sync attempts failed.
1000x >= 0Arbitrary metadata supplied by the user.