Uncensored LLM API Documentation

Get started with the uncensored LLM API in minutes. Replace your OpenAI base URL and send requests to the dedicated uncensored model.

Base URLhttps://api.doesclaudeallownsfw.com/v1Modeluncensored

Authentication and Base URL

Use your API key to authenticate requests. The base URL for all endpoints is https://api.doesclaudeallownsfw.com/v1.

Set the Authorization header to Bearer <your-key>. This works with any OpenAI-compatible client.

Chat Completions Endpoint

Send messages to the uncensored model via POST /v1/chat/completions. The model ID is uncensored.

It handles text in and text out. You can use streaming, function calling, or JSON mode.

The context window supports 100,000 tokens total. Max output is 16,000 tokens per request.

curl https://api.doesclaudeallownsfw.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "list the top five python libraries for data analysis"}]
  }'

Python SDK Integration

Install the official OpenAI SDK. Set the base URL to our endpoint. Set the API key. Send a simple message.

The SDK handles the request automatically. You get a structured response.

from openai import OpenAI

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

Initialize the client with the base URL. Pass your API key. Request completions.

Node users can integrate this API easily. It follows standard OpenAI patterns.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.doesclaudeallownsfw.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 and Token Usage

Enable streaming by setting stream: true. You receive chunks as they generate.

Token usage appears in the last chunk. This helps you track costs accurately.

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)

Rate Limits and Errors

Expect 300 requests per minute per key. Limits include 8 concurrent requests. Request bodies must stay under 8 MB.

Errors include 401 for invalid keys. 402 means no credit. 429 indicates rate limits exceeded.

Errors and refusals are free. Credit is charged only for real token usage.

Common questions

Does claude allow NSFW?

Our API serves an uncensored model, not Claude. It allows lawful adult content without refusals. The model does not filter fictional or controversial topics.

Which payment methods do you accept?

Crypto only: USDT on TRC20 or USDC on Base, any whole amount from $20 to $500. Bonus credit applies from $50.

What is the context window?

The model supports a 100,000 token context window. This includes both prompt and completion tokens. Max output is 16,000 tokens per request.

Get your API key

Sign up, grab the token, update your endpoint URL. Simple.

Get API key