el ▾
Claim trial key

Unfiltered chat ai API documentation

Get started with the unfiltered chat AI API in minutes. Send text, get uncensored responses, and pay only for what you use.

https://api.unfilteredchatai.com/v1uncensored

Authentication and headers

The API uses standard OpenAI-compatible authentication. Pass your key in the Authorization header using the Bearer scheme. You get one key per account, shown immediately after signup via Google or email. Keep it secret and send it with every request.

curl https://api.unfilteredchatai.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top five rust crates for async web servers"}]
  }'

Errors like 401 mean your key is invalid or missing. The base URL is https://api.unfilteredchatai.com/v1. Change it in any SDK to point here.

The chat completions endpoint

Send messages to POST /v1/chat/completions and receive text back. Use the model ID uncensored for the single open-weight model. No embeddings or image generation here. Just text in, text out.

from openai import OpenAI

client = OpenAI(base_url="https://api.unfilteredchatai.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 is a direct endpoint. No routing, no extra steps. The model answers without standard content refusals for lawful adult content. Context window is 100,000 tokens total.

Streaming responses

Use Server-Sent Events for real-time token delivery. Set stream: true in your request. The final chunk contains usage data for billing. This works with any standard OpenAI SDK.

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 reduces perceived latency. You see tokens as they generate. Errors during streaming still return usage in the last chunk if possible. Check your SDK docs for stream handlers.

Function calling and tools

Define tools in your request body. The model can call them or return plain text. Use tool_choice to force a specific tool or let the model decide. This is standard OpenAI format.

import OpenAI from "openai";

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

Pass tool definitions as an array. The API returns tool calls in the response. Handle them in your code. The uncensored model supports this without extra fees. No fine-tuning needed for basic tool use.

JSON mode

Force structured output by setting response_format to {"type": "json_object"}. The model returns valid JSON. This is useful for parsers. It does not guarantee perfect structure but reduces hallucination.

Use this for APIs needing strict schemas. Combine with tools for complex workflows. The uncensored model respects this format. No extra cost for JSON mode. Just standard token usage.

Rate limits and quotas

You get 300 requests per minute and 8 concurrent requests per key. Request bodies must be under 8 MB. Errors like 402 mean no credit. 429 means you hit the limit. Wait and retry.

Context window is 100,000 tokens. Max output is 16,000 tokens. Set max_tokens to control output length. Prices are $0.15 per 1M input and $0.50 per 1M output tokens. Crypto only.

Frequently asked questions

How do I debug missing citations in parallel chat API responses?

Check your <code>response_format</code> and tool definitions. Ensure you are parsing the full response stream. Parallel requests may drop chunks if not handled correctly. Verify your SDK version matches the API spec.

Is the uncensored LLM model GPT or Llama?

No. It is an open-weight model run on our servers. It is not GPT, Claude, Gemini, Grok, or Llama. It is tuned for uncensored responses. Check our pricing page for details.

What happens if I hit the rate limit?

You get a <code>429</code> status code. Wait before retrying. You have 300 requests per minute limit. Concurrent requests are capped at 8. Use exponential backoff in your code. Errors are free, so you do not lose credit.

Get your API key now

Register, retrieve your key, and update your base URL. That’s all there is to it.