Adult video and images from four models, behind one API.
A resale API for developers and businesses. Buy credits, hold one key, send one request. The models underneath take four incompatible envelopes; that stays on our side of the wire.
- 480p / 720p / 1080p
- 2–30s
- first_frame
- reference_images
- 1080p / 2k / 4k
- 2–30s
- first_frame
- reference_images
- prompt required
- image required
- 720p / 1080p
- 2–15s
- negative_prompt
- audio_url
- prompt required
- 256–1536 px per side
- no duration
POST /v1/generations
Authorization: Bearer sk_live_...
Content-Type: application/json
{
"model": "z-image",
"prompt": "..."
}
What you are buying
- One request shape
- Every model is created through
POST /v1/generationswith the same body: amodel, and the parameters that model declares. A field the model does not support is rejected by name rather than silently dropped, so a wrong request never becomes a confusing bill. - One key
- A single bearer token for every model. No per-model credentials, no request signing, no vendor console to keep an account in.
- One error taxonomy
- A fixed set of string codes —
invalid_request,insufficient_credits,rate_limit_exceeded,content_policy_violation,provider_error— with a stable HTTP status each. You branch on the code, not on prose. - One unit of money
- Prepaid credits. 1 credit is US$0.001. Video is priced per second by resolution, images are flat per image, and a generation that fails is refunded in full.
- Assets we serve
- Output is stored and delivered from signed, expiring URLs on this domain, retained for 30 days. Nothing hotlinks anywhere else, and nothing in a response identifies where a model came from.
Models
Four models generate explicit video and images from text, from a still image, or from keyframes and references. z-image costs 40 credits ($0.04) and finishes in about fifteen seconds. Video takes longer, so a create call returns immediately and you poll, or you ask it to hold the connection.
| Model | Makes | Price |
|---|---|---|
| w3-video | video — text-to-video, keyframe, reference | 80 credits per second at 1080p; a 5-second clip is 400 credits ($0.40) |
| w3-video-pro | video — text-to-video, keyframe, reference | 120 credits per second at 1080p; a 5-second clip is 600 credits ($0.60) |
| wan-2.7-i2v | video — image-to-video | 100 credits per second at 1080p; a 5-second clip is 500 credits ($0.50) |
| z-image | image — text-to-image | 40 credits ($0.04) per image |
Every parameter, range, default and constraint is listed in the documentation, generated from the same definitions the validator enforces.
Running it in production
- Retries are safe
- Send an
Idempotency-Keyand a replayed request returns the original generation. It is never dispatched twice and never charged twice. - Sync when it is quick
- Add
Prefer: wait=30and the request holds open until the generation is done or the budget runs out, then answers200or202. Without it you get202and poll. - Limits you can see
- Per-key rate limiting and a per-account cap on generations in flight, both reported as ordinary error codes rather than a dropped connection.
- Spend you can read
GET /v1/accountreturns the credit balance, the dollar equivalent and how many generations are currently running.
For whoever signs off on this
The service generates adult sexual material to order. It is sold to businesses and developers, not to consumers, and using it means accepting the Terms of Service and the Acceptable Use Policy and attesting that you are at least 18.
The Acceptable Use Policy is the short version of what the platform will not produce, and it is enforced rather than posted: prompts that trip content policy are rejected, refunded and counted, and an account that keeps tripping it is suspended for review. Input media is fingerprinted so a takedown can be enforced by hash across every account. Generated assets expire after 30 days.