ko ▾
Create key

Chat Completions API Documentation

Get started with an uncensored LLM API that respects your context limits and billing style. This guide shows you how to authenticate, send requests, and handle streaming responses using standard OpenAI-compatible tools.

Authentication and base URL

Start by generating your API key through the dashboard. You can sign in with Google or use a simple email and password combination. Once created, the key appears immediately on the screen. Copy this value to authenticate your requests. Use the base URL https://api.chatbotapi.cc/v1 for all calls. This endpoint works with official OpenAI SDKs and any compatible client by simply updating your base URL configuration.

Sending your first request

Send a POST request to /v1/chat/completions to receive text outputs. Specify the model as uncensored in the request body. This model handles lawful adult, fictional, and controversial topics without restrictive guardrails. Errors and refusals do not consume your prepaid credits. Ensure your payload includes the necessary messages array and system prompts to guide the response. The API returns standard JSON responses containing the generated text.

curl https://api.chatbotapi.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Generate a list of ten unique fantasy character names for a roleplay bot."}]
  }'

Using the Python SDK

Initialize the client with your API key and the correct base URL. The Python SDK simplifies the process of sending messages and receiving completions. You can set parameters like temperature to control creativity or seed for reproducibility. This approach reduces boilerplate code and handles authentication automatically. It is ideal for backend services or quick prototyping scripts that need to integrate an unfiltered chatbot API.

from openai import OpenAI

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

Using the Node SDK

Install the OpenAI Node.js package and configure it with your base URL and key. The Node SDK mirrors the structure of the official library, making migration straightforward. You can pass the uncensored model ID and define your conversation history. This method is perfect for serverless functions or web servers that require asynchronous handling of LLM requests. Monitor your token usage to manage your prepaid balance effectively.

import OpenAI from "openai";

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

Enable streaming by setting the stream flag to true in your request. The API returns Server-Sent Events (SSE) containing partial chunks of text. Each final chunk includes token usage statistics for that request. This allows you to display responses in real-time while tracking your credit consumption. Streaming reduces perceived latency for end-users, making the interaction feel more responsive. You can parse these chunks to update your UI incrementally.

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 quotas

Each API key allows up to 300 requests per minute and 8 concurrent requests. The maximum request body size is 8 MB, and you can output up to 16,000 tokens per request. Your context window supports 100,000 tokens for both input and output combined. If you exceed these limits, you receive a 429 status code. An invalid key returns 401, and insufficient funds result in a 402 error. These limits ensure stable performance for your integration.

Frequently asked questions

Is this chatbot API compatible with OpenAI clients?

Yes, it uses the standard <code>/v1/chat/completions</code> endpoint structure. You can use any OpenAI-compatible SDK by updating the base URL to our service. The model ID is <code>uncensored</code>, which you must specify in your requests.

What happens if I run out of credit?

Requests with insufficient funds return a 402 status code. Your prepaid credit never expires, so you can top up anytime using crypto. Errors and refusals do not deduct from your balance, ensuring you only pay for actual token usage.

Can I use this uncensored LLM for NSFW content?

The model is tuned to answer without refusals for lawful adult use. It handles fictional and controversial topics well. The only hard limit is that sexual content involving minors is always refused. This makes it suitable for creative writing and roleplay applications.

Get your API key instantly

Sign up, copy the key, update your base URL. Done.

Create key