Base URL and Authentication
Start every request by pointing your SDK to our base URL and providing your API key in the authorization header.
The endpoint is https://api.openrouterabliteratedmodels.com/v1. You authenticate using a Bearer token generated on your account dashboard. This key is the only credential required for all subsequent calls, ensuring your requests are routed directly to our uncensored model infrastructure without intermediate routing layers.
First Request
Send your first completion by posting a message to the chat completions endpoint using your preferred HTTP client.
The model identifier is strictly uncensored. You can send text prompts with standard parameters like temperature or top_p. The API returns a text response without content refusals for lawful adult topics, maintaining the abliterated behavior you expect from open-weight models tuned for unrestricted output.
curl https://api.openrouterabliteratedmodels.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Calculate the factorial of 5."}]
}'
Python SDK
Integrate the API into your Python projects by setting the base URL and model name in your OpenAI client configuration.
This approach lets you reuse existing code that expects an OpenAI-compatible endpoint. Pass your API key via environment variables or direct initialization. The client handles serialization and error parsing automatically, delivering raw text tokens or structured JSON depending on your response format settings.
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouterabliteratedmodels.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 SDK
Connect your Node.js applications by configuring the OpenAI package to point at our specific base URL instead of the default.
Set the apiKey and baseURL properties before making any calls. This ensures that your function calls, streaming responses, and JSON mode requests are directed to our uncensored infrastructure. You can continue using familiar methods like chat.completions.create with full compatibility.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouterabliteratedmodels.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 with SSE
Receive real-time text generation by enabling streaming mode, which delivers tokens as they become available via Server-Sent Events.
Set the stream parameter to true in your request. The API returns a series of chunks, allowing you to render text incrementally in your UI. Token usage statistics are included in the final chunk, so you can track consumption accurately without waiting for the entire response to finish generating.
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)
JSON Mode and Function Calling
Enforce structured output or enable tool usage by configuring the request format and tool definitions in your payload.
Use response_format set to json_object to ensure the model returns valid JSON without markdown wrappers. For function calling, define your tools in the request body and let the model decide when to invoke them. This supports complex workflows where the uncensored model must return structured data for downstream processing.