Start with trial credit

Email and password, key on screen right away.

https://api.uncensoredllmhub.com/v1

Uncensored LLM API Quickstart | Uncensored LLM Hub

Integrate our uncensored llm into your application using the standard OpenAI-compatible interface. This guide covers authentication, request formats, streaming, and tool calling for immediate deployment.

Base URL & Authentication

Use the base URL https://api.uncensoredllmhub.com/v1 for all requests. Authentication requires an API key passed in the Authorization header as a Bearer token. You receive this key immediately upon signup via the Get API key page. The key is tied to a single account; you can regenerate it at any time, which invalidates the previous key. No phone number or credit card is required to start.

POST /v1/chat/completions

Send your prompt to the chat endpoint. The model id is always uncensored. The API accepts standard chat messages and returns text. It does not support images, audio, or embeddings. Ensure your request body stays under 8 MB. The following example demonstrates a basic text request using cURL:

curl https://api.uncensoredllmhub.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 returns a completion for your prompt. You can parse the response to extract the generated text for your application logic.

Python SDK Integration

Use the official openai Python package for easier integration. Configure the client with your base URL and API key. This approach simplifies JSON handling and type inference. The following example shows how to initialize the client and send a message:

from openai import OpenAI

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

Replace YOUR_API_KEY with your actual key. The response object provides direct access to the content, making it easy to integrate into Python workflows.

Node SDK Integration

For JavaScript environments, use the OpenAI Node.js SDK. Set the base URL and API key in the configuration object. This allows you to use standard promise-based syntax. The following example demonstrates a simple chat completion:

import OpenAI from "openai";

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

Ensure you handle the asynchronous response appropriately. This method works well for server-side applications or Node.js environments where you need to process the output immediately.

Streaming Responses (SSE)

Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE) instead of a single JSON object. This allows you to display tokens as they are generated, improving perceived latency. The following example shows how to handle the stream in Python:

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)

Parse each chunk to extract the delta content. This is useful for chat interfaces where users expect real-time typing indicators. The stream ends when the final chunk is received.

Rate Limits, Errors & Context

You are limited to 300 requests per minute per key. If you exceed this, you receive a 429 error. Other common errors include 401 (invalid key) and 402 (insufficient credit). The context window is 100,000 tokens for prompt plus completion combined. If your input is too large, the model may truncate or reject the request. Always monitor your usage via the dashboard to avoid service interruptions.

Technical specifications

One table with every limit, feature and price that applies to your key.

SpecValue
API formatOpenAI-compatible: any OpenAI SDK or client works — change the base URL and the key
EndpointsPOST /v1/chat/completions · GET /v1/models
Modeluncensored
Base URLhttps://api.uncensoredllmhub.com/v1
AuthenticationAuthorization: Bearer YOUR_KEY
Function callingSupported: tools + tool_choice, tool_calls in the reply (streamed too), tool results as role: tool messages
Max context100,000 tokens (prompt + completion together)
Sampling parameterstemperature, top_p, stop, seed and the two penalties are passed through
Structured outputresponse_format: {"type": "json_object"}
Completion lengthup to the rest of the 100,000-token window; max_tokens optional (no separate cap)
StreamingYes — server-sent events; the last chunk carries token usage
Requests per minute300 requests per minute per key
Parallel requests8 requests at the same time per key
Response headersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Max body8 MB request body
PaymentUSDT (TRC20) or USDC (Base), any whole amount from $10 to $500
Free trial$0.50 for 7 days, no card · Trial key: 2 parallel requests, 60 req/min; full limits (8 and 300) after first top-up
Subscriptionno monthly fee; paid credit does not expire
How you paypay as you go from prepaid credit; nothing is charged for failed or refused requests
Token pricesinput $0.25 / 1M tokens, output $1.00 / 1M tokens
Bonus credit+5% on $50+, +10% on $100+
AccountGoogle or e-mail and password
Keysone active key per account; a new key replaces the old one
Content policyuncensored for adults; the only hard rule: no sexual content involving minors

Errors and what to do

The type field is stable, the message is for humans. Errors cost nothing.

CodeTypeMeaning
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_foundunknown endpoint
413request_too_largebody over 8 MB
429rate_limited · concurrencyslow down: rate or parallel limit reached
503upstream_busymodel busy — retry in a few seconds

Questions and answers

Is this an uncensored coding llm?

Yes, the model is tuned to answer without content refusals, including for controversial or adult topics, while still blocking sexual content involving minors. It handles code generation and technical queries effectively without standard corporate filters.

What happens if my API key is compromised?

You can regenerate your key immediately from the dashboard. This action revokes the old key, so any applications using it will stop working until updated. Each account allows only one active key at a time.

Do you support tool/function calling?

Yes, the endpoint supports tool definitions and function calling. You can define tools in your request, and the model will return structured JSON output that you can parse to execute specific functions in your application.

Your key is one form away

Create an account, copy the key, change the base URL. That is the whole setup.

Get API key

https://api.uncensoredllmhub.com/v1