HomeDocumentation03/07
Quick Documentation: Integrate the Uncensored Model
Integrate our uncensored OpenAI-compatible AI API in minutes. Use a single model optimized for unrestricted text and get immediate results with this quick guide.
https://api.apiiasincensura.com/v1uncensoredBase URL and Authentication Setup
To get started, you need an API key. Register on the account creation page with just your email and a password; the key is displayed instantly. No card is required for the $0.50 free trial credit. Set the OPENAI_API_KEY environment variable with your unique key. The base URL for this service is https://api.apiiasincensura.com/v1. This endpoint is natively compatible with the OpenAI client ecosystem, facilitating the integration of your uncensored llm api into existing applications without complex adapters.
Main endpoint: POST /v1/chat/completions
The main endpoint is POST /v1/chat/completions. Here you send your conversation and receive generated text. The model is invoked with the ID uncensored. This service is a strictly text-based api ia: it does not support embeddings, images, audio, or video. The request must follow the standard chat format. If you need to test connectivity, use GET /v1/models to verify that the service responds correctly before sending the payload.
curl https://api.apiiasincensura.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
Streaming Support (SSE)
The chat completions endpoint supports real-time responses via Server-Sent Events (SSE). By setting stream: true, you will receive a stream of text fragments instead of a complete response all at once. This is ideal for user interfaces that display generation letter by letter. The model responds immediately without waiting for the full context to finish, keeping latency low even for long responses within the 100,000 token context window.
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)
Tools and Function Calling
The uncensored ai api supports native tool/function calling. You can define functions in the request body and the model will return the necessary JSON arguments to execute them. This allows building agents or applications that interact with external systems. The model is optimized to follow JSON structure instructions without refusing to generate code or technical data due to content restrictions. Make sure to parse the model response to extract the tool arguments.
from openai import OpenAI
client = OpenAI(base_url="https://api.apiiasincensura.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/JS Code Example
Integration is straightforward using the official SDKs. In Python, initialize the client pointing to our base URL. In JavaScript, the configuration is similar. Remember that there is only one model available: uncensored. There is no routing or model selection. The code must handle model responses and manage the end of the stream if you use streaming. The simplicity of the unrestricted ai lies in the fact that you only need to handle standard input and output text.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apiiasincensura.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);
Rate Limits and Request Body
Respect the technical limits to avoid interruptions. The maximum quota is 300 requests per minute per API key. The request body cannot exceed 8 MB. If you exceed these limits, the API returns a 429 Too Many Requests status code. If your prepaid credit balance runs out, you will receive a 402 Payment Required code. Credit never expires, so you can top up whenever you want without penalties. The context window is 100,000 tokens combined between prompt and completion.
Technical specifications
One table with every limit, feature and price that applies to your key.
| Feature | Support |
|---|---|
| API format | OpenAI Chat Completions schema; official openai SDKs work unchanged |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Model ID | uncensored |
| Base URL | https://api.apiiasincensura.com/v1 |
| Authentication | Authorization: Bearer YOUR_KEY |
| Streaming | Supported (stream: true), usage included at the end |
| Structured output | response_format: {"type": "json_object"} |
| Context window | 100,000 tokens (prompt + completion together) |
| Completion length | up to the rest of the 100,000-token window; max_tokens optional (no separate cap) |
| Tools / tool calls | Yes — tools, tool_choice; replies carry tool_calls, also when streaming; send results back as role: tool |
| Other parameters | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Requests per minute | 300/min per key |
| Headers | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Concurrency | 8 requests at the same time per key |
| Request size | up to 8 MB per request |
| Volume bonus | +5% from $50, +10% from $100 |
| Price | input $0.25 / 1M tokens, output $1.00 / 1M tokens |
| Trial credit | $0.50 for 7 days, no card · Trial key: 2 parallel requests, 60 req/min; full limits (8 and 300) after first top-up |
| Billing | pay as you go from prepaid credit; nothing is charged for failed or refused requests |
| Top-up | crypto: USDT on TRON or USDC on Base, $10–$500, any whole sum |
| Subscription | paid credit never expires, no subscription |
| Content | uncensored for adults; the only hard rule: no sexual content involving minors |
| Account | Google or e-mail and password |
| Keys | one active key per account; a new key replaces the old one |
When a request fails
Every error is JSON with a type you can switch on. You are never charged for an error.
| Status | Type | Reason |
|---|---|---|
400 | bad_request | invalid JSON, empty messages, bad parameter, or prompt + max_tokens over the window — fix and resend |
401 | missing_key · invalid_key · key_revoked | check the Authorization header or use your current key |
402 | no_credit | out of credit; add credit and retry |
403 | content_blocked | sexual content involving minors — refused, not billed |
404 | not_found | only /v1/chat/completions and /v1/models exist |
413 | request_too_large | body over 8 MB |
429 | rate_limited · concurrency | over 300/min or 8 parallel — back off and retry |
503 | upstream_busy | model busy — retry in a few seconds |
Frequently asked questions
What content is strictly prohibited?
Although the model is uncensored for legal adult content, fiction, and controversial topics, it always blocks sexual content involving minors. This is the only hard limit that applies to all requests without exception.
How much does the API cost and how does payment work?
It is a pay as you go model with no subscriptions. The price is $0.25 per 1M input tokens and $1.00 per 1M output tokens. Prepaid credit never expires. You can top up from $10 with cryptocurrencies (USDT or USDC), getting 5% or 10% bonuses depending on the amount.
Can I use my API key in production?
Yes, the key is unique per account and can be regenerated at any time, invalidating the previous one. No phone verification or card is required for the basic account, which facilitates rapid deployment. The model does not use your prompts for training, ensuring privacy in your data flow.
Your key is one step away
Create an account, copy the key, and change the base URL. That's it.