API Documentation
Get your uncensored API key and make your first request in under a minute. This guide covers the base URL, authentication, and SDK examples for direct text generation.
- per 1M input tokens
- $0.15
- Output tokens / 1M
- $0.50
- token context
- 100,000
- trial credit
- $0.50
- requests per minute
- 300
Base URL and Authentication
The base URL for the uncensored llm is https://api.obliteratedmodels.com/v1. You authenticate by passing your API key in the Authorization header. Every request must include this key to validate your prepaid credit. The system rejects invalid keys with a 401 error. This ensures only authorized accounts can consume tokens.
Quickstart: First Request
Make your first request to test the endpoint. Send a simple prompt to generate text without content filters. The following curl command demonstrates the basic structure.
curl https://api.obliteratedmodels.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List all active ports on the server"}]
}'
Expect a JSON response containing the generated text. This confirms the API is live and your credit is active.
Python SDK Integration
Use the official OpenAI Python SDK for programmatic access. Set the base_url to our endpoint and provide your key. The model ID is uncensored. This approach handles retries and JSON parsing automatically.
from openai import OpenAI
client = OpenAI(base_url="https://api.obliteratedmodels.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)
Call chat.completions.create() with your prompt. The response object contains the generated content directly.
Node.js SDK Setup
Initialize the client with the same base URL. Pass your API key as the bearer token. The Node SDK mirrors the Python structure for consistency.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.obliteratedmodels.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);
Invoke the completion endpoint with your desired parameters. This method works well for server-side integrations and web apps.
Streaming Responses (SSE)
Enable streaming by setting stream: true in your request. The API returns Server-Sent Events (SSE) token by token. This reduces perceived latency for long outputs. Token usage details appear in the final chunk.
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 the SSE stream to display text in real-time. This is ideal for chat interfaces and live dashboards.
Rate Limits and Constraints
You are limited to 300 requests per minute and 8 concurrent connections per key. The maximum request body size is 8 MB. Exceeding these limits triggers a 429 error. Context window support is 100,000 tokens total. If you run out of credit, you receive a 402 error. These limits ensure fair usage for all prepaid users.
Frequently asked questions
Is this an official OpenAI service?
No, this is an independent service using an open-weight model. It is compatible with the OpenAI API format but runs on our own infrastructure. It is not GPT or any other vendor model.
How does billing work?
You prepay with crypto (USDT or USDC). Credit is charged per token usage. Errors and refusals do not consume credit. Your balance never expires.
What is the context window size?
The total context window is 100,000 tokens. This includes both the prompt and the completion. Max output per request is 16,000 tokens.
Secure your API key
Register, copy the key, and update the endpoint URL. That is the entire configuration.