de ▾
Create key

API Documentation

Use the OpenAI-compatible API to generate uncensored text without content filters. This guide covers the base URL, authentication, and all supported parameters for your NSFW chatbot or roleplay app.

https://api.aiuncensored.cc/v1uncensored

Base URL and Authentication

Connect to the API using the standard OpenAI endpoint structure. The base URL is https://api.aiuncensored.cc/v1. Pass your API key in the Authorization header. Get your key instantly via Google or email signup. No phone number is required.

  • Sign up on the Get API key page.
  • Receive one active key per account.
  • Use the key in all requests.

Errors like 401 indicate an invalid key. 402 means no prepaid credit remains. Credits never expire. Pay with USDT or USDC crypto. No hidden fees exist.

First Request

Send a chat completion request to generate text. The model ID is uncensored. It is an open-weight model tuned for adult content without refusals. Use curl to test immediately.

This endpoint accepts text in and returns text out. No embeddings or image generation are supported. The model handles lawful adult topics freely. It refuses only sexual content involving minors. This hard limit always applies.

curl https://api.aiuncensored.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "generate a 50 word story about two colleagues in an empty office"}]
  }'

Python SDK Integration

Use the official OpenAI Python SDK to integrate quickly. Set the base URL to our API. Pass your API key. The code works exactly like standard OpenAI clients. You get an uncensored LLM response in seconds. Streaming is supported via SSE. Token usage appears in the last chunk. Function calling and JSON mode are available. Adjust temperature and top_p as needed. Errors are raised as standard exceptions. Check your prepaid balance before heavy loads.

from openai import OpenAI

client = OpenAI(base_url="https://api.aiuncensored.cc/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 Usage

Integrate with Node.js using the standard package. Configure the base URL correctly. The SDK handles request serialization automatically. You can stream responses or wait for full completion. JSON mode forces structured output. Function calling enables tool use. The uncensored model does not filter creative writing. Roleplay scenarios work well. Set the model ID to uncensored. Handle rate limits gracefully. The API is cheap and reliable.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.aiuncensored.cc/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 Limits

Stream responses using Server-Sent Events. The API returns tokens incrementally. Token usage details appear in the final chunk. This allows real-time UI updates for chatbots. The context window is 100,000 tokens total. Max output is 16,000 tokens per request. Set max_tokens to control length. Default is 2,048 tokens if unset. Streaming reduces perceived latency significantly. Errors during streaming still report token counts.

Parameters and Error Handling

Control generation with standard parameters. Use temperature for creativity. Adjust top_p for nucleus sampling. Set stop sequences to halt output. The seed parameter ensures reproducibility. Presence and frequency penalties reduce repetition. Errors include 401 for auth issues. 402 indicates insufficient prepaid credit. 429 signals rate limiting. Limit is 300 requests per minute. Max concurrent requests is 8. Request body maxes at 8 MB. Function calling and JSON mode are fully supported.

Streaming

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)

Support FAQ

What is the uncensored AI model used here?

The model ID is <code>uncensored</code>. It is an open-weight model run on our servers. It does not refuse lawful adult, fictional, or controversial topics. It is not GPT, Claude, or any other vendor's model.

How do I pay for uncensored LLM API usage?

Pay with USDT (TRC20) or USDC (Base). Top-ups range from $20 to $500. Bonus credit is added for larger amounts. Credits never expire. Errors and refusals are free.

What are the context and rate limits?

The context window is 100,000 tokens. Max output is 16,000 tokens. Rate limit is 300 requests per minute. Concurrent requests are limited to 8. Request body size is max 8 MB.

Get your API key

Sign up, copy the key, update your endpoint URL. That is the entire configuration.

Create key