Uncensored LLM API Quickstart
Integrate our uncensored LLM into your application with a standard OpenAI-compatible endpoint. This guide provides the exact endpoints, authentication, and streaming protocols you need to start sending requests immediately.
Base URL and Authentication
The base URL for all requests is https://api.storyunfiltered.com/v1. Append your API key to the Authorization header as a bearer token. Each account generates one active key; replacing it invalidates the previous one. No phone number is required for signup, and you can authenticate via Google or email credentials to retrieve your key instantly.
Example Header:
Authorization: Bearer YOUR_API_KEY
First Request
Send a POST request to /v1/chat/completions with the model ID uncensored. The API accepts standard parameters like temperature and stop. Responses are returned in JSON format, containing the generated text in the message.content field.
Example Request:
model:uncensoredmessages: Array of user/assistant messages
Model Listing and Configuration
Retrieve available models by sending a GET request to /v1/models. The only available model is uncensored, an open-weight model tuned for unrestricted content. It supports function calling, JSON mode, and streaming via Server-Sent Events (SSE). Configure parameters like top_p and seed to control output diversity.
Example Response:
id:uncensoredobject:model
Streaming Responses with SSE
Enable streaming by setting stream: true in your request. The API returns a stream of Server-Sent Events, where each chunk contains a partial response. The final chunk includes token usage statistics for billing purposes. This approach reduces perceived latency for long-form content generation.
Example Stream:
event:messagedata: JSON chunk withdeltacontent
Tool Calling and JSON Mode
Use the tools parameter to define function schemas for your application. The model will return structured tool calls when appropriate. For strict JSON output, set response_format to {"type": "json_object"}. This ensures the response is valid JSON without additional markdown formatting. Parameters like tool_choice allow you to force specific tool usage.
Example Tool Schema:
name:get_weatherdescription:Get current weather
Token Limits and Rate Limits
The context window supports up to 100,000 tokens for combined prompt and completion. The maximum output per request is 16,000 tokens, or 2,048 if max_tokens is unset. Rate limits are 300 requests per minute and 8 concurrent requests per key. Request bodies must not exceed 8 MB. Errors and refusals do not consume credit.
Example Limits:
max_tokens: 16,000rate_limit: 300 RPM
cURL
curl https://api.storyunfiltered.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "What is the capital of France?"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.storyunfiltered.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.storyunfiltered.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)FAQ
What is the primary keyword for this service?
The primary keyword is unfiltered story, reflecting our focus on raw, uncensored content. This ensures your applications receive text without arbitrary policy refusals for lawful adult or controversial topics.
How do I authenticate my requests?
Include your API key in the Authorization header as a bearer token. You can generate this key via Google or email signup on the Get API key page. The key is valid for all endpoints under the base URL.
What are the payment and billing details?
Pricing is $0.15 per 1M input tokens and $0.50 per 1M output tokens. Payments are accepted only via crypto (USDT on TRC20 or USDC on Base) in amounts from $20 to $500. Credit never expires and bonuses apply for larger top-ups.
Get your key now
Sign up, grab the key, update the base URL. That is all you need.