Switch your client in three lines
Integrate our uncensored text API into your NSFW AI workflow with standard OpenAI-compatible SDKs. Change three lines of configuration and start generating content immediately.
Base URL and Authentication
Connect your existing client to https://api.groknsfw.top/v1 by updating the base URL. Authentication uses a Bearer token sent in the Authorization header. Generate your key via Google or email on the dashboard; no phone number is required. The key is displayed once at creation, so save it securely. Errors and refusals do not consume credit, ensuring you only pay for actual token usage.
First Request
Send a standard chat completion request to test connectivity. The endpoint accepts a model ID of uncensored and returns text responses. Use the following cURL command to verify your API key and base URL configuration.
curl https://api.groknsfw.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 library to interact with the endpoint. Initialize the client with your key and the custom base URL. Set the model to uncensored to access the uncensored large language model. This approach allows you to reuse existing codebases designed for other providers.
from openai import OpenAI
client = OpenAI(base_url="https://api.groknsfw.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 Setup
Initialize the OpenAI Node.js client with the baseURL pointing to our service. Pass your API key in the apiKey field. Call the chat completions endpoint with the uncensored model. This method works seamlessly with standard OpenAI-compatible clients for high-volume NSFW workflows.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.groknsfw.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
Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE) for real-time token delivery. Token usage details are included in the final chunk of the stream. This reduces perceived latency for interactive NSFW applications.
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 and Errors
Each key supports 300 requests per minute and 8 concurrent requests. The request body limit is 8 MB, and the context window is 64,000 tokens. Handle HTTP 401 for invalid keys, 402 for insufficient credit, and 429 for rate limits. Errors are free, so failed requests do not deplete your prepaid balance.
Questions and answers
Does the uncensored model refuse adult content?
The model does not refuse lawful adult, fictional, or controversial topics. It only blocks sexual content involving minors, which is a hard limit applied to all requests.
What happens if I exceed the rate limit?
The API returns a 429 status code. You can retry after the window resets or upgrade your throughput by purchasing more credit. Concurrent request limits are also enforced per key.
Is the trial credit renewable?
No, the $0.50 trial credit is valid for 7 days and expires after that period. It is available once per person and requires no credit card.
Your key is one form away
Create an account, copy the key, change the base URL. That is the whole setup.