NSFW llm API Documentation
Get your uncensored API key and start sending raw text responses in seconds. This guide covers the essential endpoints, parameters, and pricing for building your adult chatbot.
Authentication & Keys
Sign in via Google or email to receive your single API key immediately. Use this key in the Authorization header for all requests. No phone number is required, and the key is shown instantly upon creation.
- Base URL:
https://api.llmnsfw.com/v1 - Header:
Authorization: Bearer YOUR_API_KEY
curl https://api.llmnsfw.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Send a message as a shy librarian in a quiet archive"}]
}'
Chat Completions Endpoint
Send a POST request to /v1/chat/completions with your prompt. The model ID is always uncensored. This endpoint returns text responses without the usual content filters for lawful adult topics.
from openai import OpenAI
client = OpenAI(base_url="https://api.llmnsfw.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)
Parameters & Configuration
Control tone with temperature, top_p, and stop sequences. Use json_object mode for structured data. Set max_tokens to 16,000 for long outputs. The default output limit is 2,048 tokens if unspecified.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.llmnsfw.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 & JSON Mode
Enable streaming by setting stream: true. Token usage data appears in the final chunk. JSON mode ensures predictable parsing for your chatbot logic. Use tools for function calling capabilities.
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)
Error Handling & Limits
Handle 401 for invalid keys, 402 for insufficient credit, and 429 for rate limits. The limit is 300 requests per minute per key. Request bodies must stay under 8 MB. Errors and refusals are free.
Token Usage & Pricing
Pay $0.15 per 1M input tokens and $0.50 per 1M output tokens. Top up with USDT or USDC. Credit never expires. The context window is 100,000 tokens.
Frequently asked questions
What is the best NSFW LLM for chatbots?
Our uncensored model is optimized for raw output without refusals. It handles adult topics well while maintaining coherence. Many developers use it for roleplay apps.
Is this the NSFW LLM subreddit?
No, this is a developer API provider. We focus on reliable text generation for apps. The subreddit is a community for sharing images and discussions.
How do I top up my account?
Use USDT (TRC20) or USDC (Base). Minimum top-up is $20. You get bonus credit for larger amounts. Credit never expires.
Retrieve your API key in one step
Register, grab your key, and update your base URL. That’s all there is to it.