Uncensored LLM API Documentation
Drop-in uncensored LLM API with OpenAI-compatible endpoints. Start sending requests in minutes with our prepaid token system.
Authentication and Base URL
Use your API key with the base URL HTTPS://api.grokapinsfw.com/v1. Every request requires the Authorization header.
curl https://api.grokapinsfw.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Send a message now"}]
}'Create keys via Google or email on the dashboard. One key per account, no phone verification needed.
First Chat Completion Request
Send POST requests to /v1/chat/completions. The model ID is "uncensored".
from openai import OpenAI
client = OpenAI(base_url="https://api.grokapinsfw.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)Text in, text out. No embeddings or vision support. Context window is 100,000 tokens total.
Node.js Integration
Configure your Node client with the same base URL and key.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.grokapinsfw.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 returns SSE events. Use standard OpenAI SDKs without changes.
Streaming Responses
Enable streaming via SSE. Token counts appear in the final chunk.
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)Useful for real-time UIs. Each token is billed accurately.
Function Calling and JSON Mode
Supports tool definitions and JSON strict mode. Set response_format to json_object.
from openai import OpenAI
client = OpenAI(base_url="https://api.grokapinsfw.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)Temperature and top_p adjust creativity. Stop sequences work as expected.
Rate Limits and Errors
300 requests per minute, 8 concurrent per key. Max body size 8 MB.
401 means invalid key. 402 indicates no credit. 429 signals rate limit exceeded.
Common questions
Is this the official grok API NSFW service?
No. We are an independent provider running our own uncensored model. We use the OpenAI-compatible format.
How does billing work?
Prepaid credit only. Pay with crypto. Errors are free. No monthly fees.
What is the context window?
100,000 tokens combined. Max output is 16,000 tokens per request.
Get your API key
Register, copy your key, and update the base URL. That is all required.