Skip to main content

Supported providers

The gateway connects to five kinds of provider. You add a credential for one under Gateway → Credentials → New credential, then register models on it as Route calls through the gateway shows. Every provider is called through the same OpenAI-compatible endpoint, so your code does not change when you switch.

What each provider supports​

We ran each check below through the gateway on 13 November 2026, with the model named in the first column.

ProviderModel listPrices filled inStreamingTool callsImage by linkImage inlineCached tokens reported
OpenAI (gpt-4.1-mini)YesNoYesYesYesYesYes
Anthropic (claude-haiku-4-5)YesNoYesYesYesYesYes, with cache_control
Gemini (gemini-3-flash-preview)YesNoYesYesNo, send it inlineYesYes
OpenRouter, as OpenAI-compatible (openai/gpt-4o-mini)YesYes, 433 of 441 modelsYesYesYesYesYes
Runware (anthropic-claude-haiku-4-5)YesYes, 50 of 64 modelsYesPartial, not on Gemini modelsYesYesNo
  • Model list: when you add a model, the picker lists the models your key can call.
  • Prices filled in: picking a model copies its input, output and cached-input prices from the provider's list. Where the provider lists no price, you type it, and the gateway records the call's cost from the prices you saved.
  • Image by link and Image inline: an image_url part holding a public URL, or a data:image/...;base64 URL. Send an image to a model shows both.
  • Cached tokens reported: a repeated prompt returns cached_tokens in usage, and the gateway bills those tokens at the cached rate.

OpenAI, Anthropic and Gemini​

Paste your key and pick a model. There is no base URL to set.

Gemini reads images only as inline data. Sending an image link to a Gemini model returns a 400 that asks for the image bytes instead.

OpenAI-compatible​

Use this for any provider whose API takes the OpenAI chat-completions format, such as OpenRouter. The credential needs two things:

  • Base URL: the provider's API root, for example https://openrouter.ai/api/v1. The gateway calls <base URL>/chat/completions and lists models from <base URL>/models.
  • Extra headers (optional): for a provider that requires its own header on every call, one Name: value per line. These are stored in plain text, so never put a key here.

On OpenRouter, the model picker fills in prices. On other OpenAI-compatible hosts, you type them.

Runware​

A Runware credential needs only your Runware API key. Calls always go to https://api.runware.ai/v1, so the form has no base URL field. When you add a model, the picker lists every chat model your Runware key can call. Picking a model also fills in its input, output and cached-input prices, so most models need no price typed in. Runware lists no price for some models, mostly the OpenAI ones, and those you type yourself.

A few Runware models behave differently from the same model on its own provider:

  • Reasoning models such as deepseek-v4-flash spend max_tokens on thinking first. With a small limit, the answer comes back empty with finish_reason: "length".
  • minimax-m3 returns its reasoning inside <think> tags at the start of content.
  • On Gemini models, the second turn of a tool call fails with a Runware 500. Use a Claude, MiniMax or GLM model for tool loops.
  • Claude models report no prompt-cache tokens, so every input token is billed at the full input price, even with cache_control set.