n8n with an uncensored model over the OpenAI-compatible API

n8n OpenAI-compatible API setup for an uncensored model: an OpenAI credential with a custom Base URL, the OpenAI Chat Model under an AI Agent, the id typed in.

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

n8n talks to any OpenAI-compatible API through its OpenAI credential. This guide points that credential at an uncensored model: the Base URL, the OpenAI Chat Model sub-node under an AI Agent, the model id typed in, and the errors people hit on the way. The field names come from n8n's source, read on 25 October 2026.

If builds with the refusals edited out are new to you, start with abliterated vs uncensored, then come back here to wire one in.

Which way round this n8n guide goes

"n8n OpenAI-compatible API" means two opposite things, and the search results mix them. One is calling an outside model from inside a workflow. The other is exposing a workflow as an OpenAI-style endpoint for other apps. This guide covers the first only: an uncensored build as the model behind n8n's AI nodes.

Labels come from the n8n source on GitHub, read on 25 October 2026, when the latest release was n8n@2.44.6. The docs pages for these nodes do not list the Base URL field yet; the source does.

The OpenAI credential with a custom Base URL

n8n's OpenAI credential has four fields. Fill them like this:

API Key
sk-ullm-live-…
Created in the console, shown once
Organization ID (optional)
(empty)
Not used by this API
Base URL
https://api.uncensoredllm.ai/v1
Replaces the default https://api.openai.com/v1
Add Custom Header
off
Not needed

When you save, n8n tests the credential with a GET to /models under the Base URL. That call is free on this API, and it is the same one the curl further down makes. Since node version 1.1 the OpenAI Chat Model takes its Base URL from this credential, not from a node option.

Connect n8n to the OpenAI-compatible API

  1. Create a key in the console. It starts with sk-ullm-. The balance is prepaid from $10.
  2. Add a trigger, for example a chat trigger to test with, then an AI Agent node after it.
  3. On the agent's Chat Model connector, add the OpenAI Chat Model sub-node.
  4. In its credential field, create a new OpenAI credential with the values above and save it. The test should pass.
  5. Under Model, switch the mode from From List to ID and paste an id, for example glm-5.3-flash-uncensored.
  6. Turn Use Responses API off.
  7. Optional: under Options, set Maximum Number of Tokens and Sampling Temperature.
  8. Back on the agent, put your instructions in the System Message option and run the workflow.

The two steps people miss are the ID mode and the Responses switch. The next two sections say why each matters.

Type the model id instead of picking it

With the default OpenAI URL, n8n trims the From List dropdown to OpenAI's chat models. With any other Base URL, the node's model search lists every id /models returns. On this API that is every id the key can reach, the 131 uncensored builds among them. The list is searchable, but the ID mode is quicker and leaves nothing to misclick.

Setting the model by ID is also the fix a community thread on this exact setup landed on. To shorten the list instead, open the key's settings in the console and fill Models with the ids you use. /models then returns only those, and the key cannot call anything else.

Turn off Use Responses API

In node version 1.3 of the OpenAI Chat Model, Use Responses API is on by default. With it on, n8n sends OpenAI's Responses format instead of Chat Completions.

Turn it off. The daily model check calls every build on this API at /v1/chat/completions, so Chat Completions is the path known to answer. The Built-in Tools that sit under that switch (web search, file search, code interpreter) run on OpenAI's side and are not part of this setup either.

The AI Agent, tools and the Basic LLM Chain

In the current AI Agent (node version 3.1 in the source), the Chat Model connector is the only required one. Memory and Tool are optional, so an agent with no tools runs as a plain chat step. The AI Agent docs page still says to connect at least one tool. If your n8n version enforces that, the Basic LLM Chain takes the same OpenAI Chat Model sub-node with no tools at all.

Tools work only if the build handles tool calls well. The node itself shows a notice when the Base URL is overridden: not every non-OpenAI model supports tool calling or JSON response format. Test a tool on the build you chose before a workflow depends on it.

