# Model Catalog Queries

Lists models across providers, resolves aliases and browses provider-specific variants.

- Repository: https://github.com/cheaper-inference/OmniRoute (83611 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add cheaper-inference/OmniRoute --skill omni-models -g -a claude-code -y`
Codex: `npx skills add cheaper-inference/OmniRoute --skill omni-models -g -a codex -y`
Cursor: `npx skills add cheaper-inference/OmniRoute --skill omni-models -g -a cursor -y`
Gemini CLI: `npx skills add cheaper-inference/OmniRoute --skill omni-models -g -a gemini-cli -y`

## Description

Query available AI models across all configured providers. List models, resolve model aliases, and browse the full model catalog including provider-specific variants.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->

## Overview

Query available AI models across all configured providers. List models, resolve model aliases, and browse the full model catalog including provider-specific variants.

## Authentication

All requests require a valid Bearer token or session cookie. Obtain a token via `POST /api/auth/login` or configure `REQUIRE_API_KEY=false` for local development.

## Endpoints

### GET /api/v1/models

List available models

Returns all models available across configured providers. The discovery filters (`capability`, `min_context`, `kind`, `q`) are opt-in: without them the response is unchanged. They narrow the caller's own (key-filtered) catalog and run before `limit`/`after` paging.

```bash
curl http://localhost:20128/api/v1/models \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### POST /api/v1/models/query

Query a model shortlist

Filtered shortlist over the same catalog as `GET /v1/models` (same auth and per-key visibility). Results are ordered by `owned_by`, then `id`, and capped by `limit` (default 20, maximum 100).

```bash
curl -X POST http://localhost:20128/api/v1/models/query \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### GET /api/v1/models/health

Per-model pause state for the caller's key

Read-only liveness view over the in-memory model lockout store. `ok` means no pause observed by this instance (not a health verdict); connection-level pauses live outside the store read here. Additive: leaves GET /v1/models and its cache untouched. `retry_after` carries the shortest remaining lockout in seconds, rounded up, only when `state` is `cooling`. One documented difference from the dispatch 429 `model_cooldown` rule: a model with one lockout-covered connection and one connection-level cooldown still reads `cooling` here, while the 429 requires every connection to carry a model cooldown.

The rest: https://github.com/cheaper-inference/OmniRoute/blob/HEAD/skills/omni-models/SKILL.md
