How to use Darkbloom with n8n

Updated · Checked with n8n 2.44.6 on

Short answer: yes. In n8n, create an OpenAI credential, replace its Base URL with https://api.darkbloom.dev/v1 and enter your Darkbloom key. Then add an OpenAI Chat Model node (or the OpenAI node), choose that credential and pick a model ID that Darkbloom lists, such as gemma-4-26b. A new OpenAI Chat Model node is preset to gpt-5-mini, which Darkbloom refuses with a 403, so choose the model before you run anything. Darkbloom runs open-weight models on Macs and is a public alpha, so start with a small workflow.

At a glance

ItemValue
Base URLhttps://api.darkbloom.dev/v1
KeyCreated on the API console page of the Darkbloom console. n8n keeps it encrypted in its database, in a credential that you name.
BillingPrepaid credits, charged per token, with a minimum of $0.0001 per request. Minimum deposit $0.50 (Darkbloom docs).
Model in n8nThe OpenAI Chat Model node (or the OpenAI node), with a Darkbloom model ID such as gemma-4-26b chosen from its Model list
Tested withn8n 2.44.6 on October 23, 2026
Darkbloom statusPublic alpha (Darkbloom console)
Where to set itCredentials: an OpenAI credential with its Base URL changed. n8n has no Darkbloom node.

How do I use Darkbloom with n8n?

n8n has no Darkbloom node (a search for it in n8n 2.44.6 finds nothing). It does not need one: n8n’s OpenAI credential has a Base URL field, and Darkbloom answers the same requests as OpenAI’s API. So you point an OpenAI credential at Darkbloom and use n8n’s OpenAI nodes. The steps below describe n8n 2.44.6, which we ran in Docker on our own machine. Menu names can differ in other versions, and we did not run n8n Cloud.

  1. Get a Darkbloom API key. Open the Darkbloom console and sign in, add credits (the minimum is $0.50, and Darkbloom says credits are non-refundable and never expire), then choose API console in the console’s left menu and Create API key (Darkbloom’s docs call this page Settings → API Keys). The console shows the key only once, so copy it right away. Every key spends from your prepaid balance, so add only what you are willing to spend while you test, and watch your first runs, because an AI Agent can send several requests for one message.
  2. Create an OpenAI credential that points at Darkbloom. In n8n, click + at the top of the left bar and choose New credential. Type OpenAI, choose OpenAI and click Continue. Click the name at the top, OpenAI account, and rename it Darkbloom, so you can tell it from a real OpenAI credential. Paste your key into API Key, and replace the address in Base URL with the one below. Leave Organization ID empty and everything else as it is, then click Save.
    API Key
    YOUR_DARKBLOOM_API_KEY
    Base URL
    https://api.darkbloom.dev/v1
  3. Read the connection test. When you save, n8n tests the credential by asking the Base URL for its model list. Connection tested successfully means Darkbloom accepted the key. Couldn’t connect with these settings with Unauthorized means the key is wrong, and with Not Found it means the Base URL does not end at /v1. n8n saves the credential either way, so fix the field and save again.
  4. Build a small workflow. Click + at the top of the left bar and choose New workflow. Click the large + box, choose On chat message, and close its panel. Click the + after that node, search for AI Agent and choose it. At the bottom of the AI Agent panel, click the + under Chat Model and choose OpenAI Chat Model.
  5. Choose the model. In the OpenAI Chat Model panel, check that Credential shows Darkbloom. n8n fills it in when it is your only OpenAI credential. If you choose another one later, n8n empties Model, so choose the credential first. Then open Model, keep From list and choose a Darkbloom model. n8n fills the list from Darkbloom, sorted by name, for example gemma-4-26b. Do not leave the preset, gpt-5-mini: it is not a Darkbloom model.
    Model
    gemma-4-26b
  6. Turn off Use Responses API. A new OpenAI Chat Model node in n8n 2.44.6 has this switch on, so it sends its requests to Darkbloom’s /v1/responses. That also worked in our checks, but Darkbloom’s docs describe only chat completions, so we switch it off to use /v1/chat/completions. Switching it off also hides Built-in Tools. We tried one of them, Web Search, and Darkbloom answered 400.
  7. Send a message. Close the panel. The chat is at the bottom of the canvas, with the Logs panel next to it. If the chat is hidden, click Open chat at the bottom of the canvas. Type Say hello in five words. in the message box and press Enter. The reply appears in the chat, and Logs lists the nodes that ran, how long they took and how many tokens they used.
  8. Optional: limit the length of the answers. In the OpenAI Chat Model panel, click Add Option under Options and choose Maximum Number of Tokens. Enter the most tokens you want back, with room for thinking if your model thinks first (see the models section).

