Uncensored AI API Documentation
Connect your OpenAI-compatible client to our uncensored API in seconds. This quickstart guide covers authentication, your first request, and streaming output.
Authentication & Base URL
Your API key authenticates every request. Use the official base URL for the /v1 endpoints.
Chat Completions Endpoint
Send your prompt to the chat completions endpoint. The model id is uncensored. This simple text-in, text-out flow works with standard SDKs.
from openai import OpenAI
client = OpenAI(base_url="https://api.uncensoredollamamodels.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)
Streaming Responses (SSE)
Enable streaming to receive tokens as they generate. The final chunk includes total token usage. This approach reduces perceived latency for long responses.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.uncensoredollamamodels.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);
JSON Mode & Structured Output
Force structured output by setting response_format to {"type": "json_object"}. The model will return valid JSON instead of free text, which is ideal for programmatic pipelines.
Function Calling & Tools
Define tools in your request to let the model call external functions. Pass the tool definitions and set tool_choice to auto or a specific function name.
Rate Limits & Quotas
You get 300 requests per minute and 8 concurrent requests per key. The context window is 100,000 tokens total. Errors and refusals do not consume your prepaid credit.
cURL
curl https://api.uncensoredollamamodels.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List all Python standard library modules for file handling"}]
}'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)Frequently asked questions
How do I authenticate?
Pass your API key in the <code>Authorization: Bearer <key></code> header. You can generate a key immediately after signing up with Google or email.
What are the rate limits?
Limits are 300 requests per minute and 8 concurrent requests per key. The request body must be under 8 MB.
What errors should I expect?
A 401 indicates an invalid key. A 402 means your prepaid credit is exhausted. A 429 signals you hit the rate limit.