tr ▾
Try with trial credit

Integration Guide

Stop wrestling with proxy layers and complex prompt engineering to get raw, uncensored LLM output. This guide shows you how to integrate our OpenAI-compatible API in minutes using standard SDKs, eliminating content refusals for lawful adult or controversial topics without changing your client code.

Installation & Setup

Configure your environment variables with the base URL and your API key to connect immediately. The endpoint lives at https://api.gptchatunfiltered.com/v1, which accepts standard requests from any OpenAI-compatible client. You get a single key per account that replaces any previous key instantly. Signup takes seconds via Google or email, and no phone number is required. You only need an email address to create an account, and prompts are never used for training your data.

Basic Completion Request

Send a standard POST request to /v1/chat/completions to receive text output without content filters. The model ID is uncensored, and it serves an open-weight model tuned for direct answers. You can set parameters like temperature and top_p to control randomness. Requests below 8 MB are accepted, and the system charges only for actual token usage. Errors and refusals incur no cost, ensuring you only pay for successful generations. This direct approach removes the need for complex prompt engineering to bypass standard guardrails.

Streaming Responses

Enable streaming by setting stream: true to receive token-by-token updates via Server-Sent Events. This is essential for real-time user interfaces that display text as it generates. The final chunk contains the complete token usage statistics for billing and monitoring. Streaming works with all standard parameters, including stop sequences and seed values. You can interrupt the stream at any time without losing the billed tokens for the data already received. This method keeps your UI responsive even during long-generation tasks.

Function Calling (Tools)

Define tools in your request to enable structured function calling with the uncensored model. The API supports tool_choice and automatic tool invocation for complex workflows. You can pass multiple tools in the tools array, and the model will return structured JSON responses. This feature works alongside standard parameters like frequency_penalty and presence_penalty. Use this for applications requiring precise data extraction or automated decision-making without content filter interference.

JSON Mode Configuration

Force the model to output strictly valid JSON by setting response_format to {"type": "json_object"}. This ensures predictable parsing for your application logic without manual validation. The model adheres to this constraint while maintaining its uncensored nature for the content itself. You can combine JSON mode with streaming or function calling for robust data pipelines. This configuration is ideal for backend services that consume structured data from LLMs without external formatting steps.

Error Handling & Limits

Handle standard HTTP errors like 401 (invalid key), 402 (no credit), and 429 (rate limit) in your client code. The rate limit is 300 requests per minute per key, with a concurrency limit of 8 simultaneous requests. Each request body must stay under 8 MB, and the context window spans 100,000 tokens for prompt and completion combined. Max output is 16,000 tokens per request, or 2,048 if max_tokens is unset. Errors are free, so a failed request does not consume your prepaid credit. Refunds are not issued, but support can correct double charges via the Support page.

cURL

curl https://api.gptchatunfiltered.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "list the top 5 python libraries for data analysis"}]
  }'

Python

from openai import OpenAI

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

Node.js

import OpenAI from "openai";

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

Streaming

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)

Common queries

Is this the official unfiltered chat GPT API?

No, this is an independent service running its own uncensored large language model. It is compatible with the OpenAI API format, so you can use standard SDKs without modification. It is not GPT, Claude, or any other vendor's model.

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

Ensure your client code handles the <code>choices</code> array correctly, as parallel requests may return multiple candidates. Check that your JSON parsing logic accounts for streaming chunks if you are using <code>stream: true</code>. Verify the <code>id</code> field in each response to match your request for tracing purposes.

What happens if I exceed the rate limit?

The API returns a 429 status code, indicating you have sent too many requests per minute. You can send up to 8 concurrent requests per key, with a limit of 300 requests per minute. Pause your requests briefly or reduce concurrency to resolve the error immediately.

Access your API key

Sign up, retrieve the token, update the endpoint. Done.

Try with trial credit