{"openapi":"3.1.0","info":{"title":"Claw Hunter API","version":"v1","description":"Claw Hunter is one API for chat, image, and video models, priced about half of provider list.\nIt speaks OpenAI's format at https://mystudios.fun/api/v1 and Anthropic's at https://mystudios.fun/api. OpenAI SDKs, Claude Code, Codex, Cursor, Hermes, OpenClaw, and other agents work by changing the base URL.\nThe chat menu has 39 models, including Claude Fable 5.1, Claude Opus 5.5, GPT-6 Astra, GPT-6.1 Sol, Kimi K3, Grok 4.7. It's served on /chat/completions, /messages, and /responses, billed per token.\nThe media menu has 40 image and video models, including GPT Image 2.5 Flare, GPT Image 2.5 Sunburst, Nano Banana Pro. It's served on /images/generations and /videos/generations, billed per image or per render.\nSend model clawhunter/smart and Smart Router picks the best model for each request. Send clawhunter/free for the day's featured free model.\nOne API key pays for everything from prepaid credits (1 credit = $1, no expiry). Every account with a key gets free usage each day. Keys are at https://mystudios.fun/account.\nWithout a key, /chat/completions and the media endpoints can be paid per call with x402, in USDC on Solana or Base or USDG on Robinhood Chain. Paying in $CLAWHUNTER, $SQUIRE, or $ANSEM on Solana, or $CASHCAT on Robinhood Chain, takes 10% off.","x-guidance":"Claw Hunter is one API for chat, image, and video models, priced about half of provider list.\nIt speaks OpenAI's format at https://mystudios.fun/api/v1 and Anthropic's at https://mystudios.fun/api. OpenAI SDKs, Claude Code, Codex, Cursor, Hermes, OpenClaw, and other agents work by changing the base URL.\nThe chat menu has 39 models, including Claude Fable 5.1, Claude Opus 5.5, GPT-6 Astra, GPT-6.1 Sol, Kimi K3, Grok 4.7. It's served on /chat/completions, /messages, and /responses, billed per token.\nThe media menu has 40 image and video models, including GPT Image 2.5 Flare, GPT Image 2.5 Sunburst, Nano Banana Pro. It's served on /images/generations and /videos/generations, billed per image or per render.\nSend model clawhunter/smart and Smart Router picks the best model for each request. Send clawhunter/free for the day's featured free model.\nOne API key pays for everything from prepaid credits (1 credit = $1, no expiry). Every account with a key gets free usage each day. Keys are at https://mystudios.fun/account.\nWithout a key, /chat/completions and the media endpoints can be paid per call with x402, in USDC on Solana or Base or USDG on Robinhood Chain. Paying in $CLAWHUNTER, $SQUIRE, or $ANSEM on Solana, or $CASHCAT on Robinhood Chain, takes 10% off."},"servers":[{"url":"https://mystudios.fun"}],"paths":{"/api/v1/chat/models":{"get":{"operationId":"listChatModelsAndTheirPerTokenPrices","summary":"List the chat models and their per-token prices","description":"The chat menu that /chat/completions, /messages, and /responses serve. Each model shows our price and the provider's list price, in USD per million tokens. Use it to pick a model and predict a call's cost.","tags":["Free"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"pricing":{"type":"string","enum":["per_token"]},"how":{"type":"string"},"max_tokens":{"type":"object","properties":{"default":{"type":"integer"},"cap":{"type":"integer"}}},"models":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"provider":{"type":"string"},"pricing":{"type":"string","enum":["per_token","per_request","auto"]},"input_usd_per_mtok":{"type":"number"},"output_usd_per_mtok":{"type":"number"},"list_input_usd_per_mtok":{"type":"number"},"list_output_usd_per_mtok":{"type":"number"},"usd_per_request":{"type":"number"},"note":{"type":"string"}}}}}}}}},"429":{"description":"Too Many Requests — rate limited"}}}},"/api/v1/models":{"get":{"operationId":"listChatModelsInOpenaiSFormat","summary":"List the chat models in OpenAI's format","description":"The same chat menu as an OpenAI model list, which is what an OpenAI SDK's models.list() reads. Ids only, including clawhunter/free and clawhunter/smart. Prices are at GET /api/v1/chat/models.","tags":["Free"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"object":{"type":"string","description":"Always list."},"data":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"One entry per model: { id, object: \"model\", created, owned_by }. Send id as the model."}}}}}},"429":{"description":"Too Many Requests — rate limited"}}}},"/api/v1/chat/completions":{"post":{"operationId":"createChatCompletionInOpenaiSFormat","summary":"Create a chat completion in OpenAI's format","description":"OpenAI chat completions on the full chat menu. Any OpenAI SDK or OpenAI compatible tool works with base URL https://mystudios.fun/api/v1. Send clawhunter/smart and Smart Router picks the best model for each request's difficulty. Send clawhunter/free for the day's featured free model. Per-model prices are at GET /api/v1/chat/models.\n\nThe call reserves your input (about 4 characters per token) plus max_tokens at the model's rates. With an API key, it then settles for the tokens used and refunds the rest. With x402, you pay the reserve, so set max_tokens near the output you expect. The response's billing block shows the charge.\n\nAccounts with a key get a daily free allowance. It covers a catalog of free models (glm-5-3-flash, deepseek-v4-1-flash, gpt-6-luna, gemini-3-8-flash), and frontier models up to an output cap. Eligible calls use it first, and billing.note says when a call was free. clawhunter/smart never uses it.\n\nmax_tokens defaults to 1024 and caps at 8,192. Input caps at 200,000 characters (HTTP 413). n must be 1. Streaming and clawhunter/smart need an API key; either one without a key returns 400. Other OpenAI parameters, like temperature, pass through to the model. A request that fails moderation (422), is invalid (4xx), or fails upstream (502) is not charged.","tags":["Paid (x402)"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string"},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer"},"message":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":["string","null"]}}},"finish_reason":{"type":["string","null"]}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}},"billing":{"type":"object","properties":{"model":{"type":"string"},"requested_model":{"type":"string"},"difficulty":{"type":"string","enum":["easy","medium","hard","frontier"]},"classifier":{"type":"string","enum":["llm","heuristic","fallback"]},"list_usd":{"type":"number"},"ceiling_usd":{"type":"number"},"input_tokens_billed":{"type":"integer"},"output_tokens_billed":{"type":"integer"},"usd":{"type":"number"},"usage_usd":{"type":"number"},"quote_usd":{"type":"number"},"note":{"type":"string"}}}}}}}},"402":{"description":"Payment Required — retry with x402 payment. The body carries the payment requirements: USDC on Solana and Base, USDG on Robinhood Chain, plus discounted $CLAWHUNTER, $SQUIRE, and $ANSEM options on Solana and $CASHCAT on Robinhood Chain."},"429":{"description":"Too Many Requests — rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["claude-fable-5-1","claude-fable-5","claude-opus-5-5","claude-opus-5","claude-opus-4-8","claude-sonnet-5-5","claude-sonnet-5","claude-sonnet-4-6","gpt-6-astra","gpt-6-1-sol","gpt-6-sol","gpt-6-luna","gpt-5-6-sol","gpt-5-6-terra","gpt-5-6-luna","gpt-5-5","gpt-5-4-mini","gemini-3-1-pro","gemini-3-8-flash","gemini-3-7-flash","gemini-3-flash","grok-4-7","grok-4-6","grok-4-5","deepseek-v4-pro","deepseek-v4-1-flash","deepseek-v4-flash","glm-5-3","glm-5-3-flash","glm-5-2","glm-5","kimi-k3","kimi-k2-7-code","kimi-k2-6","qwen3-8-max","minimax-m3","minimax-m2-7","nemotron-3-ultra","hy3","clawhunter/free","clawhunter/smart"],"description":"A model id from GET /api/v1/chat/models. clawhunter/free is the day's featured free model. clawhunter/smart lets Smart Router pick the model for each request (API key required)."},"messages":{"type":"array","items":{"type":"object"},"description":"OpenAI chat messages, oldest first. Each is { role, content }. role is system, user, assistant, or tool. content is a string, or an array of text and image_url parts."},"max_tokens":{"type":"integer","description":"Output cap. Default 1024, max 8192. It sets the reserve, so keep it near the output you expect. max_completion_tokens is accepted as an alias."},"stream":{"type":"boolean","description":"true streams server-sent events. The last chunk carries usage. Needs an API key."},"tools":{"type":"array","items":{"type":"object"},"description":"Function definitions in OpenAI's format. tool_choice is honored. Works on models that support tool calls."}},"required":["model","messages"]}}}},"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"dynamic","currency":"USD","amount":"0.001","unit":"per_token"}}}},"/api/v1/messages":{"post":{"operationId":"createMessageInAnthropicSFormatForClaudeCodeAndAnthropicSdks","summary":"Create a message in Anthropic's format, for Claude Code and Anthropic SDKs","description":"The Anthropic Messages format on the same chat menu and rates. Claude Code and the Anthropic SDKs work with base URL https://mystudios.fun/api (they add /v1/messages). Requests and responses pass through unchanged.\n\nNeeds an API key, sent as x-api-key or Authorization: Bearer. Paid from prepaid credits only; this endpoint takes no x402 payment.\n\nmodel is a menu id. Dated Anthropic ids like claude-sonnet-5-20250929 resolve to the menu model. Haiku ids resolve to the lowest-priced Claude on the menu. Other unknown ids return 400. clawhunter/smart isn't available here.\n\nThe call reserves your input (about 4 characters per token) plus max_tokens at the model's rates, then settles for the tokens used. Your balance must cover the reserve, or the call returns 402. Eligible models use the daily free allowance first.\n\nmax_tokens is required and caps at 32,768. Input caps at 800,000 characters across messages, system, and tools (HTTP 413). Errors use Anthropic's error shape. A request that fails moderation (422), is invalid (4xx), or fails upstream (502) is not charged.","tags":["Paid (credits)"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"content":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Content blocks: { type: \"text\", text }, or tool_use blocks when the model calls a tool."},"stop_reason":{"type":"string","description":"end_turn, max_tokens, tool_use, or stop_sequence."},"usage":{"type":"object","additionalProperties":true,"description":"{ input_tokens, output_tokens } as the provider reports them. Billed input is our estimate of what you sent; billed output is output_tokens."}}}}}},"401":{"description":"Missing or invalid API key — send a prepaid-credit key as Authorization: Bearer chk_… or x-api-key (keys at mystudios.fun/account)."},"402":{"description":"Insufficient credit balance — top up at mystudios.fun/account/credits."},"429":{"description":"Too Many Requests — rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["claude-fable-5-1","claude-fable-5","claude-opus-5-5","claude-opus-5","claude-opus-4-8","claude-sonnet-5-5","claude-sonnet-5","claude-sonnet-4-6","gpt-6-astra","gpt-6-1-sol","gpt-6-sol","gpt-6-luna","gpt-5-6-sol","gpt-5-6-terra","gpt-5-6-luna","gpt-5-5","gpt-5-4-mini","gemini-3-1-pro","gemini-3-8-flash","gemini-3-7-flash","gemini-3-flash","grok-4-7","grok-4-6","grok-4-5","deepseek-v4-pro","deepseek-v4-1-flash","deepseek-v4-flash","glm-5-3","glm-5-3-flash","glm-5-2","glm-5","kimi-k3","kimi-k2-7-code","kimi-k2-6","qwen3-8-max","minimax-m3","minimax-m2-7","nemotron-3-ultra","hy3"],"description":"A model id from GET /api/v1/chat/models, or a dated Anthropic id that resolves to one."},"max_tokens":{"type":"integer","description":"Output cap, max 32768. It sets the reserve, so keep it near the output you expect."},"messages":{"type":"array","items":{"type":"object"},"description":"Anthropic messages, oldest first. Each is { role, content }. role is user or assistant. content is a string or an array of content blocks."},"system":{"type":"string","description":"The system prompt, as a string or text blocks."},"tools":{"type":"array","items":{"type":"object"},"description":"Tool definitions in Anthropic's format."},"stream":{"type":"boolean","description":"true streams Anthropic's server-sent events. The final message_delta carries usage."}},"required":["model","max_tokens","messages"]}}}}}},"/api/v1/responses":{"post":{"operationId":"createResponseInOpenaiSResponsesFormatForCodex","summary":"Create a response in OpenAI's Responses format, for Codex","description":"The OpenAI Responses format on the same chat menu. Codex and OpenAI SDK responses.create() calls work with base URL https://mystudios.fun/api/v1. Rates, clawhunter/smart, clawhunter/free, and the daily free allowance work as they do on /chat/completions.\n\nNeeds an API key (Authorization: Bearer). Paid from prepaid credits only; this endpoint takes no x402 payment.\n\nWith stream: true you get Responses events. Without it, you get the final response object. Function tools and Codex's custom tools work. Hosted tools such as web_search are ignored. Nothing is stored, so send the whole conversation in input every turn. previous_response_id and conversation return 400.\n\nThe call reserves your input (about 4 characters per token) plus max_output_tokens at the model's rates, then settles for the tokens used. max_output_tokens defaults to its cap of 32,768. Input caps at 800,000 characters (HTTP 413). A request that fails moderation (422), is invalid (4xx), or fails upstream (502) is not charged.","tags":["Paid (credits)"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"status":{"type":"string","description":"completed, incomplete (hit max_output_tokens; see incomplete_details), or failed."},"output":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Output items in order: message { role, content: [{ type: \"output_text\", text }] }, function_call { call_id, name, arguments }, custom_tool_call { call_id, name, input }, and reasoning when the model streams it."},"usage":{"type":"object","additionalProperties":true,"description":"{ input_tokens, output_tokens, total_tokens } as the provider reports them. Billed input is our estimate of what you sent; billed output is output_tokens."}}}}}},"401":{"description":"Missing or invalid API key — send a prepaid-credit key as Authorization: Bearer chk_… or x-api-key (keys at mystudios.fun/account)."},"402":{"description":"Insufficient credit balance — top up at mystudios.fun/account/credits."},"429":{"description":"Too Many Requests — rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["claude-fable-5-1","claude-fable-5","claude-opus-5-5","claude-opus-5","claude-opus-4-8","claude-sonnet-5-5","claude-sonnet-5","claude-sonnet-4-6","gpt-6-astra","gpt-6-1-sol","gpt-6-sol","gpt-6-luna","gpt-5-6-sol","gpt-5-6-terra","gpt-5-6-luna","gpt-5-5","gpt-5-4-mini","gemini-3-1-pro","gemini-3-8-flash","gemini-3-7-flash","gemini-3-flash","grok-4-7","grok-4-6","grok-4-5","deepseek-v4-pro","deepseek-v4-1-flash","deepseek-v4-flash","glm-5-3","glm-5-3-flash","glm-5-2","glm-5","kimi-k3","kimi-k2-7-code","kimi-k2-6","qwen3-8-max","minimax-m3","minimax-m2-7","nemotron-3-ultra","hy3","clawhunter/free","clawhunter/smart"],"description":"A model id from GET /api/v1/chat/models. clawhunter/free is the day's featured free model. clawhunter/smart lets Smart Router pick the model for each request (API key required)."},"input":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"object"}}],"description":"A string, or input items in order. Items are message { role, content } (role is user, assistant, system, or developer), function_call, function_call_output, custom_tool_call, and custom_tool_call_output. Reasoning and hosted-tool items are skipped."},"instructions":{"type":"string","description":"The system prompt."},"tools":{"type":"array","items":{"type":"object"},"description":"Function tools ({ type: \"function\", name, parameters }) and custom tools. tool_choice is honored. Other tool types are ignored."},"max_output_tokens":{"type":"integer","description":"Output cap. Default and max 32768. It sets the reserve, so set it lower when you know the output is short."},"stream":{"type":"boolean","description":"true streams Responses events. The final response.completed carries usage."}},"required":["model","input"]}}}}}},"/api/v1/media/models":{"get":{"operationId":"listImageAndVideoModelsWithPricesAndOptions","summary":"List the image and video models with prices and options","description":"The menu that /images/generations and /videos/generations serve. Each model shows our price per image or per render next to the provider's list price, and the options it accepts. A value a model doesn't list returns 400 on the generation call, uncharged.","tags":["Free"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"models":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"One entry per model: { id, label, provider, kind, operations, max_references, options?, free_tier? }. kind is image or video. Send id as the model."},"smart":{"type":"object","additionalProperties":true,"description":"What clawhunter/smart accepts at each quality tier (low, medium, high), per operation."},"how":{"type":"string","description":"How billing works, in one paragraph. Advisory text; don't parse it."}}}}}},"429":{"description":"Too Many Requests — rate limited"}}}},"/api/v1/images/generations":{"post":{"operationId":"generateOrEditImagesInOpenaiSFormat","summary":"Generate or edit images in OpenAI's format","description":"Generate images from a prompt, or edit a reference image. The request follows OpenAI's images API, so the OpenAI SDK's images.generate works. Send clawhunter/smart and Smart Router picks the model; quality (low, medium, or high) sets its tier. Prices and each model's options are at GET /api/v1/media/models.\n\nA reference image switches the call to the model's edit operation. Send one as image_url, or several as input_images. A model without edit returns 400.\n\nThe call reserves the price per image times n. With an API key, you pay for the images produced. With x402, you pay the reserve. aspect_ratio is free. A quality or resolution tier away from the model's default scales the price by the menu's multiplier.\n\nclawhunter/smart needs an API key and doesn't take resolution. Keyed calls use the daily free allowance first, within a model's free_tier. A 4K or high-quality image can take several minutes. A request that fails moderation (422), is invalid (4xx), or fails upstream (502) is not charged.","tags":["Paid (x402)"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"created":{"type":"integer","description":"Unix time."},"data":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"One entry per image: { b64_json } or { url }, depending on the model."},"billing":{"type":"object","additionalProperties":true,"description":"{ model, operation, images, usd, usage_usd, quote_usd, note }. model is the model that ran and operation is generate or edit. usd is the charge. clawhunter/smart calls add requested_model."}}}}}},"402":{"description":"Payment Required — retry with x402 payment. The body carries the payment requirements: USDC on Solana and Base, USDG on Robinhood Chain, plus discounted $CLAWHUNTER, $SQUIRE, and $ANSEM options on Solana and $CASHCAT on Robinhood Chain."},"429":{"description":"Too Many Requests — rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["gpt-image-2","nano-banana-2","flux-2-pro","z-image-turbo","gpt-image-2-5-flare","gpt-image-2-5-sunburst","nano-banana-pro","flux-2-max","seedream-4-5","seedream-5-lite","grok-imagine","qwen-image-2","krea-2","recraft-v4","hunyuan-image-3","clawhunter/smart"],"description":"An image model id from GET /api/v1/media/models, or clawhunter/smart (API key required)."},"prompt":{"type":"string","description":"What to generate. With a reference image, what to change."},"n":{"type":"integer","description":"Images per call. Default 1, max 10."},"image_url":{"type":"string","description":"One reference image to edit, as an https URL or a data URL."},"input_images":{"type":"array","items":{"type":"string"},"description":"Several reference images, as https or data URLs. The first is the one edited. The model's max_references says how many it takes."},"aspect_ratio":{"type":"string","description":"On models whose options list it. Free. On clawhunter/smart, the smart entry lists each tier's values."},"quality":{"type":"string","enum":["low","medium","high"],"description":"On models whose options list it. On clawhunter/smart it picks the routing tier (default medium)."},"resolution":{"type":"string","enum":["1K","2K","4K"],"description":"On models whose options list it. Not on clawhunter/smart."},"size":{"type":"string","description":"Accepted for OpenAI compatibility. Most models render their own size; use aspect_ratio instead."}},"required":["model","prompt"]}}}},"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"dynamic","currency":"USD","amount":"0.001","unit":"per_unit"}}}},"/api/v1/videos/generations":{"post":{"operationId":"generateVideoFromPromptImagesOrReferenceClip","summary":"Generate a video from a prompt, images, or a reference clip","description":"Render a video and get the finished file back. The call waits until the render is done, up to five minutes. Send clawhunter/smart and Smart Router picks the model; quality (low, medium, or high) sets its tier. Prices and each model's options are at GET /api/v1/media/models.\n\nWhat you send picks the operation. A prompt alone runs text_to_video. One image (image_url) runs image_to_video. Two or more images (input_images), or a reference clip (video_url), run reference_to_video on models that list it.\n\nThe call reserves the provider's list price for your settings. With an API key, you pay what the render actually cost, from our base price up to list. With x402, you pay the reserve. Price scales with length against the model's default, and a resolution tier scales it by the menu's multiplier. aspect_ratio is free.\n\nclawhunter/smart needs an API key. It doesn't take resolution or a reference clip, and the routed model drops settings it doesn't support. Keyed calls use the daily free allowance first. A render that fails or times out returns 502 and is not charged; so is a request that fails moderation (422) or is invalid (4xx).","tags":["Paid (x402)"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"status":{"type":"string","description":"succeeded. A failed or timed-out render returns 502 instead, uncharged."},"results":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Each { url }. url is a path under /api/v1/media/artifacts/; prepend https://mystudios.fun. No key needed to fetch it. Download it soon; the link doesn't last."},"billing":{"type":"object","additionalProperties":true,"description":"{ model, operation, jobs, usd, usage_usd, quote_usd, note }. operation is the one that ran. usd is the charge. clawhunter/smart calls add requested_model."}}}}}},"402":{"description":"Payment Required — retry with x402 payment. The body carries the payment requirements: USDC on Solana and Base, USDG on Robinhood Chain, plus discounted $CLAWHUNTER, $SQUIRE, and $ANSEM options on Solana and $CASHCAT on Robinhood Chain."},"429":{"description":"Too Many Requests — rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["kling-v3","kling-o3","seedance-2","seedance-2-fast","seedance-2-mini","seedance-2-5","wan-3-prime","wan-3","wan-2-7","veo-3-1-fast","ltx-2-5-fast","ltx-2-5-pro","ltx-2-3-fast","ltx-2-3-full","happy-horse-1","happy-horse-1-1","grok-imagine-video","minimax-h3","minimax-h3-max","minimax-h3-max-turbo","flux-3-video","kling-v3-pro","kling-o3-pro","kling-v3-4k","kling-o3-4k","clawhunter/smart"],"description":"A video model id from GET /api/v1/media/models, or clawhunter/smart (API key required)."},"prompt":{"type":"string","description":"The scene to render."},"image_url":{"type":"string","description":"One start frame, as an https URL or a data URL."},"input_images":{"type":"array","items":{"type":"string"},"description":"Two or more reference images, on models with reference_to_video."},"video_url":{"type":"string","description":"One reference clip as an https URL, up to the model's video_reference.max_seconds. Only on models whose operation lists video_reference. Not on clawhunter/smart."},"duration_seconds":{"type":"number","description":"Length in seconds, within the model's duration_seconds range. Some models take set lengths only (step). Omitted means the model's default. seconds is accepted as an alias."},"resolution":{"type":"string","enum":["480p","720p","768p","1080p","1440p","2160p","2K","4K"],"description":"On models whose options list it. Not on clawhunter/smart."},"aspect_ratio":{"type":"string","description":"On models whose options list it. Free."},"audio":{"type":"boolean","description":"true renders a soundtrack, on operations marked audio. On models with audio_off_price_multiplier, false lowers the price."},"quality":{"type":"string","enum":["low","medium","high"],"description":"clawhunter/smart only. Picks the routing tier (default medium)."}},"required":["model","prompt"]}}}},"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"dynamic","currency":"USD","amount":"0.001","unit":"per_unit"}}}},"/api/v1/account/agents/register":{"post":{"operationId":"nameAgentThatUsesThisApiKey","summary":"Name the agent that uses this API key","description":"Registers a name for the agent holding this key. The account's dashboard then shows the key's usage under that name. The same name always returns the same agent, so it's safe to call on every start. Needs the API key (Authorization: Bearer or x-api-key). Returns 201 for a new agent and 200 for an existing one. A key already attached to another agent keeps it, and key_attached is false.","tags":["Free"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"agent":{"type":"object","additionalProperties":true,"description":"{ id, name }."},"key_attached":{"type":"boolean","description":"true when this key's usage now shows under the agent."},"note":{"type":"string","description":"What happened, in one line. Advisory text."}}}}}},"429":{"description":"Too Many Requests — rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"A short handle for the agent, up to 60 characters."}},"required":["name"]}}}}}},"/api/v1/account/credits/purchase":{"post":{"operationId":"buyPrepaidCreditsWithX402","summary":"Buy prepaid credits with x402","description":"Adds prepaid credits to the key's account. Send the amount in usd. The first call returns 402 quoting exactly that amount; pay it with x402 and send the call again. The account is credited once the payment settles.\n\nPay in USDC on Solana or Base, or USDG on Robinhood Chain. The token discount doesn't apply here. One dollar buys one credit, and credits never expire. The first purchase and larger buys add bonus credits.\n\nSend the API key (Authorization: Bearer) so the right account is credited. Credits then pay any paid endpoint when the key is sent. People can also buy with a card or a USDC deposit at https://mystudios.fun/account/credits. A call that isn't paid or doesn't settle credits nothing and costs nothing.","tags":["Paid (x402)"],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"order_id":{"type":"string","description":"The purchase. It also shows in the account's ledger."},"status":{"type":"string","description":"confirmed. Any other outcome returns an error status instead."},"credited_usd":{"type":"number","description":"Credits added, equal to usd."},"balance_usd":{"type":["number","null"],"description":"The balance after the purchase."},"tx":{"type":["string","null"],"description":"The on-chain payment, when reported."}}}}}},"402":{"description":"Payment Required — retry with x402 payment. The body carries the payment requirements: USDC on Solana and Base, USDG on Robinhood Chain, plus discounted $CLAWHUNTER, $SQUIRE, and $ANSEM options on Solana and $CASHCAT on Robinhood Chain."},"429":{"description":"Too Many Requests — rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"usd":{"type":"number","description":"Credits to buy, in USD. Min 3, max 1000."}},"required":["usd"]}}}},"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"3.00"}}}}}}