What does each setting in n8n mean?

The first rows are the fields of the credential and the rest are the node settings that mattered when we tested. We left every setting that is not listed at its default.

SettingWhat to enter, and what it does
Credential: API KeyYour Darkbloom key. n8n sends it as Authorization: Bearer <key> (checked with a test server).
Credential: Organization IDLeave it empty. n8n’s docs say it is needed only if you belong to several OpenAI organizations.
Credential: Base URLhttps://api.darkbloom.dev/v1. n8n adds /models for the connection test and the model list, and /chat/completions or /responses for requests. Without /v1, Darkbloom answers 404. A trailing slash made no difference in our check.
Credential: Add Custom Header and Allowed HTTP Request DomainsOff, and All, as n8n presets them. We did not change them.
Node: CredentialThe Darkbloom credential. Changing it empties Model.
Node: ModelChoose From list, which n8n fills from Darkbloom’s model list, or By ID to type an ID. With By ID the box still holds the preset, gpt-5-mini, which is not a Darkbloom model, so replace it. Both ways worked with gemma-4-26b.
Node: Use Responses APIOn in a new node. On: n8n sends POST /v1/responses. Off: it sends POST /v1/chat/completions. Both worked with gemma-4-26b, including a tool call. Darkbloom’s docs describe only chat completions, so the steps turn it off.
Node: Built-in ToolsOffered only with Use Responses API. When we added Web Search, Darkbloom answered 400. Leave this empty.
Option: Maximum Number of TokensNot set by default. Then n8n sends no limit, and Darkbloom adds its own default of 8192 (Darkbloom docs). When we set 50, n8n sent max_tokens: 50 (chat completions) or max_output_tokens: 50 (responses), and Darkbloom stopped at 50 tokens both times.
Option: Sampling TemperatureNot sent unless you add it. When you add it, the row starts at 0.7.
Options: Timeout and Max RetriesThe rows start at 60000 (milliseconds) and 2. We did not test retries.
AI Agent option: Max IterationsThe row starts at 10. It limits how many rounds the agent may take for one message, and every round is a request (see the cost section).
Chat Trigger option: Response Mode, and AI Agent option: Enable StreamingWith Response Mode set to Streaming and Enable Streaming added to the agent, n8n sent stream: true and stream_options: {"include_usage": true}, and the reply arrived.

Which n8n nodes work with Darkbloom?

We ran the text nodes. Darkbloom’s API has no routes for several of the other things the OpenAI credential offers, as the last rows show.

Node or settingWhat we sawNotes
OpenAI Chat Model in an AI AgentWorked, with Use Responses API on or off. A Calculator tool call worked too, and so did a Simple Memory node.This is the setup in the steps above.
OpenAI Chat Model in a Basic LLM ChainWorked, through chat completions.Other nodes that take a Chat Model use the same sub-node. We ran only the Basic LLM Chain.
OpenAI node, action Message a modelWorked with gemma-4-26b. It sent POST /v1/responses.The Model list shows the IDs in capital letters, but n8n sends the real ID.
StreamingWorked. See the settings table.We tested it with the AI Agent only.
Built-in Tools: Web Search, File Search, Code InterpreterWeb Search: Darkbloom answered 400 request endpoint payload contains an unsupported item. We did not run the other two.Leave Built-in Tools empty.
Embeddings OpenAI, the OpenAI node’s Classify text for violations, Files and ConversationsNot run in n8n. Called directly, Darkbloom answers 404 endpoint POST /v1/embeddings is not implemented, and the same for /v1/moderations, /v1/files and /v1/conversations.Use another service for embeddings. Darkbloom’s README says unimplemented OpenAI endpoints answer 404.
Image, audio and video actionsNot run.

Which Darkbloom model should I use with n8n?

Use any ID that GET /v1/models returns. On October 23, 2026 it listed 12 models, shown here from the cheapest output price up, in US dollars per million tokens. Check the live prices before you rely on a number; that public list also names models that are not online. A key can be limited to some models, and Darkbloom refuses any other with a 403 (see the errors table).

