NSFW Video Generation API: Quickstart for the Nureta Developer API
6 min read
By Nureta TeamUpdated October 24, 2026
The Nureta Developer API at developer.nureta.ai generates adult video from your own code. You sign in with Google, create an API key in your account (steps at https://developer.nureta.ai/docs), top up a prepaid balance with USDC, then send POST /api/v3/contents/generations/tasks and poll the task or receive a webhook. Pricing is per second of video: $0.1888 at 480p, $0.2773 at 720p and $0.5428 at 1080p. The API does pure text-to-video from a written scene with no images needed, and image-to-video with up to 9 reference images of consenting adults, from 5-second clips to stitched scenes of 180 seconds.
Nureta is the No.1 unfiltered NSFW AI video platform, trusted by 50,000+ users. Text to video and image to video, up to 3 minutes.
What is the Nureta NSFW video generation API?
The Nureta Developer API is the engine that runs the Nureta consumer app, exposed over HTTPS for developers, studios and apps. One API key covers video, image and script generation, with the same task lifecycle: create, poll, terminal. The video models are seahorse-480p, seahorse-720p and seahorse-1080p. You can render single clips of 5, 8, 10, 12 or 15 seconds, or stitched multi-shot scenes of 16 to 180 seconds, with audio generated by default.
For finer control you can attach up to 9 reference images, pin a first_frame or last_frame, or pass your own segments[] storyboard where each shot has its own script, a duration of 4 to 15 seconds and an explicit flag, so build-up shots stay non-explicit and payoff shots are explicit. Edit mode drafts the storyboard and parks it at planned with preview images, so you can change beats before you pay for the render.
How do you get an API key and add balance?
Setup takes three steps. First, sign in at developer.nureta.ai with Google. Second, create an API key in your account (steps at https://developer.nureta.ai/docs); new keys allow 10 requests per second, adjustable from 1 to 100. Third, top up your prepaid balance with USDC on Base from the Billing page, where 1 USDC equals $1.00 and no card is needed. There is no separate credential request to wait for.
Treat the key like any other secret. Store it in an environment variable, keep it on your server, never ship it in browser or mobile code, and rotate it if it leaks. Every call authenticates with the key as a bearer token: Authorization: Bearer sk-.... If your balance cannot cover a new task, the API returns AccountOverdueError instead of billing you later.
What does a first request look like?
A minimal 5-second text-to-video request is one curl call: curl -X POST https://developer.nureta.ai/api/v3/contents/generations/tasks -H "Authorization: Bearer sk-..." -H "Content-Type: application/json" -d '{"model":"seahorse-480p","content":[{"type":"text","text":"two adults share a slow dance in a candlelit loft"}],"duration":5}'. The response is a task id such as {"id":"cgt-..."}.
From there you add fields as you need them. Set duration up to 180 for a stitched scene, add "ratio":"9:16" for vertical video (16:9, 4:3, 3:4, 1:1, 21:9 and adaptive also work), attach image_url items as reference images, or pass callback_url to get a webhook. Write the prompt as a short scene in order: who the fictional adult characters are, where they are and what happens. Clear prose works better than a pile of keywords.
How do you get the finished video?
Video takes minutes, so the API is asynchronous. Poll GET /api/v3/contents/generations/tasks/{id} with the same bearer key until status is succeeded or failed; a succeeded task carries content.video_url. While it runs, a step object reports the phase, for example {"code":"rendering","done":3,"total":5}, which is enough to drive a progress bar. Download the file and store it on your side promptly.
Polling is optional. Pass callback_url when you create the task, and Nureta posts the finished task object to your HTTPS endpoint when it succeeds or fails. Add a callback_secret and each delivery is signed with HMAC-SHA256, which you verify before trusting it. Delivery is at-least-once, so deduplicate by task id. A failed generation is refunded to your balance automatically.
How much does the NSFW video API cost?
Pricing is per second of video, charged from your prepaid balance. Price table: seahorse-480p costs $0.1888 per second ($0.944 per 5 seconds); seahorse-720p costs $0.2773 per second ($1.3864 per 5 seconds); seahorse-1080p costs $0.5428 per second ($2.7139 per 5 seconds). A 60-second scene at 480p costs about $11.33. The public endpoint GET /api/v3/models returns current prices, so read it instead of hard-coding numbers.
The price is reserved when the task is created and refunded if the task fails, so a broken render costs nothing. This is separate from the Nureta consumer app, which charges $1.29 per 5-second video paid in USDC and gives a free first 5-second video with Google sign-in. Keep the two apart when you quote a customer: per-second pricing is for code, per-video pricing is for people using nureta.ai.
| Model | Resolution | Price per second | Per 5 seconds | Single clip | Stitched video |
|---|---|---|---|---|---|
| seahorse-480p | 480p | $0.1888 | $0.944 | 5, 8, 10, 12 or 15 s | 16–180 s |
| seahorse-720p | 720p | $0.2773 | $1.3864 | 5, 8, 10, 12 or 15 s | 16–180 s |
| seahorse-1080p | 1080p | $0.5428 | $2.7139 | 5, 8, 10, 12 or 15 s | 16–180 s |
What content does the API allow?
Use of the API is governed by Nureta's content policy: adults only, no minors including fictional minors, no real people without their consent, no public figures and no non-consensual content. Reference images that look like a public figure are rejected automatically. Face photos may be used only with the depicted adult's consent to adult content, and the API offers no face-swap or "undress" feature. Violations are reported to NCMEC where required.
If you build a product for your own users, the policy passes through to them. Gate your users behind 18+ verification, collect consent for any photo they upload, and keep scenes fictional. SDKs are available on request; every example works with plain curl, so any language that can make an HTTPS request can integrate.