Windpaint
Changelog

Changelog

Customer-visible changes to the Windpaint API, CLI, MCP server, agent skills and docs, newest first.

Changes to the API, the windpaint CLI, the MCP server, the agent skills and these docs. Each entry’s date is a link you can share.

2026-11-10
APIDocs

FLUX.2 [klein] 4B is live; video coming soon; model status

FLUX.2 [klein] 4B is live. flux-2-klein-4b implements image.generate at 1k for 0.10 credits per image, with up to 4 outputs and PNG, JPEG or WebP output. It takes the same request fields as z-image-turbo; send "model": "flux-2-klein-4b" to use it. z-image-turbo stays the default. See Models.

Image generation is 1k only. z-image-turbo is sold at 1k (0.08 credits); 2k is no longer offered.

Video is coming soon. wan-2.2-i2v and video.generate aren’t live yet, so video submits return 503, and Text to Clip reports available: false. Its planned price, 4 credits per 5 second 480p clip, stays listed. See Video.

Model status. Each model in GET /v1/generation/capabilities and GET /v1/generation/models now has a status: live, coming-soon or not-offered. Coming-soon models are listed with available: false. See Read the live catalog.

2026-10-05
APICLIMCPDocs

Products are now Workflows

Products are now Workflows. The API, dashboard, CLI, MCP server, agent skills and these docs call them workflows. Endpoints moved from /v1/workflows/products to /v1/workflows (GET /v1/workflows, GET /v1/workflows/{slug}, POST /v1/workflows/{slug}/estimate, POST /v1/workflows/{slug}/runs); run endpoints stay at /v1/workflows/runs. Run objects carry workflow and workflow_version instead of product and product_version, and the runs list filters with ?workflow=. The CLI command is windpaint workflows (windpaint runs --workflow), the MCP tools are list_workflows, get_workflow, estimate_workflow and run_workflow, and the agent skill is windpaint-workflows. The old names are gone, with no aliases. See Workflows.

2026-10-05
APICLIMCPDocs

Retention, rate limits, moderation, signed webhooks, idempotency and more

Asset retention and deletion. Assets are now kept for your organization’s retention period, 7 days by default, and then deleted. Set it from 1 to 365 days, or keep assets forever, under Settings → Organization or with PATCH /v1/account/storage. Shorten it per request with retention_days. Delete an asset with DELETE /v1/generation/assets/{id}, or a job’s outputs and inputs with DELETE /v1/generation/requests/{id}/assets. Assets gain expires_at, deleted_at and deleted_reason, and an expired asset’s content returns 410 generation.asset_gone. The first 7 days of storage are free; storage beyond that costs 2 credits per GiB per 30 days, charged daily. Assets created before this release don’t expire. See Asset retention.

Rate limits. Organizations have limits on concurrent jobs and submits per minute, set by a tier that rises with lifetime credit purchases, and each API key can make 1,200 requests per minute. Responses carry X-RateLimit-* headers and refusals return 429 with Retry-After. GET /v1/billing/limits (permission billing:read) shows your tier and usage. See Rate limits.

Content moderation. Requests are checked at submit, and outputs after generation. A blocked submit returns 422 moderation.input_blocked and nothing is held; a blocked output ends the job nsfw with a new moderation field, and nothing is charged. Set moderation: "low" to relax the threshold for non-hard categories. See Content moderation.

OpenAPI. The API’s OpenAPI 3.1 document is public at https://api.windpaint.ai/v1/openapi.json, and a preview Python client is available. See OpenAPI spec and SDK.

Inputs. Inputs can now be public https:// URLs or data: URIs, which Windpaint fetches and stores as assets (source: "url" or "data_uri", with source_url). Uploads and inputs accept PNG, JPEG and WebP images up to 20 MB, MP4, MOV and WebM video up to 200 MB and 60 seconds, and MP3, WAV, M4A and OGG audio up to 25 MB and 5 minutes. The format is detected from the file’s content. Rejected files return input.* error codes. See Inputs.

