Changelog
Changelog
Change history for the Clipia public API v1, the MCP server, LLM Gateway and the SDKs — launch, new tools and models, contract and documentation updates.
Change history for the Clipia public API (/v1/*), the remote MCP server https://mcp.clipia.ai/mcp, LLM Gateway and the official SDKs. Newest entries first. The /v1/* contract is stable; breaking changes are called out explicitly. Entries from July to September 2026 are grouped by month.
2026-11-12
- MCP: ChatGPT plugin instructions. For the ChatGPT plugin connection, the server instructions now ask the assistant to confirm the estimated credits before a video or several images, to wait for the finished result, and to decline requests to add credits or change the account. The same instructions now answer requests for more credits or account changes, and nude images, briefly and without a tool call, and ask for a public image link when a chat attachment cannot be read. A finished result in the plugin also tells the assistant that the Clipia viewer already shows it, so the reply is a short summary with the original-quality link. Before any video and before several image variants, the plugin now confirms the estimated credits on the server: the first call starts nothing and returns the model, the estimate and a confirmation token, and the generation starts when the call is repeated with that token after the user agrees. Other connections are unchanged. Server metadata version 1.0.24.
2026-11-09
- MCP: the default voice is ElevenLabs v4 Turbo.
generate_audiowithoutmodelnow speaks witheleven-v4-turboinstead ofgemini-3-1-flash-tts. The price is unchanged: 4 credits per 1,000 characters. The default model accepts 10–10,000 characters per call. Cyrillic text withoutvoiceis read by a native Russian speaker. A Gemini voice (for example,Kore) without an explicitmodelis now rejected: passmodel: "gemini-3-1-flash-tts"or a voice fromget_model. Server metadata version 1.0.20. See Tools.
2026-11-05
- Breaking: no active subscription means
subscription_required. Generation with a live key and no active subscription returns402 subscription_required; it used to return402 insufficient_credits. Buying a credit pack doesn't open access; a test key works without payment. See Authentication. - Breaking: chat checks parameters before charging.
temperatureoutside 0–2,top_poutside 0–1,nother than 1,toolsover 256 KB andmax_tokensabove 200,000 return400. Amax_tokensvalue above the model ceiling is allowed, and the reserve follows the requested amount. A model rejecting the parameters is now a400, a temporary failure a502. See Chat Completions. - Breaking: a cap on source file links. Generation submits and MCP accept at most 30 links in one list and 60 distinct links in a request; above that,
400before credits are reserved. See Submit a generation. - Breaking: MCP no longer returns another generation for a reused key. The same
idempotency_keywith different input, including a differentnum_images, returnsidempotency_key_reuse. An argument of the wrong type returnsinvalid_request; a number may be sent as a string ("5"), a loose form like"5s"is not accepted. A JSON-RPC batch with non-protocol messages returns400. See MCP tools. - Key expiry, budget and rotation. The owner sets a key's expiry and credit budget in the console, and a rotation issues a new key and leaves the old one 24 hours. A budget covers the last day, 7 or 30 days, or the whole lifetime; a request over it gets
402 insufficient_quota, while reading a result or the catalog stays available. Emails go out about a key created or revoked and about a new OAuth connection. See Managing keys. Idempotency-Keyin chat. Regular responses ofPOST /v1/chat/completionsandPOST /v1/completionsaccept the header and charge nothing for a retry. A replayed response, here and on generation submits, carries theIdempotent-Replayed: trueheader. In MCP,generate_scenarioaccepts a key too. See Idempotency.- Paying for a dropped chat. In a stream, once the first chunk has gone out, you pay for what was delivered; before the first chunk and in a regular response the reserve is returned.
- Webhooks retry for longer. Up to 15 attempts over about 24 hours 15 minutes instead of 6 attempts. A test key gets at most one delivery per minute and at most three attempts. See Webhooks.
- Generation error text.
error.messageonFAILEDis a ready-made phrase about the reason when the server recognizes it, otherwise neutral text for the code. The console log stores the error code, not its text. - One error format before the handler.
400,404,413and415responses under/v1/come in theerrorenvelope and don't expose internal paths. See Errors. - MCP limits. Protocol methods are counted separately: 600 units per minute per key or OAuth connection. OAuth consent stays valid for 180 days, then the client asks to confirm access again. Server metadata version 1.0.19. See Rate limits.
- Per-IP limit, arriving separately. 30 requests per second from one IP, bursts up to 60: a
429in the usual error format with aRetry-Afterheader. It takes effect with a separate infrastructure update. queue_positionis deprecated. The field is always0; rely onstatusandprogress. See Versioning and compatibility.
2026-11-02
- MCP:
edit_presentationis no longer marked destructive. The tool creates a new deck derived from the source; the source presentation is neither modified nor deleted, sodestructiveHintis nowfalselike every other tool. MCP directories stop showing a Destructive badge and clients stop asking for extra confirmation. Server metadata version 1.0.16.
2026-10-13
- Ignored parameters are no longer dropped silently. If
inputcontains a key the model will not apply (a typo, a parameter of another model),POST /v1/models/{model}and/estimateaccept the request as before but return the key in thewarningsarray. Requests that worked before keep working. - MCP rejects such a call before it starts.
generate_image,generate_video,generate_audioandgenerate_musicanswer with aninvalid_requesterror that names the rejected parameters and lists the ones the model declares; no generation is created. This also covers top-level arguments — for exampleseedon a model that does not declare it. See MCP tools. - SDK 1.5.0. TypeScript
clipia-aiand Pythonclipia1.5.0 describewarningsin the submit and cost estimate responses — see the examples on the TypeScript SDK and Python SDK pages. - Seedance 2.x: audio is on when the parameter is omitted. A request to Seedance 2, 2 Fast, 2 Mini or 2.5 without
generate_audionow returns a video with audio, as the model'sinput_schemadeclares (default: true). Previously such a request sent through the API or MCP was rendered without audio. To get a silent video, passgenerate_audio: false. If the audio track does not pass the safety rules, the video may arrive without audio. The cost of the request has not changed. See the Seedance 2.5 page. - Dropped audio is reported in the API and MCP. If the audio track of a video does not pass the model's safety check, the server reruns the generation without sound. A
warningsarray with the codeaudio_droppednow reports it — inGET /v1/requests/{id}andGET /v1/requests/{id}/status, and over MCP in thewait_generationandget_generationresponses. The cost of the request does not change. See Generation result. - The audio toggle of video models is read the same way everywhere.
true,1,"yes"and"on"turn audio on;false,0,"no"and"off"turn it off — identically for the cost and for the run. A string that cannot be read as a toggle counts as an omitted parameter, so the model default applies. Previously the strings"1","yes"and"on"turned audio off on some models. - Kling 3 Multi-Shot: audio with two or more scenes. The model always renders such a video with audio. A request with
sound: falseis accepted as before, the cost is calculated with audio, and the response carries anunsupported_parameterwarning. - Seedance 2.x reference videos: a limit on the number of clips. Seedance 2, 2 Fast and 2 Mini accept up to 3 reference videos, Seedance 2.5 up to 10; the limit is declared in the model's
input_schema(maxItems). A request above the limit is rejected with400before any credits are reserved. Previously the extra clips were dropped silently. - MCP
list_modelsreturns the catalog in pages. The response carriestotal,truncatedandnext_offset; request the next page withoffset. Previously a long catalog was cut off without notice. See MCP tools. - A pricing failure answers
503instead of an inaccurate price. If the server temporarily cannot read a model's pricing parameters, submit and/estimateanswer503: retry shortly, no credits are reserved. In the catalog such a model may carrypricing: { available: false }.
2026-10-09
- Docs: product, studios and models sections; new portal design. The portal now covers the product itself, the studios and the models, and the API, MCP and SDK pages have been checked against how the service works today.
- Slugs with a slash over REST. Models such as
google/imagen4can now be called throughPOST /v1/models/{family}/{model}, not only through MCP — see the catalog./v1/chat/completionsresponses can be looked up withGET /v1/generation?id=chatcmpl-…; generation errors share oneerror.codedictionary; every429carriesRetry-After. - New guide. Migrating from another generation API explains how to move an integration to the Clipia queue.
2026-09
- SDK 1.2.0. TypeScript
clipia-aiand Pythonclipia1.2.0 describe thetext_limitsfield on text-to-speech models — the minimum and maximum text length. - Speech text length is checked up front. The REST API and MCP reject text outside
text_limitswith400before a generation is created, so no credits are reserved. The bounds are shown inGET /v1/models/{model}andget_model.
2026-08
- Seedance 2.5.
seedance-2-5-t2vandseedance-2-5-i2vby ByteDance were added to the catalog — see the model page. - Frame preview in MCP.
generate_videoreturns an inline frame preview so the agent can see the result.
2026-07
- LLM Gateway. An OpenAI-compatible
POST /v1/chat/completionswith streaming, tool calling and structured outputs; text models joined the sharedGET /v1/modelscatalog. See LLM Gateway. - SDK 1.1.0.
models.list()andmodels.get()in both SDKs handle text models in the catalog. - New MCP tools.
generate_audio(text to speech),generate_music,chat,generate_scenarioandcompose_video(assembling scenes into a final video),generate_presentationandedit_presentation. The list and parameters are on the MCP tools page. - Ready-made MCP prompts. The server exposes the
product_shot,blog_covers,campaign_storyboardandanimate_photoprompts — see Ready-made prompts. - Media in chat. In clients that support MCP Apps, results render as an interactive card.
2026-06-22
- Canonical MCP address. The remote MCP server moved to
https://mcp.clipia.ai/mcp. The oldhttps://api.clipia.ai/mcpaddress remains a legacy alias for compatibility, but new integrations should use the canonical endpoint.
2026-06-13
- Image previews in MCP. The
generate_imagetool returns its result in a single call with an inline preview: the agent sees the image and can iterate. In claude.ai generations render as an interactive card with live progress and an "Original" button. - MCP limits no longer throttle sessions. Protocol JSON-RPC noise (initialize, tools/list, ping) is no longer counted toward the per-minute limit — only tool calls count.
2026-06-12
- Public API and MCP launch. The public Queue API
/v1/*(submit → poll / webhook) is live, alongside official SDKs for TypeScript (clipia-ai) and Python (clipia) and a CLI. - Remote MCP server. The original
https://api.clipia.ai/mcpaddress (now a legacy alias) launched with 8 agent tools plus a separate app-only helper: generate images and video right from Claude Code, claude.ai, ChatGPT, Cursor and other MCP clients. - Sandbox. Keys prefixed
clipia_test_return canned results instantly with no credit charge.
Cancel endpoint removed
The cancel endpoint has been removed from the public API. Credits are reserved at submit, and most models cannot stop a generation once started — cancel would create a misleading "CANCELED" status while credits were already spent. The CANCELED status remains valid in responses: a job may be canceled outside the API and is then returned as terminal.