Keep a run in the product
Promotes a temporary run into your workspace so it stops being temporary.
Keeping a run moves its files and outputs into a real space, re-indexes them for search, imports definition-bound extraction results as records, and clears the TTL — `expiresAt` becomes `null`.
**Two ways to name the destination:**
```json
{ "spaceId": "spc_01JQ8ZKMRT4V6WXYZ0ABCDEFGH" }
```
```json
{ "space": { "name": "Q3 invoices" } }
```
The response carries `dashboardUrl` — the space as a person would open it.
<Note>
Keeping is idempotent for the same space, but keeping into a *different* space answers `409 already_kept`. A run that is still going answers `409 pipeline_running` — wait for [the run](https://docs.cloudraker.com/api/cloud-raker-api/runs/get-run) to finish first.
</Note>
Authentication
AuthorizationBearer
Bearer authentication of the form Bearer <token>, where token is your auth token.
Path parameters
id
Request
This endpoint expects an object.
spaceId
space
Response
Kept.
object
id
spaceId
dashboardUrl
Errors
404
Not Found Error
409
Conflict Error
410
Gone Error
429
Too Many Requests Error