EN ▾
Get your key

Integration guide for the uncensored llm

Drop our uncensored LLM into your existing stack. Use the OpenAI-compatible API to get raw, unfiltered text responses without modifying your client logic.

Base URL and authentication

Our API lives at https://api.localuncensoredllm.com/v1. You authenticate by passing your key in the Authorization header. This setup mirrors standard OpenAI integrations. You do not need complex routing logic. The base URL handles all request directing.

  • Use Bearer <YOUR_API_KEY> for authorization.
  • The key is generated instantly upon signup.

This ensures your prompts go directly to our uncensored model. There is no middleware filtering your input. You get raw access to the model's capabilities immediately.

POST /v1/chat/completions: sending your prompt

Send a JSON payload to the chat completions endpoint. This is the standard way to get text responses from the model. You define the message content and system instructions. The model processes your input and returns a completion.

curl https://api.localuncensoredllm.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Summit height in meters"}]
  }'

This endpoint handles all your text generation needs. You can adjust parameters like temperature and top_p. The response includes the generated text and token usage statistics. It is simple, direct, and reliable.

GET /v1/models: verifying your endpoint

Query the models endpoint to confirm connectivity. This returns a list of available models. You should see uncensored in the response. This confirms your key is valid and the service is running.

from openai import OpenAI

client = OpenAI(base_url="https://api.localuncensoredllm.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)

Use this to verify your setup before sending heavy workloads. It is a quick sanity check. If the endpoint responds, your integration is working correctly. You can proceed with confidence.

Streaming, JSON mode, and tool calling

Enable streaming by setting stream: true. The API returns chunks as they are generated. This reduces perceived latency for long responses. You can also force JSON output using response_format. This is useful for structured data parsing.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.localuncensoredllm.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);

Function calling is supported via the tools parameter. Define your tools in the standard OpenAI format. The model will output tool calls when appropriate. This allows for complex agent workflows. Everything works within the same API contract.

Rate limits and concurrency

Each API key is limited to 300 requests per minute. You can have up to 8 concurrent requests. This prevents single clients from monopolizing resources. The limit is per key, not per account. Manage your keys accordingly.

  • Max request body size is 8 MB.
  • Exceeding limits returns a 429 error.

Plan your throughput based on these constraints. The system is designed for steady, high-volume usage. Burst traffic is handled within the concurrent request window.

Errors, credits, and context window

A 401 error means your key is invalid. A 402 error indicates insufficient credit. Top up via crypto to continue. Errors do not consume your credits. This ensures you only pay for successful responses.

The context window is 100,000 tokens. This includes both the prompt and the completion. You can generate up to 16,000 tokens per request. Set the default max_tokens to 2,048 if needed. Your prompts are not used for training. Privacy is maintained throughout the process.

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)

Common questions

What is the context window for the uncensored LLM?

The context window is 100,000 tokens, covering both the prompt and the completion. You can generate up to 16,000 tokens per request. If you do not specify max_tokens, the limit is 2,048 tokens.

How do I handle errors and refunds?

Errors like 401 or 429 do not consume your prepaid credit. Only successful responses are charged. Credits never expire. If you are double-charged, contact support via the Support page for a correction.

Is this API compatible with OpenAI SDKs?

Yes, it is fully OpenAI-compatible. You can use the standard OpenAI SDKs by updating the base URL and API key. The endpoints and response formats mirror the OpenAI specification. This allows for easy drop-in integration.

Get your key now

Sign up, copy the token, point your client to the base URL. Done.

Get your key