Model IDContext window, tokensInput, $ per million tokensOutput, $ per million tokensFeatures Darkbloom lists
gpt-oss-20b131,072$0.018$0.09none listed
nvidia-nemotron-3.5-lightning262,144$0.025$0.12tools, reasoning
EigenLabs/Ternary-Bonsai-2-9B-MLX-2bit262,144$0.08$0.13tools, reasoning
Qwen3.5-9B262,144$0.08$0.13tools, image input
glm-5.3-flash262,144$0.065$0.18tools, reasoning, image input
gemma-4-26b131,072$0.042$0.22tools, reasoning, json mode, image input
mimo-v2.6-flash-mopd1,048,576$0.10$0.28tools, reasoning
nvidia-nemotron-3.5-super262,144$0.075$0.35tools, reasoning, json mode, image input
ternary-bonsai-2-27b262,144$0.075$0.50tools, reasoning, image input
qwen3.6-35b-a3b-vl-mtp-mxfp8262,144$0.05$0.70tools, image input
qwen3.5-35b-a3b262,144$0.065$0.75tools, image input
EigenLabs/Qwen3.8-27B-4bit-mtp262,144$0.035$2.20tools, image input

n8n’s Model list shows every model that Darkbloom returns, so a listed model can still be refused with a 403 if your key is limited to some models. An AI Agent sends tool definitions when you connect a tool, so choose a model whose Features column lists tools. We ran gemma-4-26b for every check, and EigenLabs/Qwen3.8-27B-4bit-mtp for one-line messages through both APIs. A model that thinks first spends part of the token limit on its thinking: with Maximum Number of Tokens at 30, EigenLabs/Qwen3.8-27B-4bit-mtp used all 30 and n8n showed { "output": "" } as a success.

How much does n8n cost with Darkbloom, and how do I keep it low?

Darkbloom bills the tokens you use from your prepaid balance: (input tokens × input price + output tokens × output price) ÷ 1,000,000, with a minimum of $0.0001 per request. n8n adds little to a request beyond your message, the agent’s instructions and the definitions of the tools you connect. A one-line message to gemma-4-26b was 19 tokens in and 7 or 8 out, depending on the reply, which at the October 23, 2026 prices is worth no more than $0.000003, so Darkbloom billed the minimum, $0.0001. An AI Agent with the Calculator tool answered one question with two requests (95 tokens in and 22 out, then 136 in and 27 out), and each was billed the minimum. A model that thinks pays for its thinking: EigenLabs/Qwen3.8-27B-4bit-mtp used 84 tokens out for a five-word reply, and Darkbloom billed $0.000186.

The token count in n8n’s Logs panel is only a guide, and the bill is Darkbloom’s count. With chat completions it matched: the panel showed 26 tokens for a request that Darkbloom logged as 19 in and 7 out, and 27 for 19 in and 8 out. With Use Responses API on, it showed “~14 Tokens”, an estimate.

What n8n doesWhat it costs youHow to reduce it
Every test is a real requestThe chat panel and Execute step call Darkbloom each time, and each request is billed at least $0.0001.Test with short messages, and stop once it works.
An agent can make several requests for one messageEach tool call adds a request, because the model has to answer again after it sees the tool’s result.The AI Agent’s Max Iterations option limits the rounds. With 1, our calculator question made one request and stopped with Max iterations (1) reached. The agent could not complete the task within the allowed number of iterations.
A Memory node resends the conversationWith a Simple Memory node, our second message carried 3 messages and 47 tokens in, against 24 for the first.Use a memory node only where the workflow needs the history, and start a new session for a new job.
No answer length limit by defaultn8n sends no limit, so Darkbloom adds its default of 8192 (Darkbloom docs). A long answer is billed for all its tokens.Add Maximum Number of Tokens, and leave room for thinking if the model thinks first.

Check your real spend in the Darkbloom console, or call GET /v1/payments/usage with your key (Darkbloom docs: usage history).

Where does n8n keep my API key?

Encrypted, in n8n’s own database. n8n makes an encryption key the first time it starts and saves it in a config file in its data folder (~/.n8n, which is /home/node/.n8n in Docker). With n8n’s documented Docker command, that file could be read only by its owner (mode 600). In our test the key text did not appear in the database files, and the n8n screen shows it masked. Anyone who can use the credential in n8n can run workflows with your key, so share it only with people who should spend your balance. If the key leaks, delete it in the Darkbloom console and create a new one.

PlaceWhat we saw
The database files in ~/.n8n (database.sqlite and the write-ahead file beside it)The key was not readable. The credential is stored encrypted.
n8n export:credentials --allThe key stays encrypted in the file.
n8n export:credentials --all --decryptedThe key is written as plain text. Keep that file out of Git and backups.
An exported workflowIt holds the credential’s name and ID, not the key.
The container’s logThe key did not appear.

What do the common errors mean?

