Get API key

Quickstart for NSFW Chatgpt users

Integrate the uncensored LLM API into your application with this quickstart guide. You will configure the base URL, handle authentication, and make your first request using standard OpenAI-compatible clients.

Base URL & Authentication

Start by pointing your OpenAI SDK or HTTP client to our base URL: https://api.nsfwchatgpt.cc/v1. You need a valid API key to authenticate requests. Sign up on the Get API key page using Google or email to receive your key immediately. No phone number is required. The key grants access to the uncensored model under the ID uncensored.

Our API supports standard OpenAI-compatible clients. Set the base_url and api_key in your SDK configuration. All requests must include the Authorization: Bearer <key> header. If you see a 401 error, your key is invalid or expired. Errors and refusals do not consume your prepaid credit, so you can test safely.

First Request

Send a chat completion request to POST /v1/chat/completions. The model ID is uncensored. It is an open-weight model tuned to answer without content refusals for lawful adult use. It is not GPT, Claude, or any other vendor's model. You can pass any standard parameters like temperature or top_p.

Here is a basic example using curl:

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

The response contains the generated text in choices[0].message.content. If the model refuses a lawful request, check the reason field. The model does not block controversial or adult topics unless they involve minors. It is a direct text-to-text API with no embeddings or image generation.

Python SDK Integration

Use the official OpenAI Python SDK to interact with our API. Install the package via pip install openai. Configure the client with our base URL and your API key. This approach works for any OpenAI-compatible client library.

Here is how to initialize the client and send a message:

from openai import OpenAI

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

The response object follows the standard OpenAI format. You can access the content via response.choices[0].message.content. This method is ideal for backend services or scripts where you need programmatic access to the uncensored model. Remember that the model ID is uncensored, not gpt-4 or similar.

Node.js SDK Usage

For Node.js applications, use the openai npm package. Set the baseURL to our API endpoint. This ensures compatibility with standard OpenAI client libraries. The configuration is straightforward: provide your API key and the correct base URL.

Example setup in JavaScript:

import OpenAI from "openai";

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

The response structure matches the OpenAI standard. You can extract the text content and handle any errors. This SDK supports async/await patterns, making it easy to integrate into Express or Fastify apps. The uncensored model handles requests efficiently, returning text without content filters for lawful adult themes.

Streaming Responses

Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE) for real-time token delivery. This is useful for chat interfaces where users see text as it is generated. The final chunk includes token usage statistics.

Example streaming implementation:

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)

Each chunk contains partial text. Accumulate the content to display the full response. The API ensures that errors and refusals do not charge your credit, even during streaming. Token usage is reported in the last chunk, allowing you to track costs accurately.

Limits, Errors & Context

The context window is 64,000 tokens total (prompt + completion). Max output is 16,000 tokens per request, or 2,048 if max_tokens is unset. You are limited to 300 requests per minute and 8 concurrent requests per key. Request bodies must be under 8 MB.

Common errors: 401 means invalid key; 402 means insufficient credit; 429 means rate limit exceeded. Credit is prepaid and never expires. Errors do not consume credit. The model blocks sexual content involving minors, a hard limit that always applies. No SLA or certifications are offered. For more details, visit the Pricing page.

Questions and answers

Is this API compatible with OpenAI SDKs?

Yes, it is an OpenAI-compatible chat-completions API. You can use the official OpenAI SDKs by setting the base URL to <code>https://api.nsfwchatgpt.cc/v1</code> and providing your API key. The response format matches the OpenAI standard.

How do I pay for the API?

We accept only crypto: USDT (TRC20) or USDC (Base). You can top up any whole amount from $10 to $500. Prepaid credit is charged by real token usage and never expires. No card or PayPal is needed.

What is the model ID?

The model ID is <code>uncensored</code>. It is an open-weight model run on our own servers, tuned to answer without content refusals for lawful adult use. It is not GPT, Claude, or any other vendor's model.

Your key is one form away

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

Get API key