EN ▾
Create key

API Documentation

Start generating uncensored text with our OpenAI-compatible API in under a minute. We provide a single, unrestricted model with transparent token pricing and no hidden filters.

Base URL and Authentication

Our API endpoint is HTTPS://api.aichatuncensored.cc/v1. Authenticate every request by passing your unique API key in the Authorization: Bearer <key> header. You receive this key immediately after signing up via Google or email on the Get API key page. No phone number is required, and the key is shown only once for security.

curl https://api.aichatuncensored.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Show me the current UTC timestamp"}]
  }'

This base URL works with the official OpenAI SDKs and any compatible client. Simply configure your library to point to our address. You can generate a new key at any time, which replaces the previous one. Each account is limited to one active key.

First Request with cURL

Send your first prompt using a standard POST request to /v1/chat/completions. The model identifier is uncensored, which serves a single open-weight model tuned for unrestricted content. Input text goes into the messages array. The response returns generated text in the content field.

curl https://api.aichatuncensored.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Show me the current UTC timestamp"}]
  }'

Errors like insufficient credit return a 402 status. Refusals for minor-related content are rare but possible. Streaming is available via Server-Sent Events for real-time token delivery. Each request supports up to 8 MB of body data.

Python SDK Integration

Use the official Python library to interact with our API. Set the base URL and API key in the client configuration. This allows you to leverage familiar methods like chat.completions.create. The syntax mirrors standard OpenAI implementations.

from openai import OpenAI

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

Install the package and initialize the client with your credentials. Pass the model name uncensored to ensure you hit our unrestricted endpoint. You can adjust parameters like temperature or top_p to control creativity. The response object contains usage statistics in the final chunk if streaming.

Node.js SDK Setup

Initialize the Node.js client with your base URL and key. This enables direct calls to the chat completions endpoint. The library handles JSON serialization and header injection automatically.

import OpenAI from "openai";

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

Call the completion method with your prompt messages. The response includes the generated text and token counts. You can stream results by setting the stream flag to true. Error handling is built into the SDK. Check the status code for 401 or 429 responses to manage limits.

Streaming Responses (SSE)

Enable streaming by setting stream: true in your request. The server sends data chunks as Server-Sent Events. Each chunk contains partial text and usage metadata. This reduces perceived latency for long outputs.

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)

Parse the SSE stream to accumulate the final response. The last chunk includes total token usage. You can stop streaming early if needed. Function calling and JSON mode also support streaming. This feature is ideal for real-time chat interfaces.

Rate Limits and Error Handling

You are limited to 300 requests per minute per key. Concurrent requests are capped at 8 per key. If you exceed these limits, you receive a 429 status code. Authentication failures return a 401 error. Insufficient credit triggers a 402 error.

Context window supports 100,000 tokens total. Max output is 16,000 tokens per request. Set max_tokens to avoid unexpected costs. Errors and refusals do not consume credit. Use exponential backoff for rate limit retries.

Frequently asked questions

Is this AI chat uncensored service free?

No, it is pay-per-token with prepaid credit. You get $0.50 trial credit for new accounts, valid for 7 days. Credit never expires and errors are free.

What is the context window size?

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

How do I top up my credit?

Top up using crypto only: USDT (TRC20) or USDC (Base). Minimum is $20. You receive bonus credit for larger amounts, up to +15% for $200+.

Get your API key now

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

Create key