Skip to content

List Models

GET /v1/tasks/models

Returns models that are both available and executable for the current Task API key, including each model's effective user price, modality, capabilities, and parameter constraints.

The endpoint is scoped by the API key. A key may select a different plan for each model, while models without an explicit selection use their model-specific default. Two Task API keys owned by the same user may therefore return different prices and constraints. Requests do not accept a plan parameter, and public model names stay the same across plans. If one selection becomes invalid, that model returns to its own default without changing other model selections.

Configured catalog aliases are also accepted on submission. The server normalizes an alias to its public model name before creating the task, so task responses, model listings, and task cost fields all use the same public name instead of a channel-specific upstream model.

The list also checks the execution path. Image, video, and 3D models all require an effective plan with at least one enabled channel-model route whose adapter matches the modality. Creating only a model configuration does not expose it. No 3D adapter is currently registered, so no 3D model is returned yet.

bash
curl https://api.llmapi.site/v1/tasks/models \
  -H 'Authorization: Bearer YOUR_TASK_API_KEY'

Response — 200 OK

json
{
  "data": [
    {
      "model": "gemini-3.1-flash-image",
      "modality": "image",
      "status": "active",
      "pricing_mode": "image_matrix",
      "pricing_rules": {
        "unit": "usd_per_image",
        "prices": {
          "0.5K": 0.03,
          "1K": 0.05,
          "2K": 0.1,
          "4K": 0.5
        }
      },
      "capabilities": {
        "image_generation": true,
        "image_edit": true,
        "reference_image": true,
        "video_generation": false,
        "model_3d_generation": false
      },
      "parameter_constraints": {
        "supported_image_sizes": ["0.5K", "1K", "2K", "4K"],
        "supported_aspect_ratios": ["1:1", "1:4", "1:8", "2:3", "3:2", "3:4", "4:1", "4:3", "4:5", "5:4", "8:1", "9:16", "16:9", "21:9"],
        "min_images": 1,
        "max_images": 10,
        "max_input_images": 10
      }
    }
  ]
}

Modality and Capability Fields

FieldDescription
modalityimage, video, or 3d.
capabilities.image_generationGenerates images.
capabilities.image_editSupports image edit or repaint.
capabilities.reference_imageAccepts reference images; constraints still define counts and roles.
capabilities.video_generationGenerates video.
capabilities.model_3d_generationGenerates 3D models.

parameter_constraints is sparse and only includes fields applicable to the model:

FieldModalitiesDescription
supported_image_sizesImageAvailable image size tiers.
supported_aspect_ratiosImageAvailable image ratios.
min_images, max_imagesImageResult image count range.
max_input_imagesImageMaximum image-task reference count.
max_input_assetsVideo, 3DMaximum number of params.inputs assets. The current public parser reports and enforces 16.

Executable video entries use the same model-list shape. Video duration, resolution, aspect-ratio, and audio value sets are not currently advertised as model-list constraints:

json
{
  "model": "seedance-2-0-fast",
  "modality": "video",
  "pricing_mode": "video_duration",
  "pricing_rules": {
    "unit": "usd_per_video_second",
    "unit_seconds": 1,
    "step_seconds": 1,
    "minimum_seconds": 1,
    "price": 0.15
  },
  "capabilities": {
    "image_generation": false,
    "image_edit": false,
    "reference_image": false,
    "video_generation": true,
    "model_3d_generation": false
  },
  "parameter_constraints": {
    "max_input_assets": 16
  }
}

This example documents the response shape, not a guarantee that this model is enabled for a particular key. Always use the live response as the availability source. For video, consult the selected upstream model's documentation for supported values; the common parser only validates the public field types and shape before the adapter builds the provider request.

Current pricing_mode values are image_matrix, video_duration, and per_request. Their pricing_rules.unit values are usd_per_image, usd_per_video_second, and usd_per_request, respectively. Prices are denominated in USD. Duration pricing uses unit_seconds, step_seconds, and minimum_seconds.

Parameter Rules

Image models use the following parameter rules:

  • params.prompt is required.
  • params.n, when present, must be an integer from 1 to 10.
  • Use params.image_size and params.aspect_ratio for portable sizing.
  • params.image_size is classified into configured tiers such as 0.5K, 1K, 2K, 3K, or 4K for routing and billing.
  • Edit tasks require params.images[].image_url.
  • Put upstream-specific options in flat params.extra_body.

See Model Specs for common model and protocol size mappings. The current response remains the source of truth for available specs.

extra_body is shallow-merged into the selected upstream request after LLMAPI derives provider-specific fields from the portable task params. If extra_body changes the final upstream count or size, billing uses the final parsed specification; unit prices still come from the requested model's effective plan on the current key.

Video models require a non-empty prompt, a positive integer duration, and non-empty resolution and aspect_ratio strings. Optional generate_audio must be boolean. inputs accepts at most 16 public HTTP(S) assets and is converted by the selected adapter. Put protocol-specific controls in params.provider_options.

Syntax-invalid parameters return a 400 error with a message naming the offending field. If the available routes do not support the requested modality, parameters, or asset combination, submission or execution returns TASK_NO_CAPABLE_ROUTE. If an upstream image result count or size differs from the request, the task remains successful and the mismatch is recorded in the query response diagnostics.

Errors

StatusCause
401Missing or invalid API key.
403API key is not enabled for Task API.
503Task API is disabled or temporarily unavailable.