NewPoint any agent at UberLLM — one key, every model, list price or less.

n8n with UberLLM: cheaper AI Agent models and video generation

Create an n8n OpenAI credential with your UberLLM key and Base URL https://api.uberllm.dev/v1, use it in an OpenAI Chat Model node with "Use Responses API" turned off, and pick any UberLLM model. For video, call /v1/video/generations with the HTTP Request node and poll until the job ends.

Part 1: chat models in the AI Agent

  1. Make a key on your keys page and add credit.
  2. In n8n go to Credentials → Create credential → OpenAI.
  3. Fill in:
    • API Key: your ull_… key
    • Base URL: https://api.uberllm.dev/v1 Leave Organization ID empty. Save: n8n tests the credential by listing models, and it should pass.
  4. In your workflow add an AI Agent node and, as its chat model, an OpenAI Chat Model node using that credential.
  5. In the OpenAI Chat Model node:
    • Model: choose By ID and enter deepseek/deepseek-v4.1-flash (or pick from the list, which now shows UberLLM's models)
    • Turn Use Responses API off. It is on by default in recent n8n versions. UberLLM serves the Responses API too, but this workflow was tested on chat completions.
  6. Run the workflow.

The same credential works in the Basic LLM Chain and other nodes that take a chat model.

Use the AI Agent or Basic LLM Chain with the OpenAI Chat Model node, or the HTTP Request node below. The standalone "OpenAI" node's "Message a model" action always calls the Responses API, and its built-in tools (web search, file search) run only on OpenAI's own servers.

Part 2: make a video with HTTP Request

A video takes a minute or more, so it is a job: start it, wait, check, repeat until it is done.

Credential. Create a Bearer Auth credential with Bearer Token = your ull_… key. (Or pick the OpenAI credential from Part 1 under Predefined Credential Type; it sends the same header.)

Node 1, HTTP Request (start the job)

  • Method: POST
  • URL: https://api.uberllm.dev/v1/video/generations
  • Authentication: Generic Credential Type → Bearer Auth
  • Send Body: on, JSON:
{
  "model": "fal-ai/vidu/q3/text-to-video/turbo",
  "prompt": "a red ball bouncing on green grass, slow motion",
  "duration_seconds": 5
}

The answer has the job id, status (queued) and estimated_cost_usd.

Node 2, Wait: Resume = After Time Interval, 10 seconds.

Node 3, HTTP Request (check the job)

  • Method: GET
  • URL: https://api.uberllm.dev/v1/video/generations/{{ $('HTTP Request').item.json.id }} (use your first node's name)
  • Same Bearer Auth credential

Node 4, If: {{ $json.status }} is queued or running → connect back to the Wait node. Otherwise continue.

Node 5: when status is succeeded, the video link is in results[0].url. Download it with one more HTTP Request (GET, same credential, and under Options → Response set Response Format to File) or pass the link on. failed comes with error.message in plain words, and a failed job costs nothing.

Each model makes only certain lengths and sizes. If you ask for one it does not make, the first request is refused with a message listing what it does, before anything is charged. Every model's options are on its page.

Troubleshooting

  • Credential test fails: Base URL must be https://api.uberllm.dev/v1 exactly; the key must have no spaces.
  • 404 from OpenAI Chat Model: the credential's Base URL is missing /v1.
  • The agent never calls tools: pick a model from the first table; very small models skip tools.
  • 400 wrong_endpoint: a video model was sent to the chat node, or a chat model to the video URL.
  • The loop never ends: the If node must compare status, and the Wait must come before every check.
  • 402 insufficient credits: add credit on the credits page. A video holds its max_cost_usd while it runs.

Keep reading

Models for AI Agent workflows

Reliable tool calls; the first one is in the steps.

ModelModel id (paste this)Price now
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flash$0.0070 in · $0.0783 out / 1M
Gemini 3.5 Flashgoogle/gemini-3.5-flash$0.0592 in · $0.3555 out / 1M
Claude Sonnet 5.5anthropic/claude-sonnet-5.5$0.7610 in · $3.80 out / 1M
GPT-5.5openai/gpt-5.5$0.9625 in · $5.78 out / 1M
Kimi K3moonshotai/kimi-k3$0.0032 in · $0.2475 out / 1M
GLM 5.3z-ai/glm-5.3$0.0023 in · $0.0469 out / 1M
Gemma 3 27Bgoogle/gemma-3-27b-it$0.0188 in · $0.0471 out / 1M
Qwen3 VL 235B A22Bqwen/qwen3-vl-235b-a22b-instruct$0.0022 in · $0.0199 out / 1M

Prices at the last hourly build, no fee added · every model →

Video models for the HTTP Request workflow

Text-to-video models online now, with today’s price. The first one is in the request below.

ModelModel id (paste this)Price now
Vidu Q3 Turbo Text to Videofal-ai/vidu/q3/text-to-video/turbo$0.028 / job
Kling 3 Standard Text to Videofal-ai/kling-video/v3/standard/text-to-video$0.0672 / job
Veo 3.1 Fast Text to Videofal-ai/veo3.1/fast$0.08 / job
Kling 2.5 Turbo Pro Text-to-Videokling/kling-2-5-turbo-pro-text-to-video$0.042 / job
Wan 2.7 Text-to-Videowan/wan-2-7-text-to-video$0.08 / job

Prices at the last hourly build, no fee added · every model →

FAQ

How do I use UberLLM in n8n?

Create an OpenAI credential with your UberLLM key and Base URL https://api.uberllm.dev/v1, then use it in the OpenAI Chat Model node of an AI Agent with "Use Responses API" turned off.

Can n8n make videos with UberLLM?

Yes, with the HTTP Request node: POST to https://api.uberllm.dev/v1/video/generations, wait, GET the job until its status is succeeded, then download results[0].url.

Should "Use Responses API" be on or off in n8n with UberLLM?

Off is the tested setting. UberLLM serves both chat completions and the Responses API, but the AI Agent workflow on this page was verified with the OpenAI Chat Model node on chat completions.