RisuAI custom API setup with an uncensored model

RisuAI custom API setup for an uncensored roleplay build: the URL, Key/Password, Request Model and Format fields, plus what a session costs.

Steps checked October 24, 2026 · prices as of October 27, 2026

A RisuAI custom API connection is one model entry and four fields: the URL, Key/Password, Request Model and Format. This guide fills them with an uncensored roleplay build and prices a session on four of them. The labels come from RisuAI's own source, read on 24 October 2026, so they match the current app rather than the "Reverse Proxy" wording in older guides.

If builds with the refusals edited out are new to you, start with AI with no restrictions, then come back here to connect one.

What RisuAI is

RisuAI is an open-source front end for AI roleplay and character chat. Its source is on GitHub at kwaroran/RisuAI, and it runs in the browser at risuai.net as well as in desktop builds. It has no model of its own. It sends each chat to the model you pick in its settings, and one of the options in that list is a custom endpoint that speaks the OpenAI format.

That option has changed names over the years. Older community guides call it "Reverse Proxy". In RisuAI's current source (main branch, read on 24 October 2026) the model entry is named Custom API. The English string for its URL field is still "Reverse Proxy", so you may see both words. They are the same setting.

The RisuAI custom API fields

Choosing Custom API shows four fields under the model picker. These are the values for this API, with the labels from RisuAI's Bot Settings page and its English strings.

URL
https://api.uncensoredllm.ai/v1/chat/completions
The full path, ending in /chat/completions
Key/Password
sk-ullm-live-…
Created in the console, shown once
Request Model
gemma-4-31b-fabled
Any id from the Models page, typed exactly
Format
OpenAI Compatible
The first option in the list

Why the full path: with the full /chat/completions URL, RisuAI sends the request to exactly that address. With Autofill Request URL on, RisuAI also accepts https://api.uncensoredllm.ai/v1 and appends /chat/completions itself, because the URL ends in v1. The full path works in both cases, so it is the one to paste.

Connect RisuAI to the uncensored API

  1. Create a key in the console. It starts with sk-ullm- and is shown once, so paste it somewhere safe first. The balance is prepaid from $10; a key with nothing on it is accepted but the first message answers 402.
  2. Pick a model id from the uncensored model list or from the table in the next section. Copy it rather than typing it.
  3. In RisuAI, open Settings and go to Bot Settings.
  4. Set Model to Custom API. The URL, Key/Password, Request Model and Format fields appear.
  5. Paste https://api.uncensoredllm.ai/v1/chat/completions into URL.
  6. Paste the key into Key/Password. The placeholder says to leave it blank if there is no password; this API needs the key on every request.
  7. Type the id into Request Model, for example gemma-4-31b-fabled.
  8. Leave Format on OpenAI Compatible. The other options (Anthropic Claude, Mistral, Google Cloud and the OpenAI Response API) expect a different request shape.
  9. Open a chat with any character and send a message. A reply means the URL, the key and the model id are all right.

RisuAI also has a second route: a Custom Models list where each entry carries its own URL, format and key, plus an Additional Parameters box. Per RisuAI's help text, that box adds fields to the request body, and a key written as header::Name becomes a header instead. The Bot Settings route above is enough for one model.

Which uncensored build to pick for RisuAI

All four builds below carry the roleplay tag in the catalog, and all four take the OpenAI wire format that the Custom API entry sends. The prices and windows are read from the live catalog when the page renders.

Uncensored models and their prices per million tokens
Wire formats
Gemma 4 31B Fabledgemma-4-31b-fabledRoleplay$0.35$1.575262Kopenai
Qwen3.8 27B Antislopqwen3.8-27b-antislopRoleplay$0.35$2.10262Kopenai
Gemma 4 26B-A4B ChimeraXgemma-4-26b-a4b-chimeraxRoleplay$0.42$1.33262Kopenai

Prices per million tokens, read from the live catalog on 2026-10-27.

Model idContext window in the catalogMax Context Size to start from
gemma-4-31b-fabled262,144 tokens32768
qwen3.8-27b-antislop262,144 tokens32768
gemma-4-26b-a4b-chimerax262,144 tokens32768

Context windows read from the live catalog on 2026-10-27. The start value is the window capped at 32,768 tokens.

RisuAI's strings label its context setting Max Context Size. It decides how much card, lorebook and history goes out with each message, and every token of it is billed as input. Keep it at or under the model's window. The two Gemma 4 tunes belong to a larger family on the uncensored Gemma page, and the Qwen 3.8 tune to the uncensored Qwen page.

Samplers RisuAI sends with a custom API

