---
title: "Fal Catalog"
method: GET
path: "/media/fal-catalog"
tags: ["media"]
---

# Fal Catalog

`GET /media/fal-catalog`

## Request

- Base URL: `https://api.moda.app/v1`
- URL: `https://api.moda.app/v1/media/fal-catalog`
- Auth: HTTP bearer

fal's public model catalogue (``GET https://api.fal.ai/v1/models`` with the same query), for Voyager's model
discovery and schema checks. Served from a fleet-wide cache for up to 18 hours, then while fal fails, so one
agent pricing many models is not limited by fal per address. An ``endpoint_id`` neither Studio nor fal (asked again,
uncached) knows is a 404 ``model_not_found`` naming the closest real models (``details.suggestions``); one Studio
runs that fal does not list, or that fal answers busy, is an empty page. 503 when fal did not answer and
nothing is cached (``catalog_unavailable`` with ``Retry-After`` when fal was busy; ``catalog_invalid``, not worth retrying, when fal's answer broke its contract). 400 ``invalid_cursor`` when fal refuses ``cursor`` (one no page issued).

## Query parameters

- `endpoint_id` string, nullable
- `expand` 'openapi-3.0', nullable
- `q` string, nullable
- `category` string, nullable
- `status` 'active' | 'deprecated', nullable
- `cursor` string, nullable
- `limit` integer, nullable

## Headers

- `Moda-Version` '2026-04-12' | '2026-05-01'

## Response `200`

Successful Response

- FalCatalogPage: A page of fal's ``GET /v1/models`` catalogue, in fal's own shape (fields fal adds pass through).
  - `models` object[], required: fal's catalogue entries, with ``openapi`` when expanded.
  - `next_cursor` string, nullable: The cursor of the next page, if any.
  - `has_more` boolean, nullable: Whether another page follows.

## Other responses

- `401`: Authentication required.
- `402`: Insufficient credits for a metered operation.
- `403`: Permission denied for this scope.
- `404`: Resource not found.
- `409`: Conflict (idempotency / resource state).
- `422`: Request validation failed.
- `429`: Rate limit exceeded.
- `500`: Internal error.

## Changes

- **2026-11-03** `9ac6a3abc0f8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/moda/apis/moda-public-api/changes/media/fal-catalog/get.md)

---

[API](https://skmtc.dev/moda/apis/moda-public-api.md) - [All operations](https://skmtc.dev/moda/apis/moda-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/moda/apis/moda-public-api/revisions/9ac6a3abc0f8?raw)
