EN ▾

chatterbotapi.com2026-10-30uncensored

Uncensored LLM API

API Documentation

Get started with the Chatterbot API in seconds. This guide covers the OpenAI-compatible endpoint, authentication, and your first uncensored text generation request.

Base URL and Authentication

The Chatterbot API sits at https://api.chatterbotapi.com/v1. You authenticate with a Bearer token in the Authorization header. Your key appears immediately after signup via Google or email.

  • Base URL: https://api.chatterbotapi.com/v1
  • Header: Authorization: Bearer YOUR_API_KEY

One key per account replaces the old one instantly. Keep it secure.

First Request

Send a POST request to /v1/chat/completions with the model uncensored. The API returns text generated without standard refusals for lawful adult content.

Here is a minimal cURL example:

curl https://api.chatterbotapi.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "What is the capital city of France"}]
  }'

Verify the response includes the generated text in choices[0].message.content.

Python SDK Integration

Use the official OpenAI Python library. Point it to our base URL and inject your key. The client handles JSON serialization automatically.

from openai import OpenAI

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

This approach works for both streaming and non-streaming calls. The model ID remains uncensored.

Node.js SDK Setup

Initialize the OpenAI npm package with the custom base URL. This ensures compatibility with existing OpenAI clients.

import OpenAI from "openai";

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

Configure the environment variable or pass the key directly. The API behaves like any standard chat-completions endpoint.

Streaming Responses

Enable streaming by setting stream: true. The API sends Server-Sent Events (SSE). Token usage data appears only in the final chunk.

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)

Process each chunk as it arrives. This reduces perceived latency for long outputs up to 16,000 tokens.

Limits and Errors

Expect a 401 error if the key is invalid. A 402 error means your prepaid credit is exhausted. Errors and refusals do not consume tokens. You are limited to 300 requests per minute. The context window holds 100,000 tokens total. Request bodies must stay under 8 MB.

Common questions

How much does the chatterbot API cost?

Input tokens cost $0.15 per 1M tokens. Output tokens cost $0.50 per 1M tokens. You pay only for real usage with prepaid crypto credit.

What is the context window size?

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

Does the API support function calling?

Yes. You can use tools, tool_choice, and JSON mode via the standard parameters. This allows structured data extraction and agent workflows.

Get your API key

Sign up, copy the key, update your base URL. That’s it.

Start now