Integration guide for the uncensored API
Drop your existing OpenAI client code into our uncensored API. We handle the routing so you get unrestricted text generation without subscription fees or complex tiers.
Authentication and API keys
Your API key authenticates every request. Generate it instantly on the dashboard using Google or email. No phone number required. The key grants access to the base URL and tracks your prepaid credit.
- Keep your key secret. It deducts tokens from your balance.
- One active key per account. A new key replaces the old one immediately.
- Errors like invalid keys return 401. Refusals are free.
curl https://api.chatgptsemfiltro.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Set database timeout to five seconds."}]
}'Start with a simple model check. This confirms your credentials and lists available endpoints. Use the official OpenAI SDK or any compatible client library.
Chat completions endpoint
Send text prompts and receive unrestricted responses via the standard chat completions endpoint. This is a direct drop-in replacement for OpenAI clients. Change the base URL and API key in your configuration.
The model id is uncensored. It is an open-weight model tuned for adult and controversial topics. It is not GPT, Claude, or any other vendor's model. Context window supports 100,000 tokens total. Max output is 16,000 tokens per request. Errors do not consume credit.
from openai import OpenAI
client = OpenAI(base_url="https://api.chatgptsemfiltro.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)Python developers can use the official SDK. Set the base URL to our API endpoint. Pass your API key in the headers. Requests are processed sequentially unless you use concurrency limits.
Streaming responses with SSE
Receive tokens in real-time using Server-Sent Events (SSE). Streaming reduces perceived latency for long outputs. Token usage details appear in the final chunk. This is ideal for chat interfaces or live text generation.
Parse the stream carefully. Handle partial tokens gracefully. Network interruptions may require retry logic. Our API supports standard SSE formats. Compatible clients handle this automatically. Check your SDK documentation for streaming support.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.chatgptsemfiltro.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);Node.js developers can use async iterators. This simplifies handling stream data. Buffer tokens as they arrive. Display them progressively to the user. Monitor your credit balance during long streams.
Function calling and tools
Enable structured data extraction or automated actions with function calling. Define tools in your request. The model returns structured JSON matching your schema. Use this for parsing, data entry, or workflow automation.
Set tool_choice to auto or specific values. The API validates your tool definitions. Errors return clear messages. JSON mode is available for strict output formats. Use response_format for pure JSON responses.
Test your tools thoroughly. Ensure your prompts align with tool descriptions. The uncensored model handles complex instructions well. No extra fees for tool usage. Tokens count normally.
JSON mode response format
Force the model to output valid JSON. Set response_format to json_object. This ensures predictable parsing for downstream applications. Ideal for APIs, databases, or structured data pipelines.
JSON mode reduces formatting errors. The model adheres to schema constraints. Invalid JSON triggers a retry. Monitor token usage closely. Long JSON outputs consume more credit. Balance strictness with flexibility. Adjust temperature for consistency.
Rate limits and concurrency
Respect concurrency limits to avoid 429 errors. Max 8 concurrent requests per key. 300 requests per minute limit. Request body max 8 MB. Exceeding limits returns 429. Retry with exponential backoff.
Errors like 401 indicate invalid keys. 402 means no credit. Refusals are free. Credit never expires. Top up with crypto. USDT on TRC20 or USDC on Base. Bonuses apply for larger amounts. No monthly fees. No subscriptions. Pay only for tokens used.
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 is the base URL for the uncensored API?
The base URL is HTTPS://api.chatgptsemfiltro.com/v1. Use this for all requests. It works with standard OpenAI SDKs. Change the base URL in your client configuration.
How much does the uncensored chatgpt API cost?
Prices are $0.15 per 1M input tokens and $0.50 per 1M output tokens. Prepaid credit charges only for actual tokens. Errors and refusals are free. No monthly fees apply.
Does the API support streaming responses?
Yes, streaming via SSE is supported. Token usage appears in the last chunk. This reduces latency for long outputs. Compatible clients handle streaming automatically. Check your SDK for streaming support.
Retrieve your key now
Register, copy your key, update the endpoint. That is all.