EN ▾
Get API key

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.

ParameterDetails
API formatOpenAI Chat Completions schema; official openai SDKs work unchanged
Base URLhttps://api.llmnoncensure.com/v1
Model IDuncensored
API keyAuthorization: Bearer YOUR_KEY
EndpointsPOST /v1/chat/completions · GET /v1/models
Function callingYes — tools, tool_choice; replies carry tool_calls, also when streaming; send results back as role: tool
Structured outputresponse_format: {"type": "json_object"}
Context window100,000 tokens (prompt + completion together)
SSE streamingSupported (stream: true), usage included at the end
Max outputprompt + completion fit within 100,000 tokens; max_tokens optional, no separate output cap
Other parameterstemperature, top_p, stop, seed and the two penalties are passed through
Rate limit300 requests per minute per key
Max body8 MB request body
Response headersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Concurrencyup to 8 in parallel per key
Paymentcrypto: 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
Billingprepaid 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 expiryno monthly fee; paid credit does not expire
Volume bonus+5% on $50+, +10% on $100+
Contentadult content allowed; sexual content involving minors is refused
Key managementone active key per account; a new key replaces the old one
Accountsign 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.

StatusTypeReason
400bad_requestmalformed request or too long for the context window
401missing_key · invalid_key · key_revokedcheck the Authorization header or use your current key
402no_creditbalance is empty — top up, requests resume at once
403content_blockedrefused by the content policy
404not_foundonly /v1/chat/completions and /v1/models exist
413request_too_largerequest body larger than 8 MB
429rate_limited · concurrencyslow down: rate or parallel limit reached
503upstream_busytemporary 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.

Get API keyRead documentation