ApiframeDocs

List Models

Retrieve the curated model catalog with capabilities and credit costs.

GET /v2/models

Returns the curated model catalog: every generation model available through the API, with its human-readable label, capabilities (aspect ratios, durations, resolutions, image input support) and credit cost range.

This endpoint is public — no authentication required. Use it to discover valid model values programmatically, build model pickers, or keep pricing displays in sync without hardcoding.

Query parameters

ParameterTypeDefaultDescription
modalitystringFilter by modality: "image", "video", or "music"

Response

{
  "models": [
    {
      "id": "flux-2-pro",
      "modality": "image",
      "family": "flux",
      "label": "Flux 2 Pro",
      "description": "Latest Flux model, balanced quality and price.",
      "costMin": 6,
      "costMax": 14,
      "pricingMode": "flat",
      "aspectRatios": ["1:1", "3:4", "4:3", "9:16", "16:9"],
      "resolutions": ["0.5MP", "1MP", "2MP", "4MP"],
      "supportsImageInput": true,
      "avgCompletionMs": 15000
    },
    {
      "id": "kling-3.0",
      "modality": "video",
      "family": "kling",
      "label": "Kling 3.0",
      "description": "Latest Kling — per-second pricing, optional audio.",
      "costMin": 29,
      "costMax": 72,
      "pricingMode": "per-second",
      "aspectRatios": ["1:1", "9:16", "16:9"],
      "durations": [3, 5, 8, 10, 15],
      "supportsAudio": true,
      "supportsImageInput": true,
      "avgCompletionMs": 150000
    }
  ]
}

Response fields

FieldTypeDescription
idstringModel identifier — use this as the model value in generation requests
modalitystring"image", "video", or "music"
familystringProvider/family slug, useful for grouping (e.g. "flux", "kling")
labelstringHuman-readable display name
descriptionstringShort description of the model's strengths
costMinnumberMinimum credit cost across the model's variants
costMaxnumberMaximum credit cost across the model's variants
pricingModestring"flat", "per-second", or "per-output" — for "per-second" models, costMin/costMax are per-second rates (multiply by duration)
aspectRatiosstring[]Allowed aspect ratios in W:H format (omitted when not applicable, e.g. music)
durationsnumber[]Allowed clip durations in seconds (video/music only)
resolutionsstring[]Allowed output resolutions (e.g. "1MP", "1080p")
supportsAudiobooleanModel can produce audio (video) or vocals (music)
supportsImageInputbooleanModel accepts a reference or start image
avgCompletionMsnumberAverage completion time in milliseconds

Entries may include additional fields (such as controls) that power the Apiframe Studio UI. These are not part of the stable API contract and may change without notice — rely on the fields documented above.

For exact per-variant pricing (e.g. cost per resolution tier), see Pricing.

Code examples

# No API key required
curl "https://api.apiframe.ai/v2/models?modality=video"
import requests

response = requests.get(
    "https://api.apiframe.ai/v2/models",
    params={"modality": "video"},
)
for model in response.json()["models"]:
    print(f"{model['id']}{model['costMin']}-{model['costMax']} credits ({model['pricingMode']})")
const response = await fetch("https://api.apiframe.ai/v2/models?modality=video");
const { models } = await response.json();
console.log(models.map((m) => m.id));

Try it

GET/v2/models?modality=imageTry it

On this page