In the chat panel, a failed run says only Error in workflow. Look at the Logs panel next to the chat and click OpenAI Chat Model: its Output shows n8n’s sentence first and Darkbloom’s own answer on the line below it. n8n also pops up a message that starts with Problem in node and the name of the AI Agent, followed by the first sentence. Each row was reproduced with n8n 2.44.6, except the empty-balance row.

What you seeCauseFix
Forbidden - perhaps check your credentials? and then this API key is not permitted to use model "gpt-5-mini"n8n asked for its preset model, gpt-5-mini, because Model was never changed. Darkbloom answered 403. n8n’s sentence blames the credentials, but the key is fine.Open the OpenAI Chat Model node and choose a model in the Model list.
The same two lines with another model nameDarkbloom answered 403 model_not_allowed. Either the key has an Allowed models list that does not include this model, or the ID is not a real one: Darkbloom gives the same answer for an ID that does not exist.Check the ID letter for letter against GET /v1/models. If it is listed, open the key on the console’s API console page, choose Edit, and add the model to Allowed models, or leave that list blank to allow every model.
Authorization failed - please check your credentials and then invalid API keyDarkbloom does not accept the key. This is the text its API returns for a wrong key.Copy the key again in full, without quotes or spaces, or create a new key in the console.
In the credential: Couldn’t connect with these settings and UnauthorizedDarkbloom rejected the key in the connection test. n8n still saves the credential.Paste the key again in full, or create a new key in the console, and click Retry.
In the credential: Couldn’t connect with these settings and Not Found. In a run: The resource you are requesting could not be found and 404 404 page not found, followed by a LangChain “MODEL_NOT_FOUND” linkThe Base URL does not end at /v1, so n8n asked for a path that Darkbloom does not have. The LangChain link is misleading: the model is not the problem.Set the Base URL to exactly https://api.darkbloom.dev/v1 and save the credential again.
Bad request - please check your parameters and then model is requiredThe Model field is empty. n8n empties it when you change the node’s credential.Choose the model again, after you have chosen the credential.
Bad request - please check your parameters and then request endpoint payload contains an unsupported itemA built-in tool is switched on while Use Responses API is on. We reproduced the error with Web Search and did not try the other built-in tools.Remove it under Built-in Tools, or turn Use Responses API off.
Request timed out.The request took longer than the Timeout option, which starts at 60000 milliseconds. We set it to 1 to reproduce the text, and did not wait out a real 60 seconds.Raise Timeout under Options, or choose a faster model.
Max iterations (1) reached. The agent could not complete the task within the allowed number of iterations.The AI Agent used up its Max Iterations before it had an answer. We set 1 to reproduce it, and the option starts at 10.Raise Max Iterations, or give the agent fewer tools.
The run succeeds, but the answer is { "output": "" }A model that thinks first used all of Maximum Number of Tokens for its thinking. With a limit of 30, EigenLabs/Qwen3.8-27B-4bit-mtp did.Raise the limit, remove the option, or choose a model that does not think first.
A 403 with no model namedIf your balance is too low, Darkbloom answers 403 (Darkbloom docs: insufficient balance), and every request fails the same way. n8n will probably show Forbidden - perhaps check your credentials? again.Add credits in the console under Billing.

Is Darkbloom private, and is it ready for production?

Not yet for sensitive work. Darkbloom’s quickstart calls the service “an experimental research prototype” and says not to use it in production applications, and its console labels it Public alpha. Darkbloom says prompts are encrypted to a verified provider Mac. Its security overview says the coordinator re-encrypts each request for the chosen provider and runs in a confidential VM. An independent review by Wavect (September 2026) reads Darkbloom’s technical documentation as saying that both the coordinator and the provider handle your prompt as plaintext inside protected boundaries.

n8n sends the text of your message, the earlier messages if you connect a Memory node, the instructions of the AI node, its tool list and each tool’s output to Darkbloom. Do not send secrets, customer data or code you are not allowed to share.

n8n keeps a copy of your test messages and replies for itself. In our test, the text of the messages was readable in n8n’s database files and in its event log, all in the data folder (~/.n8n). The key was not. Protect that folder and its backups like the prompts themselves.

How this guide was checked

About this guide

BloomGauge is a free Mac app for people who run Darkbloom providers, so we benefit when Darkbloom has more paying demand. We are independent of Darkbloom and not endorsed by it. Our Darkbloom sign-in links carry our referral code, BLOOMGAUGE. If you sign in to Darkbloom after opening one, Darkbloom attaches the code to your account and pays us a share of your eligible token spend. Darkbloom funds that reward, so it does not change your price.

Sources

Found something out of date? Tell us in #bloomgauge on the Darkbloom Slack or at Support.