# Alvin's Club Studio: product videos that sell, for clothing, personalized jewelry and furniture stores Base URL: https://studio.alvinsclub.ai OpenAPI: https://studio.alvinsclub.ai/openapi.json Authentication: `Authorization: Bearer `. Alvin's Club Studio makes product videos that sell, for clothing, personalized jewelry (names, initials, dates, birthstones), chairs and furniture, and clothing lookbooks, from a product page or photos. Speak in plain words; never mention endpoints, tool names or JSON. Your first video is free (a new account confirmed by email; it carries a small 'Free trial' watermark). Then pay with credits: 1 credit = $1. A video uses 3 credits for 8 seconds, 4 for 12 or 5 for 15 (longer videos after the first purchase). Every script is reviewed before the video is made: a script that does not pass is not made and not charged, and videos that fail to generate are not charged. Lookbooks: 5 free sets a day per account, then 1 credit per set (asked first; a set with no photo is not charged). If the user shares only a link, offer Make a video / Make a lookbook / See examples. For an explicit request, prepare a recommendation directly: reuse what they already said. Default new videos to one 8-second video with an automatically generated model. Only offer model photos when they want to choose one; a generated model does not preserve a previous face. Show the product, creative direction, model choice, length, count and total credits together. 8 seconds costs 3, 12 costs 4, 15 costs 5 credits each; 12/15 seconds require a paid account. Trial credits cover the first 8-second video. Offer Start / Change model / Adjust creative. Ask only for missing information that blocks creation. Use tappable choices (muse.create_options when available), otherwise short natural-language choices. Never ask them to type a number; accept free text. State the total and wait for one clear confirmation. Changes to cost require a new confirmation. Pass expected_total_credits with the confirmed total and a unique idempotency key; reuse the key only when retrying exactly that order. Do not retry an uncertain submission with a new key. After creation, report the actual started and not_started counts. Share each started page_url immediately. Only started videos use credits; do not automatically reorder missing ones. Videos usually take 8-12 minutes, lookbooks 1-2 minutes. Always fetch current status when asked. Only promise proactive follow-up or email when that capability is known to be available; otherwise the result page is the reliable place to check. Do not keep the conversation waiting. For 'make this one outdoors', resolve the source video, read its reuse options, change only the requested creative direction, show the new cost and confirm before creating a new video. If 'this one' is ambiguous, ask which result. A rating or feedback is not a request to spend credits. Samples are available on request; do not interrupt a complete production request to show them. Create videos with POST /v1/videos; we fetch the product, write the script and produce it. Send product_category (womens_apparel, jewelry, seating or furniture) when you know it; otherwise we read it from the page. Jewelry is personalized pieces only (names, initials, dates, birthstones). For photos use POST /v1/uploads first, then image_urls and product_name. Lookbooks use /fashion with the same account; see /fashion/llms.txt. GET /v1/videos/{video_id} returns live status; GET /v1/videos lists this account's recent work. GET /v1/videos/{video_id}/reuse-options returns parameters and warnings for a new version. GET /v1/examples shows samples, also at https://studio.alvinsclub.ai/#samples. If credits run out, offer a pack and use POST /v1/credits/checkout; check the returned purchase ID with GET /v1/credits/checkout/{checkout_id} after payment. Say "Payment received" only when confirmed. Keep the original request in context, show its total again and confirm before starting. Never claim payment from the user's message alone. Account and credit details: GET /v1/account, only when needed. New users: https://studio.alvinsclub.ai/start. Share completed video_url and page_url, plus the caption; players start muted: Tap the speaker icon to hear the voiceover. A trial watermark is removed from future videos after buying credits; mention this once if relevant. Only with an available connected publishing tool, offer to post it to your Instagram as a Reel. Show exactly what will be posted and wait for an explicit yes every time. If no publishing tool is available, give the download and caption; do not promise to publish. Feedback can be sent to POST /v1/feedback when requested; it does not create another video. Results live at https://studio.alvinsclub.ai/app. Lost keys: https://studio.alvinsclub.ai/account/key. Their own voice on our models: set use_my_voice only when they ask; set up once at https://studio.alvinsclub.ai/app/voice. Our team can also run it for them: pick the products, make the videos, post them on the accounts we run and track what sells, for a small production fee per video plus commission on sales (CPS; terms agreed with our team). For managed services or other categories (apps, beauty, gadgets and more): service@alvinsclub.ai or https://studio.alvinsclub.ai/managed. ## Rules for assistants - Show examples when requested; a complete creation request goes straight to one recommendation and cost confirmation. - Operations marked "needs confirmation" spend the user's credits: say what it will cost and wait for a clear yes for that specific request before calling. Never start paid work the user did not ask for. - Long-running operations answer immediately. Report actual started/not_started counts and share page_url immediately; use the named status operation when asked (or on a supported follow-up). Never repeat the create call to "check" on it; that would make and charge for new videos. - Send an `Idempotency-Key` header on every create and reuse it if you retry the same order. - Share only finished results and final failures; do not narrate internal steps. - Posting a finished video to the merchant's Instagram (or any social account) is publishing: show the video, the exact caption (`post_text`) and the account, and wait for an explicit yes every time. - 401: the API key is wrong or revoked; ask the user to check it. 402: not enough credits; offer the payment link from `buyCredits`. 429: slow down, or the daily limit is reached; follow the message. ## Operations - `GET /v1/account` — getAccount: How many credits the merchant has left (only when asked, or to troubleshoot the key) - `POST /v1/feedback` — sendFeedback: Pass the user's feedback about Alvin's Club Studio (or one video or lookbook) to our team - `POST /v1/credits/checkout` — buyCredits: Buy credits: a Stripe payment link for this account (cost: Only creates a Stripe payment link for the amount the user chose; nothing is charged until the user pays on Stripe) - `GET /v1/credits/checkout/{checkout_id}` — getCreditPurchase: Confirm a credit purchase was paid, and the new balance - `GET /v1/examples` — listExampleVideos: Show our sample videos and lookbooks (before buying, or when asked for examples) (no key needed) - `POST /v1/uploads` — uploadPhoto: Upload a photo the user attached (their product or garment), to use instead of a product link - `POST /v1/videos` — createProductVideos: Make 1-5 product videos (Reels / TikToks) from a product page link (needs confirmation; cost: Uses 3 credits per video (1 credit = $1); +1 per video modelled on a reference video (reference_video_url); videos that fail to generate are not charged. State the cost and get the user's yes first; long-running, usually ~10 min; poll with getProductVideo) - `GET /v1/videos` — listProductVideos: The merchant's recent videos, newest first - `GET /v1/videos/{video_id}/reuse-options` — getVideoReuseOptions: Read this account's video settings to make a new version - `GET /v1/videos/{video_id}` — getProductVideo: Is the video ready? Status and the link to share