RisuAI's model list gives the Custom API entry a fixed set of sampler parameters: temperature, top_p, frequency_penalty, presence_penalty, repetition_penalty, min_p, top_a, top_k and a thinking-token budget. It also marks the entry as streaming, so replies appear as they are written. These are the values we start a roleplay preset from; each one is a starting point to adjust, not a setting the model requires.

SettingStart valueWhy
Temperature0.91.0 is the model's own distribution. Drop to 0.7 if a build rambles.
Top P0.95Cuts the long tail of unlikely tokens. 1.0 turns it off.
Top K0Off. Top P already narrows the choice.
Repetition Penalty1.051.0 is off. A small value breaks loops on pet phrases in long chats.
Frequency and Presence Penalty0Leave at 0 when Repetition Penalty is set, so the same tokens are not penalised twice.
Max Response Size300About one paragraph. A build that thinks before it answers needs 1,000 or more, or the reply is cut inside the thinking step.

A reply that stops mid-sentence is not an error. It means the response hit Max Response Size; raise it and regenerate. The charge is per token either way, so a longer limit only costs more when the model writes more.

What a RisuAI session costs

The worked example: 200 messages in one sitting, each reply about 250 tokens. The short column assumes about 4,000 tokens of card and history per message; the long column assumes 16,000, a lorebook and a long chat.

Model200 messages at 4,000 context200 messages at 16,000 context
Gemma 4 31B Fabled$0.36$1.20
Qwen3.8 27B Antislop$0.39$1.23
Gemma 4 26B-A4B ChimeraX$0.40$1.41

Computed at render from the catalog prices on 2026-10-27: messages × prompt tokens × input price, plus messages × 250 × output price.

Input dominates: 200 × 4,000 is 800,000 input tokens against 50,000 output tokens. A shorter card, a trimmed lorebook and a lower Max Context Size move the bill more than the choice of model. Every per-token rate is on the pricing page.

Check the key and the model id before RisuAI

Before you open RisuAI, this request lists the model ids your key can reach. It costs nothing and takes a second. Swap in your key and run it from a terminal.

curl
1curl https://api.uncensoredllm.ai/v1/models \
2 -H "Authorization: Bearer sk-ullm-live-…"

A 200 with a list of ids means the key is good. If the id you put in Request Model is in that list, the only field left to get wrong is the URL. A 401 means the key, and the message says which way:

http
1HTTP 401
2{"error":{"message":"No API key was sent.","type":"authentication_error","param":null,"code":"invalid_api_key"}}
http
1HTTP 401
2{"error":{"message":"The API key is not valid.","type":"authentication_error","param":null,"code":"invalid_api_key"}}

Both bodies as the API returned them on 24 October 2026.

Troubleshooting RisuAI custom API errors

401: the key

"No API key was sent." means Key/Password is empty. "The API key is not valid." means it is wrong, cut short or revoked. Create a fresh key in the console and paste it whole.

404: the model id or the URL

A 404 with the code model_not_found means the id in Request Model is not in the catalog: a typo, a display name instead of an id, or a build that has since left. Run the request above and copy the id from its output. A 404 without that code means the URL is wrong. The usual cause is a doubled path such as /chat/completions/chat/completions, or a missing /v1. Paste the URL from this guide again.

402: the balance

The prepaid balance is at zero. Top up in the console; a request refused with 402 is not charged.

Browser errors (CORS)

The web build of RisuAI calls the API straight from the browser. The API allows calls from any origin, including the Authorization header (checked on 24 October 2026), so no proxy in between is needed and the key goes only to the API.

The daily real-model check sends a fixed prompt to every model each day, so the model behind an id is the one on its label. Base URL, key and model id for other clients are on the docs page.

Questions

RisuAI itself is open source on GitHub (kwaroran/RisuAI). The model you connect is billed by its API: here per token, prepaid from $10, with no subscription. See per-token prices.

In Settings, then Bot Settings: set Model to Custom API. That entry is what older guides call Reverse Proxy, and its URL field is still labelled Reverse Proxy in RisuAI’s English strings.

The full path: https://api.uncensoredllm.ai/v1/chat/completions. With Autofill Request URL on, https://api.uncensoredllm.ai/v1 also works, because RisuAI appends /chat/completions to a URL that ends in v1.

The model id exactly as the catalog lists it, for example gemma-4-31b-fabled. A display name or a typo answers 404 model_not_found. See the uncensored model list.

OpenAI Compatible. Every model in the catalog takes the OpenAI wire format; the other Format options send a different request shape.

Yes. The builds here are abliterated or uncensored fine-tunes, so the change is in the weights, not in a prompt, and there is no jailbreak text to add to the card. See AI with no restrictions, explained.

Get a keyPrepaid from $10, no subscription.

New models and price changes, once a month.

New uncensored builds with their prices, price moves, and what the daily model check found.