curl --request POST \
--url https://studio.weaverse.io/api/v1/content/projects/{projectId}/backups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"op": "create"
}'{
"object": "backup_created",
"deduped": false
}{
"object": "project_restored",
"newProjectId": "clz9b4c5d0012trew1qaz2wsx"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}Backups and portability
Create a backup or restore one as a new project
Two operations, selected by op:
{ "op": "create" }: backs up the project now. Deduplicated: when the current content matches a stored snapshot, nothing is uploaded and the response hasdeduped: true. Returns 200{ object: "backup_created", deduped }.{ "op": "restore", "backupId": "…" }: restores that backup as a new project in the caller’s shop. It never overwrites the current project, so no confirmation is required. Returns 201{ object: "project_restored", newProjectId }.
Neither operation is destructive to existing content. The backup id must belong to this project (404 otherwise).
Required scope: project:manage
POST
/
projects
/
{projectId}
/
backups
curl --request POST \
--url https://studio.weaverse.io/api/v1/content/projects/{projectId}/backups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"op": "create"
}'{
"object": "backup_created",
"deduped": false
}{
"object": "project_restored",
"newProjectId": "clz9b4c5d0012trew1qaz2wsx"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}{
"object": "error",
"code": "UNAUTHORIZED",
"message": "<string>",
"status": 123,
"details": "<unknown>"
}Authorizations
Bearer token: a shop API key (WEAVERSE_API_KEY), a scoped API key or a delegated MCP OAuth token; translation-unit routes also accept a project-bound translation agent token. Each operation lists the scope it requires; the scope table is in the API description.
Path Parameters
Body
application/json
- Option 1
- Option 2
Response
Created (deduped flag)
The response is of type object.
Was this page helpful?