th ▾
Create key

API Documentation

Get started with our uncensored LLM API in minutes. Send text, get unrestricted text back, and pay only for what you actually use.

Base URL and Authentication

Your API key authenticates every request to our endpoint. Use the base URL https://api.uncensoredmodelai.com/v1 with any OpenAI-compatible SDK. Change the base URL in your client configuration to point here. The key is shown immediately after signup via Google or email. Keep it secure. We do not store your prompts for training. No phone number is required. Your credit never expires. Errors are free. You only pay for real tokens sent and received.

First Request

Send a simple chat completion to test connectivity. Use the model ID "uncensored" for unrestricted responses. The endpoint is POST /v1/chat/completions. Pass your system prompt to guide behavior. Pass user messages to get text back. The response contains the generated content. Check the token usage in the response body. This confirms your key works. It confirms billing is active. It confirms the model is online.

Python SDK Integration

Use the official OpenAI Python library for easy integration. Set the base URL to our endpoint. Set the API key in your environment variables. Initialize the client with these settings. Call chat.completions.create with your messages. The library handles JSON serialization. It handles retries automatically. It parses the response into Python objects. This is the standard way to interact with our API. It works with async code too. It fits into your existing workflows.

Node SDK Integration

The Node.js SDK follows the same pattern. Import the OpenAI package. Configure the base URL and API key. Create a client instance. Call the completions endpoint with your data. The response is a JavaScript object. Handle the data in your application logic. This approach is fast. It scales well. It supports modern JavaScript features. It is the preferred method for web backends. It integrates with Express or Fastify easily.

Streaming Responses

Receive tokens as they are generated. Set stream: true in your request. The server sends Server-Sent Events (SSE). Each chunk contains a partial response. The final chunk includes the total token usage. This reduces perceived latency. It allows real-time display. It works with any SSE parser. Use this for chat interfaces. It provides a better user experience. It keeps the connection open until completion.

Limits and Error Handling

You are limited to 300 requests per minute per key. You can have 8 concurrent requests. The request body must be under 8 MB. Use a 401 status for invalid keys. Use a 402 status when credit is exhausted. Use a 429 status for rate limits. The context window is 100,000 tokens. Max output is 16,000 tokens. Errors do not charge credit. Refusals do not charge credit. This ensures fair billing. Check the response headers for usage details. Handle these codes in your client.

cURL

curl https://api.uncensoredmodelai.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Generate 50 words explaining the TCP handshake process clearly"}]
  }'

Python

from openai import OpenAI

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

Node.js

import OpenAI from "openai";

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

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 uncensored model AI context window size?

The context window is 100,000 tokens, covering both input and output. You can request up to 16,000 tokens per response. This allows for long documents and complex reasoning. Set <code>max_tokens</code> to control output length.

How do I handle errors and refunds?

Errors like 401 or 429 do not charge credit. Refusals are also free. Credit is not refunded for other errors. If you have a billing issue, use the Support page. Your prepaid credit never expires. It is charged only for real usage.

Is this API compatible with OpenAI SDKs?

Yes, it is fully OpenAI-compatible. Use the standard <code>POST /v1/chat/completions</code> endpoint. Change the base URL in your SDK configuration. Pass your API key in the header. It works with Python, Node, and other SDKs. No custom logic is required for basic use.

Get your API key instantly

Sign up, copy the key, update your base URL. That’s all there is to it.