API Documentation & Quickstart
Integrate our uncensored API keys with standard OpenAI-compatible clients to generate text without refusals. This guide covers authentication, request structures, streaming, and tool usage for immediate deployment.
Base URL and Authentication
The API endpoint is https://api.uncensoredapikeys.com/v1. This URL works with any OpenAI SDK or compatible client. You only need to change the base URL and provide your API key in the authorization header. Every request requires a valid key. Invalid keys return a 401 error. You receive one active key per account.
Authentication is straightforward. Use the standard Authorization: Bearer <API_KEY> format. Your key is generated immediately after signup via Google or email. There is no phone number verification required. The key never expires as long as you have prepaid credit.
Create Chat Completion
Send messages to the model using the POST /v1/chat/completions endpoint. The model ID is uncensored. This endpoint accepts standard chat messages with role and content fields. You can specify temperature, top_p, and stop sequences. The model responds with text completion.
Ensure your requests stay within the 8 MB body limit. Exceeding this limit will result in an error. You can process up to 300 requests per minute. This allows for high-throughput integration without complex queue management.
Example request structure:
curl https://api.uncensoredapikeys.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "return 404 for missing id"}]
}'Python SDK integration is equally simple. Initialize the client with the custom base URL and your key. Pass messages as a list of dictionaries. The response object contains the generated text in choices[0].message.content. This method handles JSON serialization automatically.
from openai import OpenAI
client = OpenAI(base_url="https://api.uncensoredapikeys.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 by setting stream: true in your request. The API returns Server-Sent Events (SSE). Each chunk contains partial text. The final chunk includes token usage statistics. This allows real-time display of generated content.
Streaming reduces perceived latency for long responses. You can start rendering text immediately. Buffer management is handled by standard SDKs. Use this for chat interfaces or live dashboards. The token count in the last chunk helps track usage accurately.
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)
Function Calling and Tools
The model supports function calling via the tools parameter. Define tools with names, descriptions, and JSON schemas. The model can return function calls instead of direct text. This enables integration with external systems or APIs. You can specify tool_choice to force or allow automatic selection.
Use this for structured data extraction or agent workflows. The model identifies the correct tool based on the user prompt. You must execute the function and pass the result back to the model if needed. This creates a loop for complex multi-step tasks. JSON mode is also available via response_format for strict output formatting.
Parameters and Limits
Adjust generation behavior with parameters like temperature, top_p, and seed. Higher temperature increases randomness. Lower values produce more deterministic outputs. Use stop sequences to halt generation at specific markers. presence_penalty and frequency_penalty help reduce repetition.
The context window is 100,000 tokens for input and output combined. Maximum output per request is 16,000 tokens. If max_tokens is unset, the limit defaults to 2,048 tokens. Rate limiting enforces 300 requests per minute. Concurrent requests are capped at 8 per key. Plan your concurrency accordingly.
Model Information
The model ID is uncensored. It is an open-weight model hosted on our servers. It is not GPT, Claude, Gemini, or any other vendor's model. It is tuned to answer without content refusals for lawful adult use. The only hard limit is sexual content involving minors.
Pricing is transparent. Input tokens cost $0.15 per 1M. Output tokens cost $0.50 per 1M. Errors and refusals are free. Credit never expires. You can top up with USDT (TRC20) or USDC (Base). Minimum top-up is $20. Bonus credit applies for larger amounts. No monthly fees. No subscriptions. Just pay for what you use.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.uncensoredapikeys.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);Common questions
What is the uncensored API keys endpoint URL?
The base URL is HTTPS://api.uncensoredapikeys.com/v1. This works with any OpenAI-compatible client. You must update the base URL in your SDK configuration.
How do I handle errors like 401, 402, or 429?
A 401 error means your API key is invalid or missing. A 402 error indicates insufficient prepaid credit. A 429 error signals that you have exceeded the 300 requests per minute limit. Retry logic should handle 429s with exponential backoff.
What are the context window and output limits?
The total context window is 100,000 tokens. The maximum output per request is 16,000 tokens. If you do not set max_tokens, the default output limit is 2,048 tokens. Input and output tokens count toward the same window.
Get your API key instantly
Sign up, copy the token, update the endpoint. That is all.