LLM Non CensureDocs
API Documentation: Quick Integration in 5 Minutes
Integrate our uncensored model API in minutes with native OpenAI compatibility. Start with an immediate free trial credit, no credit card required.
Environment Setup and Authentication
To get started, you must retrieve your unique API key from your dashboard. This key serves as the identifier to authenticate your requests. Unlike generic models, our API relies on a standardized endpoint that allows you to use official SDKs or any OpenAI-compatible client. You do not need to provide a phone number or credit card to access the initial free trial credit.
The base endpoint is https://api.llmnoncensure.com/v1. Make sure to configure your environment to use this specific base URL. The API key must be passed via the Authorization: Bearer <YOUR_API_KEY> header. One key per account is generated; you can regenerate one at any time, which automatically revokes the old one.
First request with cURL
Send your first request to verify that the integration works. We use the uncensored model ID. This request sends text as input and receives a text response without the usual content filters, except for sexual content involving minors. The model is fine-tuned to address adult, controversial, or safety-research topics without unjustified refusal.
Here is the basic structure to test the connection:
curl https://api.llmnoncensure.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."}]
}'This command validates that your key is active and that the model is ready to receive complex prompts.
Integration with Python SDK
If you are developing in Python, use the openai library for seamless integration. Set the OPENAI_BASE_URL environment variable or pass base_url directly to the client. This allows you to reuse your existing code while simply changing the model source. The SDK handles JSON serialization and network errors for you.
Here is a minimal example:
from openai import OpenAI
client = OpenAI(base_url="https://api.llmnoncensure.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)The uncensored model accepts standard parameters like temperature and max_tokens. You can adjust the creativity of the response without worrying about the AI blocking an answer deemed "risky" by generic criteria.
Usage with Node.js and JavaScript
For JavaScript or TypeScript environments, the openai SDK works identically. Configure the client with the base URL and API key. This approach is ideal for backend applications or API servers that need to integrate dynamic AI responses without the limits of large generalist providers.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.llmnoncensure.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);Make sure to handle asynchronous responses correctly. Each request is processed individually, ensuring that your business logic is not blocked by the model's generation latency. The 100,000 token context allows you to send long system instructions or extended conversation histories.
SSE streaming support
For a smooth user experience, enable streaming via server-sent events (SSE). This allows displaying the response word by word instead of waiting for generation to finish. This is particularly useful for chat interfaces where perceived latency is critical. The data stream follows the OpenAI standard, facilitating client-side parsing.
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)Streaming does not change the model logic; it simply changes data transport. Each chunk is part of the final response. You can stop the stream at any time if the user modifies the prompt, optimizing your credit usage.
Rate limits, errors and context
Knowing your API limits is crucial for robust integration. You are limited to 300 requests per minute per API key. The request body must not exceed 8 MB. In case of error, standard HTTP codes are returned: 401 for an invalid key, 402 if your credit is exhausted, and 429 for rate limit exceeded. The model has a context window of 100,000 tokens, combining prompt and response. This allows sending long documents or in-depth conversations without premature cutoff. Unlike other services, there are no fixed monthly fees; you pay as you go with your prepaid credit.
Technical reference
Before you integrate, here is exactly what you get with a key.
| Parameter | Details |
|---|---|
| API format | OpenAI Chat Completions schema; official openai SDKs work unchanged |
| Base URL | https://api.llmnoncensure.com/v1 |
| Model ID | uncensored |
| API key | Authorization: Bearer YOUR_KEY |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Function calling | Yes — tools, tool_choice; replies carry tool_calls, also when streaming; send results back as role: tool |
| Structured output | response_format: {"type": "json_object"} |
| Context window | 100,000 tokens (prompt + completion together) |
| SSE streaming | Supported (stream: true), usage included at the end |
| Max output | prompt + completion fit within 100,000 tokens; max_tokens optional, no separate output cap |
| Other parameters | temperature, top_p, stop, seed and the two penalties are passed through |
| Rate limit | 300 requests per minute per key |
| Max body | 8 MB request body |
| Response headers | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Concurrency | up to 8 in parallel per key |
| Payment | crypto: USDT on TRON or USDC on Base, $10–$500, any whole sum |
| Token prices | $0.25 per 1M input tokens · $1.00 per 1M output tokens |
| Billing | prepaid credit, charged by real token usage; errors and refusals are free |
| 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 |
| Credit expiry | no monthly fee; paid credit does not expire |
| Volume bonus | +5% on $50+, +10% on $100+ |
| Content | adult content allowed; sexual content involving minors is refused |
| Key management | one active key per account; a new key replaces the old one |
| Account | sign in with Google or with e-mail + password |
Error codes
Errors come back as JSON with a stable type; failed and refused requests are not billed.
| Status | Type | Reason |
|---|---|---|
400 | bad_request | malformed request or too long for the context window |
401 | missing_key · invalid_key · key_revoked | check the Authorization header or use your current key |
402 | no_credit | balance is empty — top up, requests resume at once |
403 | content_blocked | refused by the content policy |
404 | not_found | only /v1/chat/completions and /v1/models exist |
413 | request_too_large | request body larger than 8 MB |
429 | rate_limited · concurrency | slow down: rate or parallel limit reached |
503 | upstream_busy | temporary overload, retry shortly |
Frequently asked questions
What is the difference with standard OpenAI models?
Our model is specifically fine-tuned to not refuse adult, controversial, or creative topics, while remaining legally compliant (no sexual content involving minors). It is neither GPT, nor Claude, nor Gemini. It responds to prompts that other APIs would mark as "risky".
How does the free trial credit work?
Every new account receives $0.50 in free credit valid for 7 days. No credit card is required to activate it. Once the credit is exhausted or the time limit expires, you can add funds via cryptocurrency (USDT or USDC) to continue using the API with no monthly commitment.
Are my data used for training?
No, prompts sent via the API are not used to train the model. Your privacy is preserved because we do not store your data to reuse it in our training datasets, unlike many free or freemium providers.
Your key is one step away
Create an account, copy the key, modify the base URL. That's it.