Unfiltered AI Chat API Quickstart

Get started with the uncensored LLM API in minutes. Send raw text requests to a single, unfiltered model via standard OpenAI-compatible endpoints with transparent token pricing.

Base URL & Authentication

Our API is designed for direct integration. The base URL is https://api.unfilteredaichat.top/v1. You only need two things: a valid API key and a POST request to the chat completions endpoint. Unlike complex aggregators, we do not route your request through multiple models; you are talking directly to our uncensored large language model.

Authentication is handled via the Authorization header. Pass your key exactly as shown in your dashboard. There are no subscription fees or monthly overheads. You pay only for the tokens you consume, with prepaid credit that never expires.

First Request

Send a standard chat-completions request to generate text. The model ID is uncensored. This is an open-weight model tuned to answer without content refusals for lawful adult use, security research, or controversial topics. It is not GPT, Claude, or any other vendor's model.

Below is a basic example using curl to send a prompt.

curl https://api.unfilteredaichat.top/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
  }'

If you receive a 401, your key is invalid. If you get a 402, your prepaid credit is exhausted. Errors and refusals (except hard content limits) do not consume tokens.

Python SDK Integration

Use the official OpenAI Python SDK for the easiest integration. Point the client to our base URL and provide your API key. The structure mirrors standard OpenAI requests, making migration simple for developers already familiar with the ecosystem.

from openai import OpenAI

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

Remember that the model ID is strictly uncensored. Do not try to switch models, as we serve only one uncensored instance. This ensures consistent behavior and transparent pricing without hidden routing fees.

Node.js SDK Usage

For JavaScript environments, the Node.js SDK works identically. Configure the base URL to point to our API endpoint. This allows you to integrate uncensored generation directly into your web apps or backend services without changing the request structure.

import OpenAI from "openai";

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

The response includes token usage details. Since we charge per token, tracking usage in your logs is straightforward. There are no hidden costs for retries or failed requests, provided they do not exceed the token limit.

Streaming Responses

Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE). Each chunk contains partial text, and the final chunk includes the complete token usage summary for that request. This is ideal for real-time UI updates.

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)

Streaming does not change the pricing model. You are still charged based on the total input and output tokens generated across all chunks. This feature is useful for latency-sensitive applications where immediate partial results are preferred.

Limits, Errors & Context

The context window is 64,000 tokens for the entire request (prompt plus completion). The maximum output per request is 16,000 tokens, or 2,048 if max_tokens is not set. Rate limits are strict: 300 requests per minute and 8 concurrent requests per key. The request body must not exceed 8 MB.

Common errors include 401 for invalid keys, 402 for insufficient credit, and 429 for rate limits. Credit is topped up via crypto (USDT on TRC20 or USDC on Base). No card is needed for the $0.50 trial, which expires in 7 days.

Questions and answers

Does the uncensored model refuse content?

The model does not refuse lawful adult, fictional, or controversial topics. However, a hard limit always applies: requests containing sexual content involving minors are refused. We do not solicit or describe such content.

Can I use my existing OpenAI key?

No. You must generate a new API key from our Get API Key page. The key is unique to our infrastructure. You can use the same SDKs and request structures, but the key itself is not interchangeable with OpenAI's keys.

What happens if I overcharge or double-pay?

Prepaid credit never expires, so you do not lose funds. If you encounter a double charge or billing error, use the Support page to get it fixed. Credit is not refunded, but your balance is corrected.

Your key is one form away

Create an account, copy the key, change the base URL. That is the whole setup.

Get API key