# Discover models Select model IDs and capabilities from the live catalog. ## GET /api/generate/models Requires **read** scope. Returns `{models, accountingPeriod: "UTC calendar month"}`. ```bash curl https://letsgen.app/api/generate/models \ -H "Authorization: Bearer $LETSGEN_API_KEY" ``` Each model contains `id`, `name`, `kind` (`image`, `video`, `audio`, or `text`), and `capabilities`. Image entries also include `available` and `baseGems`. Reviewed text and audio entries include `available`. Video entries currently do not include an availability flag or price. A catalog entry is not a guarantee that every configuration can be submitted. ## Choose inputs Image capabilities describe supported dimensions, resolutions, reference inputs, and output constraints. Video capabilities include `inputs`, `aspectRatios`, `durations`, `resolutions`, `audio`, and applicable reference counts. Use these values to constrain your UI. Set video `parameters.mode` explicitly to a supported workflow. Some limits change with resolution or references: check `maxReferenceImagesByResolution` and `referenceDurations` when provided. Do not invent a universal ratio, duration, resolution, or provider ID. Audio currently lists `letsgen-voice` (speech and voice cloning) and `suno-v6` (music). Text IDs come from the enabled reviewed text catalog. Discover them at runtime rather than copying a provider's full catalog. `baseGems` is a base cost hint for images, not a binding quote for every configuration. Submit with an approved `maxGems`; the server computes the authoritative price. The API does not currently expose a separate public quote endpoint or full per-model input schema.