Uncensored API documentation

Drop this uncensored API into your existing workflow with zero configuration. Get text responses from a model that does not refuse lawful adult content, using the same client code you already know.

Authentication and base URL

The base URL for all requests is HTTPS://api.unfilteredgptchat.com/v1. Pass your API key in the Authorization header as a Bearer token. You get one key per account, and it appears immediately after signup via Google or email. No phone number is required to start.

<

curl https://api.unfilteredgptchat.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Show me how to install the package via npm"}]
  }'
>

Requests cost real tokens. Errors and refusals do not consume credit. The model id you must send is uncensored. This is an open-weight model running on our servers, not a proxy for GPT or Claude.

Chat completions endpoint

Send a POST request to /v1/chat/completions with your messages array. The API returns text only. You can adjust temperature, top_p, and stop sequences. The context window holds 100,000 tokens total for prompt and completion. Max output is 16,000 tokens per request.

<

from openai import OpenAI

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

If you omit max_tokens, the response caps at 2,048 tokens. This endpoint supports function calling and JSON mode. It does not support embeddings, images, or audio. You are paying for tokens, not for a subscription to a specific brand name.

Streaming responses with SSE

Use Server-Sent Events for real-time token delivery. Set stream: true in your request body. The API returns chunks of text as they are generated. Token usage details appear in the final chunk. This approach reduces perceived latency for long, unfiltered responses.

<

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)
>

Handle errors gracefully. A 401 error means your key is invalid. A 402 error means your prepaid credit is exhausted. A 429 error means you hit the rate limit. Streaming does not bypass these limits.

Function calling and tools

Define tools in your request body. The model returns structured arguments for function execution. Use tool_choice to enforce specific behavior. This feature works with the standard OpenAI-compatible format. You can parse the tool calls in your code and execute them externally.

The API supports strict JSON mode via response_format: {"type": "json_object"}. This ensures predictable output for automated pipelines. Use this when you need reliable data extraction without parsing errors.

JSON mode for structured data

Enable JSON mode by setting response_format to {"type": "json_object"}. The model will output valid JSON. This is useful for parsing structured data from unfiltered text. Use temperature: 0 for consistent results.

This mode works with the uncensored model id. It does not guarantee perfect JSON syntax. Validate your output before using it in production. The API does not provide schema validation. You must handle errors in your client code.

Rate limits and quotas

You are limited to 300 requests per minute per key. You can send 8 requests simultaneously. The request body must be under 8 MB. These limits apply to all endpoints. Exceeding the limit returns a 429 status code.

Credit never expires. Prepaid credits are charged by real token usage. Errors are free. You can top up with USDT (TRC20) or USDC (Base). Minimum top-up is $20. Maximum is $500. Bonus credit applies for larger amounts.

Node.js

import OpenAI from "openai";

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

Common questions

What is the uncensored API?

It is a hosted API serving one uncensored large language model. It is OpenAI-compatible. You send text and get text back. No monthly fees. You pay only for tokens used.

How do I get started with the uncensored API?

Sign up with Google or email. Get your API key immediately. Use the base URL HTTPS://api.unfilteredgptchat.com/v1. Send requests to /v1/chat/completions. Your first $0.50 is free for 7 days.

What are the rate limits for the uncensored API?

300 requests per minute per key. 8 concurrent requests. 8 MB request body limit. 100,000 token context window. 16,000 token max output. Errors do not consume credit.

Get your API key

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