NSFW Chatgpt: First request in five minutes
Connect your NSFW chatbot to our uncensored LLM API in minutes. This guide covers authentication, requests, and streaming using standard OpenAI-compatible clients.
Authentication and Base URL
Start by generating an API key on the Get API key page. You can sign in with Google or use an email and password. The key is displayed immediately; copy it for your requests. There is no phone number required, and you can have only one active key per account. If you generate a new key, the previous one is invalidated.
Point your client to our base URL: https://api.nsfwchatgpt.top/v1. This endpoint works with any standard OpenAI SDK or compatible HTTP client. Pass your key in the Authorization: Bearer <key> header. This setup ensures your NSFW chatbot connects directly to our uncensored model without routing through generic AI platforms.
Sending Your First Request
Send a standard chat completion request to the /v1/chat/completions endpoint. Our API accepts text input and returns text output. The model ID is always uncensored. This open-weight model is tuned to answer without content refusals for lawful adult use. You can set parameters like temperature and top_p to control creativity.
Use the following example to send a simple message. Replace <YOUR_API_KEY> with the key you created.
curl https://api.nsfwchatgpt.top/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 SDK Integration
Use the official openai Python package to integrate the API into your NSFW chat application. Configure the client with our base URL and your API key. This approach lets you use familiar methods like chat.completions.create().
Initialize the client and make a request to the uncensored model. This method is ideal for backend services where you need to process responses programmatically. Ensure you handle the response object to extract the generated text for your chatbot's user interface.
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwchatgpt.top/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 SDK Integration
For JavaScript or TypeScript applications, use the openai Node.js package. Set the base URL to our API endpoint. This allows you to build web-based NSFW chat interfaces or serverless functions that interact with the uncensored LLM.
Create an instance of the OpenAI client with your credentials. Call the chat completions endpoint with the model ID uncensored. This SDK handles the HTTP requests and JSON parsing, letting you focus on your application logic. It works seamlessly with modern web frameworks.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwchatgpt.top/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 Responses
For a better user experience in NSFW chat applications, enable streaming. Set the stream parameter to true in your request. The API will return a stream of Server-Sent Events (SSE) instead of a single JSON object. This allows you to display tokens as they are generated, reducing perceived latency.
Listen for the delta chunks in the stream. Each chunk contains a part of the response. The final chunk will include the usage data, showing the token count for billing. This feature is critical for real-time conversational interfaces.
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)
Limits, Errors, and Context Window
Our API has specific limits to ensure reliability. You can make 300 requests per minute per key, with 8 concurrent requests allowed. The maximum request body size is 8 MB. The context window is 64,000 tokens, but the max output per request is 16,000 tokens (or 2,048 if max_tokens is not set).
Handle errors gracefully. A 401 error means your key is invalid. A 402 error indicates insufficient prepaid credit. A 429 error signals that you have hit the rate limit. Errors and refusals are free, so you are only charged for successful token generation.
Questions and answers
What happens if I get a 402 error?
A 402 error means your prepaid credit is exhausted. You need to top up using crypto (USDT or USDC) to continue using the API. Errors and refusals do not consume credit, so you are only charged for actual token usage.
Is the model truly uncensored?
Yes, the model is tuned to answer without content refusals for lawful adult use. It does not refuse controversial or adult topics. However, we always block sexual content involving minors, which is a hard limit.
Can I use this API for NSFW chatbot applications?
Absolutely. This API is designed specifically for NSFW chatbots and AI companions. It provides an uncensored LLM interface with low token costs and prepaid crypto billing, making it ideal for adult content platforms.
Your key is one form away
Create an account, copy the key, change the base URL. That is the whole setup.