curl -X GET "https://app.hoox.video/api/public/v1/asset/models?type=video&provider=kling" \
-H "Authorization: Bearer your_api_key"
import requests
url = "https://app.hoox.video/api/public/v1/asset/models"
params = {"type": "video", "provider": "kling"}
headers = {"Authorization": "Bearer your_api_key"}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const url = new URL('https://app.hoox.video/api/public/v1/asset/models');
url.searchParams.set('type', 'video');
url.searchParams.set('provider', 'kling');
const response = await fetch(url, {
headers: { 'Authorization': 'Bearer your_api_key' },
});
const data = await response.json();
console.log(data);
{
"type": "video",
"provider": "kling",
"models": [
{
"name": "kling-pro",
"label": "Kling 2.6 Pro",
"base_cost": 7.5,
"has_audio": true,
"capabilities": {
"max_images": 1,
"min_images": 0,
"supported_aspect_ratios": ["16:9", "9:16", "1:1"],
"default_aspect_ratio": "9:16",
"supported_durations": [5, 10],
"default_duration": 5
}
}
],
"count": 1
}
{
"error": "Validation failed",
"details": [
{ "code": "invalid_value", "message": "type must be 'image' or 'video'", "field": "type" }
]
}
Assets
List Asset Models
List all available asset generation models with their capabilities, optionally filtered
GET
/
api
/
public
/
v1
/
asset
/
models
curl -X GET "https://app.hoox.video/api/public/v1/asset/models?type=video&provider=kling" \
-H "Authorization: Bearer your_api_key"
import requests
url = "https://app.hoox.video/api/public/v1/asset/models"
params = {"type": "video", "provider": "kling"}
headers = {"Authorization": "Bearer your_api_key"}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const url = new URL('https://app.hoox.video/api/public/v1/asset/models');
url.searchParams.set('type', 'video');
url.searchParams.set('provider', 'kling');
const response = await fetch(url, {
headers: { 'Authorization': 'Bearer your_api_key' },
});
const data = await response.json();
console.log(data);
{
"type": "video",
"provider": "kling",
"models": [
{
"name": "kling-pro",
"label": "Kling 2.6 Pro",
"base_cost": 7.5,
"has_audio": true,
"capabilities": {
"max_images": 1,
"min_images": 0,
"supported_aspect_ratios": ["16:9", "9:16", "1:1"],
"default_aspect_ratio": "9:16",
"supported_durations": [5, 10],
"default_duration": 5
}
}
],
"count": 1
}
{
"error": "Validation failed",
"details": [
{ "code": "invalid_value", "message": "type must be 'image' or 'video'", "field": "type" }
]
}
Overview
Returns a summary of every model available for asset generation. Each model includes its provider, type, capabilities (aspect ratios, resolutions, durations, etc.), tags, and base cost. Use this to discover which models exist and what they can do. For the full JSON schema of an individual model (including input schema and settings), use Get Model.Authentication
This endpoint requires API key authentication. Include your API key in the
Authorization header.Query Parameters
string
Filter by media type:
image or video.string
Filter by provider (e.g.
google, kling, bytedance, flux, sora, xai).string
Filter by tag (e.g.
motion-control, video-edit, extend, first-last-frames, new).Response
array
Array of model summary objects.
Show model summary
Show model summary
string
Model identifier — use this in the
model field of /asset/start.string
Human-readable model name.
string
image or video.string
Omitted from each item when filtering by
provider (hoisted to the root — see note below).array
Omitted entirely when the model has no tags.
number
Base credit cost (for the model’s default configuration).
boolean
array
Plan names required to use this model (empty if available on all plans).
object
Includes
max_images, min_images, supported_aspect_ratios, default_aspect_ratio, supported_resolutions, default_resolution, supported_durations, default_duration, input_types, resolution_constraints. Durations are expressed in seconds (numbers).number
Number of models in the response (after filtering).
Hoisted filters. When you filter by
type and/or provider, that value is the same for every result, so it is returned once at the root of the response and omitted from each item (to save payload size). Unfiltered requests keep type and provider on each item.Example
curl -X GET "https://app.hoox.video/api/public/v1/asset/models?type=video&provider=kling" \
-H "Authorization: Bearer your_api_key"
import requests
url = "https://app.hoox.video/api/public/v1/asset/models"
params = {"type": "video", "provider": "kling"}
headers = {"Authorization": "Bearer your_api_key"}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const url = new URL('https://app.hoox.video/api/public/v1/asset/models');
url.searchParams.set('type', 'video');
url.searchParams.set('provider', 'kling');
const response = await fetch(url, {
headers: { 'Authorization': 'Bearer your_api_key' },
});
const data = await response.json();
console.log(data);
{
"type": "video",
"provider": "kling",
"models": [
{
"name": "kling-pro",
"label": "Kling 2.6 Pro",
"base_cost": 7.5,
"has_audio": true,
"capabilities": {
"max_images": 1,
"min_images": 0,
"supported_aspect_ratios": ["16:9", "9:16", "1:1"],
"default_aspect_ratio": "9:16",
"supported_durations": [5, 10],
"default_duration": 5
}
}
],
"count": 1
}
{
"error": "Validation failed",
"details": [
{ "code": "invalid_value", "message": "type must be 'image' or 'video'", "field": "type" }
]
}
Was this page helpful?

