Get API key

Switch your client in three lines

Integrate our uncensored chatgpt API in minutes by pointing your existing OpenAI-compatible client to our base URL. This guide covers authentication, request formats, and streaming for immediate deployment.

Base URL and Authentication

Start by updating your client configuration to point at https://api.uncensoredchatgpt.cc/v1. You will need an API key obtained from the dashboard via Google sign-in or email. Pass this key in the Authorization header as a Bearer token. The base URL works with any standard OpenAI SDK, so you only need to swap the endpoint and provide your key. No SDK changes are required beyond these two settings.

First Request

Send a standard chat completion request to test connectivity. Use the model ID uncensored to access the uncensored LLM. The system accepts text input and returns text output. You can adjust parameters like temperature or top_p to control creativity. If the request succeeds, you will receive a JSON response containing the generated text. This confirms your integration is working correctly.

Python SDK

Use the official OpenAI Python library with a modified base URL. Initialize the client with your API key and set the base_url to our endpoint. Call chat.completions.create with the model uncensored. This approach lets you leverage familiar Python code while accessing unrestricted content. You can stream responses or handle errors as you would with any other OpenAI-compatible service.

Node SDK

Install the OpenAI Node.js package and configure it with our base URL. Pass your API key in the constructor. Use the chat.completions.create method with model uncensored. This setup allows you to integrate NSFW or creative content generation into your Node applications seamlessly. The SDK handles retries and error parsing, making debugging straightforward.

Streaming Responses

Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE) chunks containing partial responses. Each chunk includes token usage information in the final event. This method reduces perceived latency for long outputs. Monitor the stream for errors or completion events to manage your application flow effectively.

Limits, Errors, and Context

Your key allows 300 requests per minute and 8 concurrent requests. The context window is 64,000 tokens total, with a max output of 16,000 tokens. Errors include 401 for invalid keys, 402 for insufficient credit, and 429 for rate limits. Requests that exceed the body size of 8 MB will fail. Ensure your application handles these codes to maintain stability during high-volume usage.

cURL

curl https://api.uncensoredchatgpt.cc/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."}]
  }'

Python

from openai import OpenAI

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

Questions and answers

Is the uncensored model the same as GPT?

No, it is an open-weight model run on our servers, distinct from GPT, Claude, or other vendor models. It is tuned specifically to answer without content refusals for lawful adult use.

What happens if I run out of credit?

Requests will return a 402 error indicating no credit. Errors and refusals are free, so you are only charged for successful token usage. Credit never expires, so you can top up anytime using crypto.

Can I use this for NSFW content?

Yes, the model does not refuse lawful adult, fictional, or controversial topics. The only hard limit is sexual content involving minors, which is always refused.

Your key is one form away

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

Get API key