Skip to main content

Cloud Sync

Cloud Sync

Cloud Sync lets you move ZeroDB data between local instances and the cloud, or between projects. Use it for backups, migrations, and offline-first workflows.

Export a Sync Bundle

Export your project's data as a portable bundle:

curl -X POST https://api.ainative.studio/api/v1/projects/{project_id}/sync/export \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"include": ["tables", "vectors", "memory", "events"],
"compress": true
}'

Response includes a bundle_id you use to download the bundle.

Download a Bundle

curl -O https://api.ainative.studio/api/v1/projects/{project_id}/sync/export/{bundle_id} \
-H "x-api-key: $API_KEY"

Import a Sync Bundle

curl -X POST https://api.ainative.studio/api/v1/projects/{project_id}/sync/import \
-H "x-api-key: $API_KEY" \
-F "bundle=@./zerodb-backup.zip"

Check Sync State

curl https://api.ainative.studio/api/v1/projects/{project_id}/sync/state \
-H "x-api-key: $API_KEY"

List Available Bundles

curl https://api.ainative.studio/api/v1/projects/{project_id}/sync/bundles \
-H "x-api-key: $API_KEY"

Python SDK

import requests

API_KEY = "your-api-key"
PROJECT_ID = "your-project-id"
BASE = f"https://api.ainative.studio/api/v1/projects/{PROJECT_ID}/sync"
headers = {"x-api-key": API_KEY}

## Export
r = requests.post(f"{BASE}/export", headers={**headers, "Content-Type": "application/json"}, json={
"include": ["tables", "vectors", "memory"],
"compress": True
})
bundle_id = r.json()["bundle_id"]
print(f"Bundle ready: {bundle_id}")

## Download
bundle = requests.get(f"{BASE}/export/{bundle_id}", headers=headers)
with open("backup.zip", "wb") as f:
f.write(bundle.content)

## Check sync state
state = requests.get(f"{BASE}/state", headers=headers).json()
print(f"Last synced: {state['last_synced_at']}")

Use Cases

  • Local development: Export prod data, import into local ZeroDB for testing
  • Backups: Schedule regular exports to keep recoverable snapshots
  • Migration: Move data between projects or regions
  • Offline-first: Sync when connectivity is restored after offline agent runs

Endpoints

MethodPathDescription
POST/sync/importUpload and import a sync bundle
GET/sync/export/{bundle_id}Download a sync bundle
GET/sync/stateGet current sync status
GET/sync/bundlesList available bundles