Quickstart: uncensored API integration
Integrate our uncensored LLM into your application with the official OpenAI-compatible SDK. You will configure the base URL, authenticate with your prepaid crypto credits, and send text requests immediately.
Prerequisites: installing the official SDK
Install the library that matches your development environment to begin communication with the API. The SDK handles authentication and serialization automatically so you can focus on logic.
For Python environments, use the standard package manager to install the latest version. Node.js developers should add the npm package to their project dependencies. Both tools support the same OpenAI-compatible protocol.
- Python:
pip install openai - Node.js:
npm install openai
Setting the base URL and API key
Configure the client to point to our specific endpoint and use your unique key for authorization. This setup ensures all requests route through our uncensored infrastructure instead of the default provider. You must replace the placeholder with the key generated on your dashboard.
The base URL structure remains consistent with standard implementations, but the domain differs. This change is critical because our model does not share the same routing as commercial giants. Keep your key secure and do not expose it in client-side code.
- Base URL:
https://api.filterwithoutai.com/v1 - Auth Header:
Authorization: Bearer YOUR_API_KEY
Making your first request to /v1/chat/completions
Send a POST request to the chat completions endpoint with your prompt and model identifier. The system processes the text and returns a raw response without content filters for lawful adult topics. You must specify the model ID as uncensored to access this specific behavior.
The request body includes standard parameters like messages and model. The API accepts your input and generates text based on the context window limits. Errors during processing do not consume your prepaid credits, ensuring fair billing.
Handling streaming responses and token usage
Enable streaming to receive the model output in chunks rather than waiting for the full response. This method reduces perceived latency and allows you to display text in real-time for users. The SDK handles the Server-Sent Events (SSE) protocol automatically.
Token usage is reported in the final chunk of the stream. You can track input and output counts to manage your prepaid credits effectively. The maximum output per request is 16,000 tokens, or 2,048 if you do not set the limit explicitly.
Configuring JSON mode and tool calling
Structure your responses for programmatic use by enabling JSON mode or defining tool schemas. This feature ensures the model outputs valid data that your application can parse without error. Use the response_format parameter to enforce strict JSON output.
Tool calling allows the model to execute functions based on your prompt instructions. You can define tools and specify how the model should choose them. This capability works seamlessly with our single uncensored model without additional configuration overhead.
Understanding rate limits and concurrency
Monitor your request volume to avoid service interruptions caused by rate limiting. Our infrastructure enforces a limit of 300 requests per minute per API key. You can also send up to 8 concurrent requests simultaneously using the same key.
If you exceed these limits, the API returns a 429 status code. Each account supports only one active key at a time, so generating a new key replaces the old one. Request bodies must not exceed 8 MB to ensure efficient processing.
cURL
curl https://api.filterwithoutai.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list three ways to optimize a python loop"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.filterwithoutai.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.filterwithoutai.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
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
What defines your uncensored model from other options?
Our model is an open-weight solution tuned specifically to answer without content refusals for lawful adult use. It does not use your prompts for training and offers transparent prepaid billing without monthly locks. The context window supports 100,000 tokens for extended conversations.
How does billing work with crypto credits?
You pay only for tokens used, with errors and refusals being free. Credits are topped up via USDT (TRC20) or USDC (Base) with bonus credits for larger amounts. Your prepaid credit never expires, eliminating the need for recurring subscription management.
Is there a hard content limit?
Yes, sexual content involving minors is always refused regardless of the model settings. All other lawful adult, fictional, or controversial topics are processed without filter. This ensures compliance while maintaining the uncensored experience developers expect.
Secure your API key
Register, copy the token, and update your endpoint. That is all you need.