Get API key

NSFW Video API Documentation

Get your uncensored LLM API key and start sending text requests to our NSFW Video API in minutes. This guide covers the OpenAI-compatible endpoints, streaming, and tool calling you need for adult content pipelines.

Base URLhttps://api.nsfwvideoapi.com/v1
Modeluncensored

Base URL and Authentication

The NSFW Video API uses standard OpenAI-compatible endpoints. Your base URL is https://api.nsfwvideoapi.com/v1. To authenticate, include your API key in the Authorization header as a Bearer token. You can generate a key on the Get API key page using just an email and password. No phone number or credit card is required to start. The key is shown immediately after signup. If you need a fresh key, you can regenerate it at any time, which instantly revokes the old one. This keeps your integration simple and secure.

First Request

Send a POST request to /v1/chat/completions with the model ID uncensored. This model is tuned for adult content and does not refuse lawful topics. The following example demonstrates a basic text completion using cURL. Replace YOUR_API_KEY with your actual key.

curl https://api.nsfwvideoapi.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
  }'

The response returns the generated text in choices[0].message.content. You can also check available models using GET /v1/models. This confirms the API is responding correctly before you integrate deeper into your pipeline.

Python SDK Integration

Use the official OpenAI Python SDK to interact with the NSFW Video API. Set the base URL to our endpoint and provide your API key. The following code snippet shows how to initialize the client and send a prompt. This approach works with any standard OpenAI-compatible client library.

from openai import OpenAI

client = OpenAI(base_url="https://api.nsfwvideoapi.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

Ensure you handle the response object to extract the generated content. This method is ideal for backend services where you need structured data processing. The model ID remains uncensored for all requests.

Node.js SDK Usage

For Node.js environments, use the openai npm package. Configure the client with the correct base URL and your API key. The code below demonstrates a simple chat completion request. This is useful for serverless functions or web servers handling NSFW text generation tasks.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.nsfwvideoapi.com/v1", apiKey: process.env.API_KEY });

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

The response structure matches the OpenAI format. You can parse the content and pass it to your application logic. Remember that the model does not perform image or video generation; it is a pure text API.

Streaming with SSE

Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE) for real-time token delivery. This reduces perceived latency for users. The following example shows how to handle streaming responses in Node.js.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Process each chunk as it arrives. This is critical for chat interfaces where users expect immediate feedback. The streaming works with all OpenAI-compatible SDKs that support SSE. Note that streaming does not affect pricing or token counting.

Rate Limits, Errors, and Context

You are limited to 300 requests per minute per API key. The maximum request body size is 8 MB. Common errors include 401 for invalid keys and 402 if your prepaid credit is exhausted. Upgrade your credit from the dashboard to continue. The context window is 64,000 tokens for prompt and completion combined. If you exceed the limit, the API returns a 429 error. Plan your token usage carefully to avoid interruptions.

API specifications

Before you integrate, here is exactly what you get with a key.

ParameterDetails
API formatOpenAI Chat Completions schema; official openai SDKs work unchanged
Modeluncensored
AuthenticationBearer token in the Authorization header
Base URLhttps://api.nsfwvideoapi.com/v1
EndpointsPOST /v1/chat/completions · GET /v1/models
StreamingSupported (stream: true), usage included at the end
Structured outputresponse_format: {"type": "json_object"}
Tools / tool callsSupported: tools + tool_choice, tool_calls in the reply (streamed too), tool results as role: tool messages
Max context64,000 tokens, input and output combined
Sampling parameterstemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Max output16,000 tokens max; 2,048 if max_tokens is not set
Response headersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Parallel requests8 requests at the same time per key
Requests per minute300/min per key
Request sizeup to 8 MB per request
Top-upUSDT (TRC20) or USDC (Base), any whole amount from $10 to $500
Free trial$0.50 for 7 days, no card
Bonus credit+5% on $50+, +10% on $100+
Priceinput $0.25 / 1M tokens, output $1.00 / 1M tokens
How you paypay as you go from prepaid credit; nothing is charged for failed or refused requests
Credit expiryno monthly fee; paid credit does not expire
Key managementone key per account, regenerate any time (the old one stops working)
Content policyuncensored for adults; the only hard rule: no sexual content involving minors
Sign-inGoogle or e-mail and password

Error codes

Errors come back as JSON with a stable type; failed and refused requests are not billed.

HTTPTypeWhat to do
400bad_requestinvalid JSON, empty messages, bad parameter, or prompt + max_tokens over the window — fix and resend
401missing_key · invalid_key · key_revokedno key, wrong key, or a key replaced by a newer one
402no_creditbalance is empty — top up, requests resume at once
403content_blockedsexual content involving minors — refused, not billed
404not_foundunknown endpoint
413request_too_largerequest body larger than 8 MB
429rate_limited · concurrencyslow down: rate or parallel limit reached
503upstream_busymodel busy — retry in a few seconds

Questions and answers

What is the context window size?

The context window is 64,000 tokens, covering both the input prompt and the output completion. This allows for long conversations or large document processing without truncation.

Do prompts get used for training?

No, your prompts are not used for training. The NSFW Video API respects your privacy by keeping your data separate from model improvement datasets.

What content is blocked?

The only hard content limit is sexual content involving minors. All other lawful adult, fictional, or controversial topics are permitted without refusal.

Your key is one form away

Create an account, copy the key, change the base URL. That is the whole setup.

Get API key