# Run Liquid AI's small models and 160 more from LLM API in AI Gateway

> Two new providers add Liquid AI's small LFM3 models and more than 160 models from LLM API, including Amazon Nova, Llama, and ElevenLabs voices, on your ngrok credits or your own keys.

- Date: 2026-11-09
- Shipped by: Nijiko Yonskai, Alice Wasko, and Brenden Ehlers
- Products: AI Gateway
- URL: https://ngrok.com/changelog/ai-gateway-llm-api-liquid-ai

Say your on-call robot needs a bouncer: a cheap, fast model that decides whether a page is worth waking up for. Two new providers in AI Gateway sent candidates to the audition.

We sent each candidate two pages. Every one said **WAKE** when the production database went down. The second page came from a thirsty office plant, with its soil moisture sensor at 12%. LFM2.5-24B-A2B, Amazon Nova Pro, and Llama 3.3 70B all said **SNOOZE**. LFM3-1.7B said **WAKE** six times out of seven. It's either overcautious or very fond of that plant.

## Liquid AI

[Liquid AI](https://www.liquid.ai/) builds small models that answer fast and cost little. LFM3-1.7B, our plant enthusiast, costs $0.08 input and $0.20 output per 1M tokens. AI Gateway serves these Liquid models on your ngrok credits:

- `liquid/lfm3-1.7b` and `liquid/lfm2.5-24b-a2b` for text.
- `liquid/lfm3-vl-2b` for text and images.
- `liquid/lfm3-audio-2b` and `liquid/lfm3-omni-2b`, which take audio input and can reply with audio. Audio tokens cost more than text tokens.
- `liquid/d1`, `liquid/d1.1`, and `liquid/d1-ultra`, decision models that take the same System One requests as [Jev](https://ngrok.com/changelog/ai-gateway-typesafe-jev) and return typed answers with probabilities.

![AI Gateway Models page in dark mode, filtered to provider:liquid, showing eight Liquid AI models: LFM3-1.7B, d1, d1-ultra, d1.1, LFM2.5-24B-A2B, LFM3-Audio-2B, LFM3-Omni-2B, and LFM3-VL-2B with their context windows, modalities, and token prices.](https://ngrok.com/blog-assets/images/2026-11-09-ai-gateway-llm-api-liquid-ai/liquid-models-dark.png)

## LLM API

[LLM API](https://llmapi.ai/) serves models from many labs behind one API. Through AI Gateway, it adds more than 160 models, and 100 of them run on your ngrok credits. Dozens aren't available from any other built-in provider, including Amazon Nova (`amazon/nova-pro`), Meta's Llama 3.3 70B (`meta-llama/llama-3.3-70b-instruct`), Mistral Large 3 (`mistral/mistral-large-2512`), and ElevenLabs, Cartesia, and Deepgram voices on the speech endpoint.

LLM API also serves models that other providers already offer, such as Gemma 4. A bare model ID still goes to the model's author first. To send a request through LLM API, prefix the ID, such as `llmapi:google/gemma-4-31b-it`.

Some LLM API models, including every Claude model, work only with your own LLM API key. On [**Models**](https://app.ngrok.ai/models), filter by `provider:llmapi` and check each model's providers to see which ones your credits cover.

Both providers also accept your own keys. Add a Liquid AI or LLM API key on [**Providers**](https://app.ngrok.ai/providers), and that provider bills you directly.

## Get started

[Create an ngrok account or sign in](https://app.ngrok.ai/). Create an [**access key**](https://app.ngrok.ai/keys) that allows Liquid AI or LLM API, and confirm your account has credits. The chat models here accept OpenAI chat completions requests.

Optionally, show the plant alert to a few candidates in the [playground](https://app.ngrok.ai/playground).

Follow the [**setup guide**](https://app.ngrok.ai/getting-started) and select **OpenAI** and **TypeScript**.

Install the OpenAI SDK and TypeScript runner:

```bash
npm install openai && npm install --save-dev tsx
```

Save your ngrok access key in `.env.local`. Keep this file out of version control:

```dotenv
AI_GATEWAY_API_KEY=your_access_key_here
```

Use an ES module project (`"type": "module"` in `package.json`) for top-level `await`. Save this example as `index.ts`:

```typescript
import OpenAI from "openai";

const client = new OpenAI({
	baseURL: "https://gateway.ngrok.ai/v1",
	apiKey: process.env.AI_GATEWAY_API_KEY,
});

const response = await client.chat.completions.create({
	model: "liquid/lfm3-1.7b",
	messages: [
		{
			role: "system",
			content: "You triage pages for an on-call robot. Reply with one word: WAKE or SNOOZE.",
		},
		{ role: "user", content: "Alert: the production database is down and checkout returns 500s." },
	],
});

console.log(response.choices[0]?.message.content);
```

Run the example from your project directory:

```bash
node --env-file=.env.local --import tsx index.ts
```

It prints `WAKE`. Your robot can read that one word and decide whether to get out of bed. Swap the alert for the office plant to see which candidates hold their nerve. Answers can vary between runs.

To hold the audition yourself, change `model` to `"liquid/lfm2.5-24b-a2b"`, `"amazon/nova-pro"`, `"meta-llama/llama-3.3-70b-instruct"`, or `"mistral/mistral-large-2512"`.

Open [**Activity**](https://app.ngrok.ai/activity), find each triage request, and inspect its model, provider, status, token usage, and cost. Each of our LFM3-1.7B verdicts cost less than two hundredths of a cent.
