---
title: "Studio Subscribe"
method: POST
path: "/api/billing/studio/subscribe"
tags: ["billing"]
---

# Studio Subscribe

`POST /api/billing/studio/subscribe`

## Request

- Base URL: `https://api.tintin-x.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tintin-x.com/api/billing/studio/subscribe`
- Auth: HTTP bearer

Subscribe to a studio (consumer) plan — nail / garment try-on / video.

Grants the integer studio_credits pool on payment (via the invoice webhook,
routed by price_id). Separate from /subscribe because the studio tier names
collide with the agent V2 plan names.

## Request body

- StudioSubscribeRequest: Subscribe to a studio (consumer) plan — nail / garment try-on / video. Separate from SubscribeRequest because the studio tier names overlap the agent V2 plan names; this gates them to the studio set + studio checkout.
  - `plan` string, required
  - `billing_period` string
  - `return_to` string, nullable
  - `owner_team_id` string, uuid, nullable

## Response `200`

Successful Response

- CheckoutResponse: Stripe Checkout Session redirect URL.
  - `checkout_url` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tintin-x/apis/tintin-api.md) · [All operations](https://skmtc.dev/tintin-x/apis/tintin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tintin-x/apis/tintin-api/revisions/8839a8d0a66c?raw)