Job error codes. Failed, nsfw and canceled jobs, workflow runs and their steps carry an error_code, such as job.timeout or job.input_invalid. GET /v1/errors returns the catalog. Authentication failures and 408 timeouts now include a code. See Job error codes.

Signed, retried webhooks for jobs and workflow runs. webhook_url deliveries are now signed with the Standard Webhooks scheme and retried for about 6 hours. Workflow runs accept webhook_url too, and webhook_events subscribes to started as well as completed. Read and rotate the signing secret at /v1/webhooks/jobs/secret, and see every delivery at GET /v1/webhooks/jobs/deliveries. See Webhooks.

Idempotency. Submits, uploads and workflow runs accept an Idempotency-Key header. A repeat within 24 hours returns the original response with Idempotent-Replayed: true. See Idempotency.

Synchronous mode. Send Prefer: wait (or wait=N, up to 60 seconds) on a submit or workflow run and get the finished result back as 200, or the usual 202 if it takes longer. See Synchronous mode.

Progress. Job status adds queue_position, progress, logs, started_at, completed_at and timings, and workflow runs and their steps add the same. Stream them as server-sent events from GET /v1/generation/requests/{id}/stream and GET /v1/workflows/runs/{id}/stream. See Stream a job.

Multiple outputs and formats. Image requests take num_outputs (up to 4 on z-image-turbo), output_format (png, jpeg or webp) and output_quality. You pay per output delivered. The catalog lists each model’s max_outputs and output_formats. See Multiple outputs.

Presets. Windpaint-defined style and camera presets for image.generate and video.generate. List them with GET /v1/generation/presets and pass preset on a submit. See Presets.

CLI and MCP. Both send idempotency keys and retry safely, accept URL and data: URI inputs, show queue position and progress while waiting, and take the new output options (-n, --format, --output-quality in the CLI).

2026-10-04
APICLIMCPSkillsDocs

Docs, public CLI, hosted MCP

Docs. These docs are public at docs.windpaint.ai.

CLI. Releases are published at windpaint-ai/cli. Install with curl -fsSL https://get.windpaint.ai | sh or brew install windpaint-ai/tap/windpaint. See Install.

MCP. A hosted MCP server is available at https://mcp.windpaint.ai/mcp. See MCP.

Skills. The agent skills plugin for Claude Code, Codex and Cursor is public at windpaint-ai/skills. See Skills.

API.

  • New account webhook events: api_key.created, api_key.revoked, support.ticket.opened and support.ticket.state_changed.
  • POST /v1/webhooks/{id}/test sends a signed webhook.test delivery and returns the result. See Testing a webhook.
  • Creating or updating a webhook now rejects unknown event names and non-HTTPS URLs with 422.
  • GET /v1/runs lists standalone jobs and workflow runs together, newest first. Each job records its source: studio, api or workflow. See Runs list.
  • A failed job’s error is now one of a fixed set of messages. See Failure messages.
  • Uploads accept files up to 50 MiB. See Uploads.
  • GET /v1/roles returns only the four organization roles, with member counts for your own organization.
2026-09-26
APICLIMCPSkills

Early access

Windpaint opens in early access. New signups join a waitlist and are activated by hand. Approved organizations get 200 free credits that expire after 30 days.

  • API at https://api.windpaint.ai/v1. image.generate runs on z-image-turbo and video.generate runs on wan-2.2-i2v. Every job is asynchronous, and outputs are kept as assets in your project. See Generation.
  • Workflows. Pre-built pipelines that run several steps in one call, starting with Text to Clip.
  • Credits. Prepaid credits with holds that are released when a job fails, and top-ups through Stripe Checkout. See Pricing.
  • Dashboard at app.windpaint.ai, with Studio, assets, runs, keys, team and billing.
  • CLI. windpaint, a single binary for macOS and Linux. See CLI.
  • MCP server and agent skills for Claude Code, Codex, Cursor and other MCP clients. See Agents.