---
title: "Save Project State"
method: PUT
path: "/api/projects/{job_id}/state"
---

# Save Project State

`PUT /api/projects/{job_id}/state`

Persist the browser-only edit state of a project's clips.

Body: {"clips": [{"index", "active_layers", "server_file"?}]}. The Remotion
layers exist nowhere but the browser, so the frontend syncs them here
(debounced) to survive reload / reopen.

## Path parameters

- `job_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/openshorts/apis/fastapi.md) · [All operations](https://skmtc.dev/openshorts/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openshorts/fastapi/revisions/8085a0ce516b/schema)
