---
title: "Studio Resign"
method: POST
path: "/v1/apps/{listing_id}/studio/resign"
tags: ["asc-studio"]
---

# Studio Resign

`POST /v1/apps/{listing_id}/studio/resign`

## Request

- Base URL: `https://api.theagentc.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.theagentc.io/v1/apps/{listing_id}/studio/resign`
- Auth: HTTP bearer

Re-sign expired Studio asset URLs (AI scenes, sprites, archived set
slides). Returns a {old_url: fresh_url} map; unknown or foreign URLs are
silently omitted rather than erroring, so a partial refresh still helps.

GCS v4 signed URLs cap at 7 days and the Studio persists them in
localStorage forever — without this, generated backdrops and sprites go
permanently broken a week after creation (uploaded screenshots are covered
separately: get_app/list_apps re-sign uploaded_screenshots on every read).

SECURITY: only re-signs objects under this workspace's own prefixes
(studio-scenes|studio-sprites|studio-sets/{workspace_id}/…), so a caller
can never mint a URL for another workspace's assets.

## Path parameters

- `listing_id` string, uuid, required

## Request body

- StudioResignRequest: POST /v1/apps/{listing_id}/studio/resign — swap expired studio asset URLs for freshly-signed ones. GCS v4 signed URLs are capped at 7 days, but the Studio persists asset/background URLs in localStorage indefinitely, so AI scenes + sprites rot after a week with no recovery path.
  - `urls` string[], required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/theagentc/apis/the-agent-c-api.md) · [All operations](https://skmtc.dev/theagentc/apis/the-agent-c-api/llms.txt) · [OpenAPI document](https://skmtc.dev/theagentc/apis/the-agent-c-api/revisions/1c9868b44584?raw)
