AACSearch

Snapshots

Per-index snapshot endpoints — create, list, read with a download link, delete and restore.

Concepts, contents and plan limits are on the Snapshots data page. This page is the endpoint reference. Every path is under /api/v1/indexes/{slug}.

MethodPathScopesSuccess
POST/snapshots[?prune=true]settings:write + documents:write202 { job_id, snapshot_id, status, pruned, request_id }
GET/snapshotsdocuments:read200 { index, snapshots[], request_id }, newest first
GET/snapshots/{snapshotId}documents:read200 { snapshot, download, request_id }
DELETE/snapshots/{snapshotId}settings:write + documents:write200 { deleted: true, id, request_id }
POST/snapshots/{snapshotId}/restoresettings:write + documents:write202 { job_id, status, request_id }

Create and restore are jobs: poll GET /jobs/{jobId}.

Snapshot object

FieldMeaning
idsnap_…, sortable by creation time
indexIndex slug
created_atISO timestamp
document_countDocuments in the snapshot
bytesStored size of all files, manifest excluded
engine_versionEngine version at export
embed_modelEmbedding model of the index at export, or null
checksumsha256 over the per-file hashes
counts{ synonyms, curations, stemming, stopwords, rules, profiles }

download on GET /snapshots/{id}: { url, expires_at, content_encoding: "gzip", format: "ndjson" }. The URL is valid for 15 minutes.

Errors

StatusCodeWhen
403FORBIDDENA required scope is missing
404INDEX_NOT_FOUNDUnknown slug in the key's organization
404SNAPSHOT_NOT_FOUNDUnknown id, or a snapshot of another index or tenant
409SNAPSHOT_LIMIT_REACHEDPlan's snapshotsPerIndex reached; details has limit, existing and a hint to use ?prune=true
409JOB_CONFLICTRestore while a reindex or restore is queued or running; details.job_id, details.type
curl -sS -X POST "$AAC_API/indexes/products/snapshots" -H "Authorization: Bearer $AAC_KEY"
{
	"error": {
		"code": "SNAPSHOT_LIMIT_REACHED",
		"message": "…",
		"details": {
			"limit": 10,
			"existing": 10,
			"hint": "Delete a snapshot or retry with ?prune=true to remove the oldest one."
		},
		"request_id": "req_…"
	}
}

Platform snapshots are different

POST /admin/snapshot, GET/DELETE /admin/snapshots copy the whole engine data directory for operators. They need the platform admin token and answer 503 SNAPSHOT_NOT_CONFIGURED when SEARCH_SNAPSHOT_DIR is not set. Tenants use the per-index endpoints above.

On this page