One error you will not see here is "Tools Agent requires Chat Model which supports Tools calling". In the source it fires only when the connected sub-node has no tool binding at all, and the OpenAI Chat Model always has one.

Which uncensored build to run in n8n

Workflows run unattended and often, so price per run matters more than in a chat window. Three builds, with the figures the catalog gave when this page rendered and today's verdict from the daily real-model check, which sends a fixed prompt to every model each day:

Uncensored models and their prices per million tokens
Wire formats
GLM-5.3 Flash Uncensoredglm-5.3-flash-uncensoredUncensored$0.1086$0.3802openai
GLM-5.3 Uncensoredglm-5.3-uncensoredUncensored$0.282$0.846openai
DeepSeek V4.1 Flash Abliterateddeepseek-v4.1-flash-abliteratedAbliterated$0.8488$1.6975openai

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

Model idDaily checkContext window
glm-5.3-flash-uncensoredSteady since Oct 12not published
glm-5.3-uncensoredSteady since Oct 12not published
deepseek-v4.1-flash-abliteratedSteady since Oct 19not published

Windows from the live catalog on 2026-10-27; verdicts from /proof at render.

Start high-volume steps on the flash build, and move a step to the full build if its output falls short. Changing builds is one field: the id in the sub-node. The whole family is on the uncensored GLM page.

What 1,000 workflow runs cost

The worked example: 1,000 runs, each sending about 1,500 tokens of instructions and trigger data and getting a 400-token reply.

Model1,000 runs30,000 runs
GLM-5.3 Flash Uncensored$0.32$9.45
GLM-5.3 Uncensored$0.76$22.84
DeepSeek V4.1 Flash Abliterated$1.95$58.56

Computed at render from the catalog prices on 2026-10-27: runs × 1,500 × input price, plus runs × 400 × output price.

An agent that calls tools makes more than one model request per run, and each one resends the conversation. Multiply by the number of steps your agent takes. Every per-token rate is on the pricing page.

Check the credential outside n8n

This is the request n8n's credential test makes. It is free; run it from a terminal, or from an HTTP Request node with the same URL and header.

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 and Base URL are right. A 401 says which way the key is wrong:

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 25 October 2026.

Troubleshooting n8n OpenAI credential errors

The credential test fails

Check the Base URL first: https://api.uncensoredllm.ai/v1, ending in /v1. Then the key: one from this console, not from another provider. That mix-up was the first answer in the community thread above.

The model list says No results

The list is built from /models under the Base URL. A URL without /v1 breaks it. Use the ID mode and the list stops mattering.

404 model_not_found

The id in the Model field is not in the catalog. Copy it from the curl output above or from the models page.

http
1HTTP 404
2{"error":{"message":"No such model: glm-5.3-flash-uncensord.","type":"not_found_error","param":null,"code":"model_not_found"}}

402 insufficient_balance

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

http
1HTTP 402
2{"error":{"message":"The prepaid balance does not cover this request. Top up at … to continue.","type":"insufficient_quota","param":null,"code":"insufficient_balance"}}

"Bad request - please check your parameters"

n8n shows this when it cannot read the error. Its common issues page suggests running the same call in an HTTP Request node to see the full body. Base URL, key and model id for other clients are on the docs page.

Questions

On the OpenAI credential, below API Key and Organization ID. It defaults to https://api.openai.com/v1; replace it with https://api.uncensoredllm.ai/v1.

Yes, through the credential’s Base URL. With a non-OpenAI Base URL, the OpenAI Chat Model lists every id the endpoint returns and accepts any id in ID mode. See the uncensored model list.

Any OpenAI-compatible API can sit behind the OpenAI Chat Model sub-node. This one serves abliterated and uncensored builds, billed per token from a prepaid balance. See per-token prices.

Not in the current AI Agent: only the Chat Model connector is required in n8n’s source. If your version asks for a tool, use the Basic LLM Chain with the same sub-node.

A community project for the opposite direction: it exposes n8n workflows as an OpenAI-compatible API. This guide is about calling a model from n8n.

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.