curl --request GET \
--url https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"namespace_id": "<string>",
"namespace_name": "<string>",
"internal_id": "<string>",
"snapshot_type": "daily",
"snapshot_id": "<string>",
"status": "pending",
"created_at": "2023-11-07T05:31:56Z",
"dispatch_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"schema_version": 1,
"s3_prefix": "",
"s3_objects_copied": false,
"manifest": {
"snapshot_id": "<string>",
"namespace_id": "<string>",
"namespace_name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"snapshot_type": "<string>",
"schema_version": 1,
"mongo_collections": {},
"vector_point_count": 0,
"s3_object_count": 0,
"s3_total_bytes": 0,
"s3_objects_copied": false,
"include_vectors": true,
"vector_shard_key": "<string>",
"frontier": {
"consistency": "bracketed",
"mongo": {
"read_concern": "snapshot",
"cluster_time_start": {
"t": 123,
"i": 123
},
"cluster_time_end": {
"t": 123,
"i": 123
},
"error": "<string>"
},
"vectors": {
"capture_mode": "scroll_bracketed",
"shards_start": {},
"shards_end": {},
"error": "<string>"
},
"objects": {
"generation_cutoff": 123,
"last_modified_cutoff": "<string>",
"objects_listed": 0
},
"config_yaml": "<string>",
"config_yaml_error": "<string>",
"digests": {},
"schema_versions": {},
"secrets": [
{
"name": "<string>",
"version": "<string>"
}
]
}
},
"error": "<string>",
"task_id": "<string>",
"include_vectors": true,
"vector_shard_key": "<string>",
"copy_out": {
"status": "<string>",
"bucket": "<string>",
"objects": 0,
"bytes": 0,
"mismatched": [
"<string>"
],
"error": "<string>"
},
"imported_from": {},
"last_restore": {
"snapshot_id": "<string>",
"target_namespace_id": "<string>",
"complete": true,
"collections": [
{
"collection": "<string>",
"expected": 123,
"restored": 123,
"status": "<string>",
"reason": "<string>"
}
],
"vector_expected": 0,
"vector_restored": 0,
"vector_source": "<string>",
"vector_status": "none",
"skipped_summary": [
"<string>"
],
"retriever_parity": [
{
"retriever_name": "<string>",
"status": "<string>",
"reason": "<string>",
"probe_inputs": {},
"source_top_k": [
"<string>"
],
"target_top_k": [
"<string>"
],
"overlap": 123
}
],
"restore_point": "<string>",
"resolved_seq": 123,
"fork_id": "<string>",
"write_gap": {}
},
"download": {
"expires_at": "2023-11-07T05:31:56Z",
"artifacts": [
{
"path": "<string>",
"url": "<string>",
"sha256": "<string>",
"size": 123
}
]
}
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}Get Snapshot
Get details of a specific snapshot. With download=true the response also carries a signed URL and the sha256 for every artifact (configuration, Mongo dumps, vector export, object manifest), valid for one hour, so you can download the namespace.
curl --request GET \
--url https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/namespaces/{namespace_identifier}/snapshots/{snapshot_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"namespace_id": "<string>",
"namespace_name": "<string>",
"internal_id": "<string>",
"snapshot_type": "daily",
"snapshot_id": "<string>",
"status": "pending",
"created_at": "2023-11-07T05:31:56Z",
"dispatch_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"schema_version": 1,
"s3_prefix": "",
"s3_objects_copied": false,
"manifest": {
"snapshot_id": "<string>",
"namespace_id": "<string>",
"namespace_name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"snapshot_type": "<string>",
"schema_version": 1,
"mongo_collections": {},
"vector_point_count": 0,
"s3_object_count": 0,
"s3_total_bytes": 0,
"s3_objects_copied": false,
"include_vectors": true,
"vector_shard_key": "<string>",
"frontier": {
"consistency": "bracketed",
"mongo": {
"read_concern": "snapshot",
"cluster_time_start": {
"t": 123,
"i": 123
},
"cluster_time_end": {
"t": 123,
"i": 123
},
"error": "<string>"
},
"vectors": {
"capture_mode": "scroll_bracketed",
"shards_start": {},
"shards_end": {},
"error": "<string>"
},
"objects": {
"generation_cutoff": 123,
"last_modified_cutoff": "<string>",
"objects_listed": 0
},
"config_yaml": "<string>",
"config_yaml_error": "<string>",
"digests": {},
"schema_versions": {},
"secrets": [
{
"name": "<string>",
"version": "<string>"
}
]
}
},
"error": "<string>",
"task_id": "<string>",
"include_vectors": true,
"vector_shard_key": "<string>",
"copy_out": {
"status": "<string>",
"bucket": "<string>",
"objects": 0,
"bytes": 0,
"mismatched": [
"<string>"
],
"error": "<string>"
},
"imported_from": {},
"last_restore": {
"snapshot_id": "<string>",
"target_namespace_id": "<string>",
"complete": true,
"collections": [
{
"collection": "<string>",
"expected": 123,
"restored": 123,
"status": "<string>",
"reason": "<string>"
}
],
"vector_expected": 0,
"vector_restored": 0,
"vector_source": "<string>",
"vector_status": "none",
"skipped_summary": [
"<string>"
],
"retriever_parity": [
{
"retriever_name": "<string>",
"status": "<string>",
"reason": "<string>",
"probe_inputs": {},
"source_top_k": [
"<string>"
],
"target_top_k": [
"<string>"
],
"overlap": 123
}
],
"restore_point": "<string>",
"resolved_seq": 123,
"fork_id": "<string>",
"write_gap": {}
},
"download": {
"expires_at": "2023-11-07T05:31:56Z",
"artifacts": [
{
"path": "<string>",
"url": "<string>",
"sha256": "<string>",
"size": 123
}
]
}
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}Authorizations
Mixpeek API key, sent as Authorization: Bearer mxp_sk_.... Create one in Studio under Settings → API Keys, or with an admin key via POST /v1/organizations/users/{user_email}/api-keys. A missing, malformed, unknown, revoked, inactive or expired key returns 401; a key without the permission, scope or plan an operation needs returns 403.
Path Parameters
Namespace name or ID
Snapshot ID (e.g. snap_xxxxxxxxxxxx)
Query Parameters
Return signed download URLs and sha256 digests for every artifact. Only a completed snapshot can be downloaded.
Response
Successful Response
daily, pre_delete, manual pending, in_progress, completed, failed, expired When the snapshot's work was due to start (created_at plus any dispatch stagger)
Show child attributes
Show child attributes
False for a metadata-only snapshot, which holds the namespace's records but no vector points; restoring it writes no vectors.
The copy of this snapshot in the plane's backup bucket
Show child attributes
Show child attributes
For an imported snapshot, the bucket and prefix it was copied from and the source snapshot's id
Outcome of the most recent restore FROM this snapshot (what was restored vs skipped); null if never restored.
Show child attributes
Show child attributes
Signed URLs for every artifact, with each one's sha256. Present only when the request sets download=true.
Show child attributes
Show child attributes
Was this page helpful?

