Flowise and Zukko: an OpenAI-compatible API for AI workflows
In Flowise, third-party models are connected through the ChatOpenAI Custom node and the Base Path parameter. Step-by-step setup, a chat example and errors.
5 min · · development · автоматизация
Flowise is a visual builder for LLM chains and agents: you drag nodes onto a canvas and wire them together. The easiest way to connect an OpenAI-compatible API in Flowise is the ChatOpenAI Custom node, which accepts any address and any model name. That's how Zukko is connected too — one fetch_... key for Claude, GPT and GLM models. Below is the step-by-step setup based on the Flowise node source code, a chat-with-memory example, a cost estimate and troubleshooting.
Which node to use
Flowise's Chat Models section has two nodes for OpenAI-compatible APIs:
- ChatOpenAI — the regular OpenAI node. Its Model Name field is a dropdown of OpenAI models that Flowise keeps internally. Zukko models such as
claude-sonnet-5aren't in that list. - ChatOpenAI Custom (shown as OpenAI Custom Model in recent versions, described as Custom/FineTuned model using OpenAI Chat compatible API). Here Model Name is a plain text field where you can enter any ID.
For Zukko you need the second node.
Connecting an OpenAI-compatible API in Flowise, step by step
- Create credentials. In Credentials, add an entry of type OpenAI API, name it, for example,
Zukko, and paste yourfetch_...key into the OpenAI Api Key field. - Open a chatflow and add the ChatOpenAI Custom node from Chat Models to the canvas.
- In Connect Credential, select the
Zukkocredentials. - In Model Name, enter the model ID, for example
claude-sonnet-5. - Open Additional Parameters and set Base Path to
https://api.zukko.pro/v1. - Connect the node to a chain or agent, save the chatflow, and send a test message in the built-in chat.
| Node parameter | Value |
|---|---|
| Connect Credential | OpenAI API credentials with a fetch_... key |
| Model Name | claude-sonnet-5, gpt-5.6-sol, glm-5.3-flash, etc. |
| Base Path (Additional Parameters) | https://api.zukko.pro/v1 |
| Temperature | 1 for claude-*, otherwise depends on the task |
| Max Tokens (Additional Parameters) | a ceiling for answer length |
| Streaming (Additional Parameters) | enable for streamed output |
| Timeout (Additional Parameters) | optional, for long answers |
Why Base Path looks like this
Base Path replaces the default OpenAI address. The client library appends /chat/completions itself, so enter the address up to and including /v1, without /chat/completions at the end. If Base Path is left empty, a request with your fetch_... key goes to OpenAI's servers and fails with an authorization error.
For the current list of model IDs, call GET https://api.zukko.pro/v1/models (see the models documentation) or open the "Models" page in the dashboard.
Example: a chat with memory and a history limit
A minimal chatflow for a chatbot:
- ChatOpenAI Custom with a Zukko model, configured as above.
- Buffer Window Memory — keeps the last k exchanges (the Size parameter).
- Conversation Chain — ties the model and memory together.
Why Buffer Window Memory rather than Buffer Memory: plain Buffer Memory sends the whole history to the model, so each message makes the request longer and more expensive. A window of the last k exchanges keeps request size roughly constant. If your bot needs long memory, increase Size and work out what it will cost.
Cost and model choice
| Model | Input / output, $ per 1M tokens | Context |
|---|---|---|
claude-opus-5-5 | 0.3 / 0.3 | 1M |
claude-sonnet-5 | 0.3 / 0.3 | 1M |
gpt-5.6-sol | 0.3 / 0.3 | 1M |
gpt-5.6-luna | 0.1 / 0.1 | 1M |
glm-5.3 | 0.1 / 0.1 | 128K |
glm-5.3-flash | 0.04 / 0.04 | 128K |
Example: a 10-message conversation with an average of 2,500 input tokens (prompt, history, question) and 400 output tokens per message. That's 10 × 2,900 = 29,000 tokens per conversation:
claude-sonnet-5: 29,000 × $0.3 / 1,000,000 = $0.0087;gpt-5.6-luna: 29,000 × $0.1 / 1,000,000 = $0.0029;glm-5.3-flash: 29,000 × $0.04 / 1,000,000 = $0.00116.
In Flowise you set the model per node, so one flow can combine a cheap model for simple steps with a more expensive one for the main answer. To see which model fits a given step, test it on 20–30 real examples and compare the results and spending in the dashboard's "Usage" section.
Common errors
Zukko models aren't in the Model Name list
You're using the regular ChatOpenAI node. Replace it with ChatOpenAI Custom, where the model name is typed in.
401
Base Path is empty and the request went to OpenAI. Or the key in the credentials was copied partially or deleted in the dashboard. Check Base Path and the key — it starts with fetch_.
404
Base Path is missing /v1, or has an extra /chat/completions. It must be exactly https://api.zukko.pro/v1.
400 on Claude models
claude-sonnet-5 and claude-opus-5-5 may reject a request with a 400 error if temperature is anything other than 1 or top_p is below 0.99. The ChatOpenAI Custom node defaults to Temperature = 0.9, and that value goes into every request. For claude-sonnet-5 and claude-opus-5-5, set Temperature = 1 and leave Top Probability unset.
402, 403, 429
402 means the balance ran out; top it up in the dashboard. 403 model_not_allowed_for_key means the model isn't on the key's allowed list. 429 means too many requests; if the flow is called from an external system, reduce the rate.
FAQ
Can I use different keys in different flows?
Yes. Create several OpenAI API credentials with different Zukko keys and pick the right one in each node. Each key in the dashboard can have daily and monthly limits and an allowed-models list — see the key limits documentation.
Do I need a separate node for Claude models?
No. Zukko converts formats itself, so Claude works through the same ChatOpenAI Custom node as GPT and GLM. The difference between formats is explained in the format selection docs.
Where can I see spending?
In the Zukko dashboard under "Usage". If each flow has its own key, spending is split by key.
Where do I start?
Create a key in the Zukko dashboard, add it to Credentials, and build the three-node chatflow from the example above.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- Translating subtitles with a neural network: SRT without broken timecodesThe main risk when translating SRT with a neural network is a broken file structure. A scheme where timecodes never reach the model, and a Python script with validation.
- Editing texts with a neural network: proofreading, style and cuttingDifferent kinds of editing need different prompts. Wording for proofreading, style and cutting, how to get edits with explanations and how not to lose the author's voice.
- A neural network for writing scripts: Bash, PowerShell and PythonA model writes scripts for routine fast, but running them blindly is risky. How to state the task, demand a safe dry-run mode and check the result before launch.
- Dify in Docker: installation, first-run setup and connecting modelsInstall Dify with Docker Compose, create the admin account and connect Claude, GPT and DeepSeek models on one key. Plus what to do when containers will not start.