tr ▾

API Documentation for NSFW Generation

This quickstart guide shows developers how to integrate our uncensored LLM API using standard OpenAI-compatible clients. You can send text requests, stream responses, and manage your crypto-based credit with zero subscription friction.

Authentication & Base URL

Start by generating your API key on the dashboard. The base URL is HTTPS://api.doesdeepseekallownsfw.com/v1. Pass your key in the Authorization header as a Bearer token. This setup works with any standard OpenAI SDK by updating the base_url variable.

First Request

Send a simple chat completion to verify connectivity. The model ID is uncensored. Responses are text-only, supporting standard JSON structures. Errors like 401 indicate invalid keys, while 402 means your prepaid credit is exhausted.

curl https://api.doesdeepseekallownsfw.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Check if the endpoint supports 70B model variants"}]
  }'

Python SDK Integration

Use the official openai Python package for easy integration. Set the base_url to our endpoint and provide your API key. This approach handles retries and JSON parsing automatically, allowing you to focus on prompt engineering for NSFW content generation.

from openai import OpenAI

client = OpenAI(base_url="https://api.doesdeepseekallownsfw.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)

Node SDK Implementation

Initialize the OpenAI client in Node.js with our custom base URL. This method supports both synchronous and asynchronous request patterns. Ensure you handle the response data correctly to extract the generated text for your application logic.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.doesdeepseekallownsfw.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);

Streaming Responses

Enable streaming by setting stream: true in your request parameters. The API returns Server-Sent Events (SSE) for real-time token delivery. Token usage statistics are included in the final chunk, allowing you to track costs accurately without waiting for the full response.

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)

Limits, Errors & Context

The context window supports 100,000 tokens total, with a max output of 16,000 tokens per request. Rate limits cap at 300 requests per minute and 8 concurrent requests per key. Use 429 status codes to detect when you hit these limits and implement exponential backoff strategies.

FAQ

Does the API support function calling?

Yes, the endpoint supports function calling via the <code>tools</code> and <code>tool_choice</code> parameters. You can define custom schemas for your application logic, and the model will return structured JSON responses.

How do I top up my credit?

You can top up using USDT (TRC20) or USDC (Base) via crypto payment. Minimum top-ups start at $20, and larger amounts trigger bonus credits ranging from 5% to 15%.

Is the uncensored model strict on NSFW content?

The model is tuned to answer without content refusals for lawful adult use. It generally does not refuse NSFW topics, though it will still block sexual content involving minors as a hard limit.

Secure your API key

Register, retrieve your key, update the base URL. That is the entire configuration.

Try with trial credit