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

# Studio Unlock

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

## 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/unlock`
- Auth: HTTP bearer

Unlock one set for clean download. Order: Studio (nothing to do) →
already unlocked → a free unlock (consumed atomically) → $9.99 Stripe
Checkout, whose webhook records the unlock (billing.handle_set_unlock_completed).
With offer=true the Checkout is the one-time $4.99 first-set offer — 409
unless that offer is active right now.

## Path parameters

- `listing_id` string, uuid, required

## Request body

- StudioUnlockRequest: POST /v1/apps/{listing_id}/studio/unlock — unlock one set for clean download: free if on Studio or a free unlock remains, else a Stripe Checkout ($9.99) URL.
  - `set_key` string, required
  - `offer` boolean

## Response `200`

Successful Response

- StudioUnlockResponse
  - `unlocked` boolean, required
  - `used_free` boolean
  - `checkout_url` string, nullable

## 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)
