Connect in two minutes.
Create a key in the console, set the base URL, pick a model id from the Models page. Three settings, any client.
- Base URL
- https://api.unrestrictable.ai/v1
- Key
- sk-unr-live-…Created in the console, shown once
- Model
- glm-5.3-uncensoredAny id from the Models page
OpenAI SDK, Python
from openai import OpenAI client = OpenAI(base_url="https://api.unrestrictable.ai/v1", api_key="sk-unr-live-…")reply = client.chat.completions.create( model="glm-5.3-uncensored", messages=[{"role": "user", "content": "Hello"}], stream=True,)for chunk in reply: print(chunk.choices[0].delta.content or "", end="")OpenAI SDK, Node
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.unrestrictable.ai/v1", apiKey: "sk-unr-live-…" });const stream = await client.chat.completions.create({ model: "glm-5.3-uncensored", messages: [{ role: "user", content: "Hello" }], stream: true,});for await (const chunk of stream) process.stdout.write(chunk.choices[0]?.delta?.content ?? "");SillyTavern
API: Chat Completion. Source: Custom (OpenAI-compatible). Custom endpoint: https://api.unrestrictable.ai/v1. API key: your key. Then Connect and pick the model from the list it loads. Sampler settings and context sizes per build are in the SillyTavern setup guide.
Janitor AI and other proxies
API: Proxy. URL: https://api.unrestrictable.ai/v1/chat/completions. Key: your key. Model: the id from the Models page. Any client that takes a custom OpenAI URL works the same way. The Janitor AI proxy guide walks through each field and the errors people hit; HammerAI, RisuAI, KoboldAI Lite, Agnai, Novelcrafter and Xoul have their own pages under guides.
OpenCode and Cline
Add an OpenAI-compatible provider with base URL https://api.unrestrictable.ai/v1 and your key, then name the model id. Coding builds such as the uncensored GLM flash code model are on the Models page.
Headers on every answer
x-uplink-request-id identifies the request for support, x-uplink-charge carries the settled charge, and streaming answers end with the usage block. A request that fails before the model answers is not charged.