EN ▾
Get API key

Quickstart: Integrate the Uncensored LLM Gateway

Integrate our uncensored LLM gateway with a single configuration change. Update your base URL and API key, then use standard OpenAI-compatible SDKs to send text and receive responses.

https://api.openllmgateway.com/v1uncensored

Prerequisites

You need an API key to authenticate requests. Sign up on the Get API key page with just an email and password. No credit card is required to start; new accounts receive $0.50 in trial credit valid for 7 days. Claim this credit with one click on your API key page. Your API key is displayed immediately after signup.

Prerequisites: An active API key and a supported programming language environment. The gateway accepts standard OpenAI-compatible clients, so you likely already have the necessary tools installed.

Install the SDK

While you can use raw HTTP requests, using an SDK simplifies handling JSON payloads and streaming responses. We recommend using the official openai Python package or the openai Node.js package.

  • Python: pip install openai
  • Node.js: npm install openai

These libraries handle authentication and request formatting automatically when configured correctly.

Configure Base URL

The core advantage of this llm gateway is drop-in compatibility. You do not need to change your code logic, only the configuration. Point your SDK client to our base URL and provide your API key.

Base URL: https://api.openllmgateway.com/v1

Model ID: uncensored

This endpoint supports the standard chat/completions format. By changing only these two values, your existing applications can route through our uncensored model without vendor lock-in.

Send a Chat Completion

Send a simple text prompt to receive a response. The model processes text input and returns text output. You can include conversation history in the messages array.

Ensure your request body stays under 8 MB. The model supports a context window of 100,000 tokens for both prompt and completion combined.

Here is a basic example using cURL:

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

Replace $OPENLLM_API_KEY with your actual key. The response will be returned in JSON format with the generated text in choices[0].message.content.

Enable Streaming

For real-time user experiences, enable streaming by setting stream: true in your request. The API returns a Server-Sent Events (SSE) stream of partial responses.

Streaming reduces perceived latency, as tokens are delivered as soon as they are generated. This is particularly useful for long-form content or interactive applications.

Example using the Python SDK:

from openai import OpenAI

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

Iterate over the response object to access each chunk. The model continues generating until it completes or hits the token limit.

Use Tool Calling

The API supports function calling, allowing the model to decide when to invoke external tools based on the user's prompt. Define your functions in the tools parameter.

When the model determines a tool should be used, it returns a tool_calls array in the response. You execute the function and send the result back to the model in a subsequent message.

Example using the Node.js SDK:

import OpenAI from "openai";

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

This enables complex agentic workflows without leaving the standard OpenAI-compatible interface.

Check Available Models

Query the GET /v1/models endpoint to verify available models and their metadata. This is useful for debugging or dynamically selecting models.

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)

The response will list the uncensored model. Note that this gateway does not offer embeddings, image generation, or audio processing. It is strictly a text-based chat completion API.

Limits, Errors, and Context

Rate Limits: You are limited to 300 requests per minute per API key. If you exceed this, you will receive a 429 Too Many Requests error.

Authentication: A 401 Unauthorized error indicates an invalid or missing API key. Regenerate your key in the dashboard if necessary.

Billing: A 402 Payment Required error occurs when your prepaid credit is exhausted. Top-ups start at $20, with bonus credits for larger deposits.

Context Window: The model supports 100,000 tokens. Manage your prompt and completion lengths to stay within this limit. Requests exceeding 8 MB will be rejected.

Questions and answers

Is the uncensored model proprietary?

No, it is an open-weight model run on our own GPU servers. It is not GPT, Claude, Gemini, or any other vendor's model. It is tuned to answer without content refusals for lawful adult use.

What happens if I exceed the rate limit?

You will receive a 429 error. The limit is 300 requests per minute per API key. You can regenerate your key to get a fresh start, but the rate limit applies per key.

Do you use my prompts for training?

No. Prompts are not used for training. Your data privacy is maintained; we only store what is necessary to process your requests and bill your account.

Your key is one form away

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

Get API key

Under the hood: specs

A quick checklist for developers: format, limits, features, billing.

SpecValue
CompatibilityOpenAI Chat Completions schema; official openai SDKs work unchanged
API keyAuthorization: Bearer YOUR_KEY
Base URLhttps://api.openllmgateway.com/v1
MethodsPOST /v1/chat/completions · GET /v1/models
Model IDuncensored
Sampling parameterstemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Context window100,000 tokens (prompt + completion together)
JSON modeJSON object mode via response_format json_object
Tools / tool callsYes — tools, tool_choice; replies carry tool_calls, also when streaming; send results back as role: tool
StreamingYes — server-sent events; the last chunk carries token usage
Max outputprompt + completion fit within 100,000 tokens; max_tokens optional, no separate output cap
Request sizeup to 8 MB per request
HeadersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Requests per minute300/min per key
Concurrencyup to 8 in parallel per key
Billingpay as you go from prepaid credit; nothing is charged for failed or refused requests
Bonus credit+5% from $50, +10% from $100, +15% from $200
Top-upUSDT (TRC20) or USDC (Base), any whole amount from $20 to $500
Trial credit$0.50 of credit valid 7 days, no card needed · Trial key: 2 parallel requests, 60 req/min; full limits (8 and 300) after first top-up
Priceinput $0.15 / 1M tokens, output $0.50 / 1M tokens
Subscriptionpaid credit never expires, no subscription
Sign-insign in with Google or with e-mail + password
Contentadult content allowed; sexual content involving minors is refused
Key managementone active key per account; a new key replaces the old one

Error reference

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

HTTPTypeWhat to do
400bad_requestmalformed request or too long for the context window
401missing_key · invalid_key · key_revokedno key, wrong key, or a key replaced by a newer one
402no_creditout of credit; add credit and retry
403content_blockedrefused by the content policy
404not_foundunknown endpoint
413request_too_largerequest body larger than 8 MB
429rate_limited · concurrencyover 300/min or 8 parallel — back off and retry
503upstream_busytemporary overload, retry shortly