Get API key

Uncensored AI Models: API Quickstart

Get started with our uncensored API in minutes. Use standard OpenAI-compatible SDKs to send requests to a single, direct endpoint with no aggregation layer.

per 1M input tokens
$0.25
Output tokens / 1M
$1.00
token context
100,000
trial credit
$0.50
requests per minute
300

Base URL & Authentication

Use the base URL https://api.uncensoredaimodels.com/v1 with your API key. Sign up on the Get API key page with just an email and password. The key is shown immediately after signup. No phone number or card is needed for the trial credit.

  • Base URL: https://api.uncensoredaimodels.com/v1
  • Auth: Bearer token in the Authorization header

Change the base_url in your SDK client to point to our endpoint. The model ID is always uncensored.

First Request

Send a standard chat completion request. The model is tuned to answer without content refusals for lawful adult use, though it blocks sexual content involving minors.

curl https://api.uncensoredaimodels.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."}]
  }'

You can check available models via GET /v1/models. The response confirms the single uncensored model is available for your integration.

Python SDK Integration

Use the official OpenAI Python package. Configure the client with our base URL and your key. This works for any standard chat completion call.

from openai import OpenAI

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

Pass the message array with the model ID uncensored. The API supports standard parameters like temperature and max_tokens. No special SDK is required.

Node SDK Integration

Initialize the OpenAI Node client with our custom base URL. This allows you to use familiar JavaScript patterns for API calls.

import OpenAI from "openai";

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

Set the apiKey and baseURL. Call chat.completions.create with the model set to uncensored. The response format matches the standard OpenAI schema.

Streaming Responses

Enable streaming by setting stream: true. The API returns Server-Sent Events (SSE). Parse the delta chunks to update your UI in real time.

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)

Each chunk contains partial text. Handle the done event to finalize the response. This reduces perceived latency for long outputs.

Limits, Errors & Context

Your request body must be under 8 MB. You are limited to 300 requests per minute per key. If you exceed this, you receive a 429 error. Use 401 for invalid keys and 402 if prepaid credit is exhausted. The context window is 100,000 tokens total. Prompts are not used for training. Regenerate your key anytime from the dashboard.

API specifications

If your tool speaks the OpenAI API, these are the details that matter.

FeatureSupport
CompatibilityOpenAI Chat Completions schema; official openai SDKs work unchanged
API keyAuthorization: Bearer YOUR_KEY
Base URLhttps://api.uncensoredaimodels.com/v1
Modeluncensored
EndpointsPOST /v1/chat/completions · GET /v1/models
Other parameterstemperature, top_p, stop, seed, presence_penalty, frequency_penalty
StreamingSupported (stream: true), usage included at the end
Function callingYes — tools, tool_choice; replies carry tool_calls, also when streaming; send results back as role: tool
Completion length16,000 tokens max; 2,048 if max_tokens is not set
Context window100,000 tokens (prompt + completion together)
Structured outputJSON object mode via response_format json_object
Requests per minute300 requests per minute per key
Parallel requests8 requests at the same time per key
Max body8 MB request body
Response headersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Subscriptionpaid credit never expires, no subscription
Volume bonus+5% from $50, +10% from $100
Free trial$0.50 for 7 days, no card
Price$0.25 per 1M input tokens · $1.00 per 1M output tokens
Top-upcrypto: USDT on TRON or USDC on Base, $10–$500, any whole sum
How you paypay as you go from prepaid credit; nothing is charged for failed or refused requests
Content policyadult content allowed; sexual content involving minors is refused
Keysone active key per account; a new key replaces the old one
AccountGoogle or e-mail and password

Error codes

Every error is JSON with a type you can switch on. You are never charged for an error.

StatusTypeReason
400bad_requestinvalid JSON, empty messages, bad parameter, or prompt + max_tokens over the window — fix and resend
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_blockedsexual content involving minors — refused, not billed
404not_foundunknown endpoint
413request_too_largerequest body larger than 8 MB
429rate_limited · concurrencyover 300/min or 8 parallel — back off and retry
503upstream_busymodel busy — retry in a few seconds
01

Questions and answers

What is the context window size?

The context window is 100,000 tokens, counting both the prompt and the completion. This allows for substantial input and output in a single request.

Is the model specifically a coding LLM?

No. The model is an uncensored large language model tuned for broad use without refusals. It is not specifically designated as a 'coding LLM' in the fact sheet.

What content is blocked?

Sexual content involving minors is always blocked. All other lawful adult, fictional, or controversial topics are allowed without refusal.

Your key is one form away

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

Get API key