Skip to content
Get started

Description

Retrieve
models.description.retrieve(strmodel_id, DescriptionRetrieveParams**kwargs) -> DescriptionRetrieveResponse
GET/models/{modelId}/description
Update
models.description.update(strmodel_id, DescriptionUpdateParams**kwargs) -> DescriptionUpdateResponse
PUT/models/{modelId}/description
ModelsExpand Collapse
class DescriptionRetrieveResponse:
description: Description
assets: List[DescriptionAsset]

The list of assets referenced by the Markdown {asset} tag in the description.

id: str

The asset ID (example: “asset_GTrL3mq4SXWyMxkOHRxlpw”)

author_id: str

The author user ID (example: “dcf121faaa1a0a0bbbd9ca1b73d62aea”)

kind: Literal["3d", "audio", "document", 5 more]

The kind of asset

One of the following:
"3d"
"audio"
"document"
"image"
"image-hdr"
"json"
"text"
"video"
mime_type: str

The mime type of the asset (example: “image/png”)

owner_id: str

The owner (project) ID (example: “proj_23tlk332lkht3kl2” or “team_dlkhgs23tlk3hlkth32lkht3kl2” for old teams)

privacy: Literal["private", "public", "unlisted"]

The privacy of the asset

One of the following:
"private"
"public"
"unlisted"
properties: DescriptionAssetProperties

The properties of the asset, content may depend on the kind of asset returned

size: float
animation_frame_count: Optional[float]

Number of animation frames if animations exist

bitrate: Optional[float]

Bitrate of the media in bits per second

bone_count: Optional[float]

Number of bones if skeleton exists

channels: Optional[float]

Number of channels of the audio

char_count: Optional[float]

Number of Unicode code points in the text. Code-point-aware (so a non-BMP emoji counts as 1) but not full grapheme-cluster aware (a ZWJ sequence still counts as several).

classification: Optional[Literal["effect", "interview", "music", 5 more]]

Classification of the audio

One of the following:
"effect"
"interview"
"music"
"other"
"sound"
"speech"
"text"
"unknown"
codec_name: Optional[str]

Codec name of the media

description: Optional[str]

Description of the audio

dimensions: Optional[List[float]]

Bounding box dimensions [width, height, depth]

duration: Optional[float]

Duration of the media in seconds

face_count: Optional[float]

Number of faces/triangles in the mesh

format: Optional[str]

Format of the mesh file (e.g. ‘glb’, etc.)

frame_rate: Optional[float]

Frame rate of the video in frames per second

has_animations: Optional[bool]

Whether the mesh has animations

has_full_preview: Optional[bool]

True when preview holds the entire content unmodified — consumers can use it directly without fetching asset.url. False or undefined means the content exceeds the preview budget and consumers must fetch the full body from S3 to read past the preview.

has_normals: Optional[bool]

Whether the mesh has normal vectors

has_skeleton: Optional[bool]

Whether the mesh has bones/skeleton

has_u_vs: Optional[bool]

Whether the mesh has UV coordinates

height: Optional[float]
nb_frames: Optional[float]

Number of frames in the video

preview: Optional[str]

Leading slice of the content used for inline UI display and as a search shortcut. Capped at TEXT_PREVIEW_MAX_BYTES (UTF-8) and always cut on a code-point boundary so no character is split. Number of characters in the preview varies by script (around 1024 for ASCII, ~340 for CJK, ~256 for emoji-heavy text at the default 1 KB budget).

sample_rate: Optional[float]

Sample rate of the media in Hz

transcription: Optional[DescriptionAssetPropertiesTranscription]

Transcription of the audio

text: str
vertex_count: Optional[float]

Number of vertices in the mesh

width: Optional[float]
word_count: Optional[float]

Number of whitespace-separated words in the text

source: Literal["3d23d", "3d23d:texture", "3d:texture", 76 more]

source of the asset

One of the following:
"3d23d"
"3d23d:texture"
"3d:texture"
"3d:texture:albedo"
"3d:texture:metallic"
"3d:texture:mtl"
"3d:texture:normal"
"3d:texture:roughness"
"audio2audio"
"audio2txt"
"audio2video"
"background-removal"
"canvas"
"canvas-drawing"
"canvas-export"
"detection"
"generative-fill"
"image-prompt-editing"
"img23d"
"img2img"
"img2txt"
"img2video"
"inference-control-net"
"inference-control-net-img"
"inference-control-net-inpainting"
"inference-control-net-inpainting-ip-adapter"
"inference-control-net-ip-adapter"
"inference-control-net-reference"
"inference-control-net-texture"
"inference-img"
"inference-img-ip-adapter"
"inference-img-texture"
"inference-in-paint"
"inference-in-paint-ip-adapter"
"inference-reference"
"inference-reference-texture"
"inference-txt"
"inference-txt-ip-adapter"
"inference-txt-texture"
"patch"
"pixelization"
"reframe"
"restyle"
"segment"
"segmentation-image"
"segmentation-mask"
"skybox-3d"
"skybox-base-360"
"skybox-hdri"
"texture"
"texture:albedo"
"texture:ao"
"texture:edge"
"texture:height"
"texture:metallic"
"texture:normal"
"texture:smoothness"
"txt23d"
"txt2audio"
"txt2img"
"txt2txt"
"txt2video"
"unknown"
"uploaded"
"uploaded-3d"
"uploaded-audio"
"uploaded-avatar"
"uploaded-text"
"uploaded-video"
"upscale"
"upscale-skybox"
"upscale-texture"
"upscale-video"
"vectorization"
"video23d"
"video2audio"
"video2img"
"video2video"
"voice-clone"
url: str

Signed URL to get the asset content

original_file_url: Optional[str]

The original file url.

Contains the url of the original file. without any conversion. Only available for some specific video, audio and threeD assets. Is only specified if the given asset data has been replaced with a new file during the creation of the asset.

preview: Optional[DescriptionAssetPreview]

The asset’s preview.

Contains the assetId and the url of the preview.

asset_id: str
url: str
thumbnail: Optional[DescriptionAssetThumbnail]

The asset’s thumbnail.

Contains the assetId and the url of the thumbnail.

asset_id: str
url: str
models: List[DescriptionModel]

The list of models referenced by the Markdown {model} tag in the description.

id: str

The model ID (example: “model_eyVcnFJcR92BxBkz7N6g5w”)

privacy: Literal["private", "public", "unlisted"]

The privacy of the model (default: private)

One of the following:
"private"
"public"
"unlisted"
type: Literal["custom", "elevenlabs-voice", "flux.1", 34 more]

The model type (example: “flux.1-lora”)

One of the following:
"custom"
"elevenlabs-voice"
"flux.1"
"flux.1-composition"
"flux.1-kontext-dev"
"flux.1-kontext-lora"
"flux.1-krea-dev"
"flux.1-krea-lora"
"flux.1-lora"
"flux.1-pro"
"flux.1.1-pro-ultra"
"flux.2-dev-edit-lora"
"flux.2-dev-lora"
"flux.2-klein-4b-edit-lora"
"flux.2-klein-4b-lora"
"flux.2-klein-9b-edit-lora"
"flux.2-klein-9b-lora"
"flux.2-klein-base-4b-edit-lora"
"flux.2-klein-base-4b-lora"
"flux.2-klein-base-9b-edit-lora"
"flux.2-klein-base-9b-lora"
"flux1.1-pro"
"gpt-image-1"
"qwen-image-2512-lora"
"qwen-image-edit-2509-lora"
"qwen-image-edit-2511-lora"
"qwen-image-edit-lora"
"qwen-image-lora"
"sd-1_5"
"sd-1_5-composition"
"sd-1_5-lora"
"sd-xl"
"sd-xl-composition"
"sd-xl-lora"
"zimage-de-turbo-lora"
"zimage-lora"
"zimage-turbo-lora"
author_id: Optional[str]

The author user ID (example: “user_VFhihHKMRZyDDnZAJwLb2Q”)

name: Optional[str]

The model name (example: “Cinematic Realism”)

owner_id: Optional[str]

The owner ID (example: “team_VFhihHKMRZyDDnZAJwLb2Q”)

short_description: Optional[str]

The model short description (example: “This model generates highly detailed cinematic scenes.”)

value: str

The markdown description of the model (ex: # My model). We allow the {asset:<assetId>} and {model:<modelId>} tags.

class DescriptionUpdateResponse:
description: Description
assets: List[DescriptionAsset]

The list of assets referenced by the Markdown {asset} tag in the description.

id: str

The asset ID (example: “asset_GTrL3mq4SXWyMxkOHRxlpw”)

author_id: str

The author user ID (example: “dcf121faaa1a0a0bbbd9ca1b73d62aea”)

kind: Literal["3d", "audio", "document", 5 more]

The kind of asset

One of the following:
"3d"
"audio"
"document"
"image"
"image-hdr"
"json"
"text"
"video"
mime_type: str

The mime type of the asset (example: “image/png”)

owner_id: str

The owner (project) ID (example: “proj_23tlk332lkht3kl2” or “team_dlkhgs23tlk3hlkth32lkht3kl2” for old teams)

privacy: Literal["private", "public", "unlisted"]

The privacy of the asset

One of the following:
"private"
"public"
"unlisted"
properties: DescriptionAssetProperties

The properties of the asset, content may depend on the kind of asset returned

size: float
animation_frame_count: Optional[float]

Number of animation frames if animations exist

bitrate: Optional[float]

Bitrate of the media in bits per second

bone_count: Optional[float]

Number of bones if skeleton exists

channels: Optional[float]

Number of channels of the audio

char_count: Optional[float]

Number of Unicode code points in the text. Code-point-aware (so a non-BMP emoji counts as 1) but not full grapheme-cluster aware (a ZWJ sequence still counts as several).

classification: Optional[Literal["effect", "interview", "music", 5 more]]

Classification of the audio

One of the following:
"effect"
"interview"
"music"
"other"
"sound"
"speech"
"text"
"unknown"
codec_name: Optional[str]

Codec name of the media

description: Optional[str]

Description of the audio

dimensions: Optional[List[float]]

Bounding box dimensions [width, height, depth]

duration: Optional[float]

Duration of the media in seconds

face_count: Optional[float]

Number of faces/triangles in the mesh

format: Optional[str]

Format of the mesh file (e.g. ‘glb’, etc.)

frame_rate: Optional[float]

Frame rate of the video in frames per second

has_animations: Optional[bool]

Whether the mesh has animations

has_full_preview: Optional[bool]

True when preview holds the entire content unmodified — consumers can use it directly without fetching asset.url. False or undefined means the content exceeds the preview budget and consumers must fetch the full body from S3 to read past the preview.

has_normals: Optional[bool]

Whether the mesh has normal vectors

has_skeleton: Optional[bool]

Whether the mesh has bones/skeleton

has_u_vs: Optional[bool]

Whether the mesh has UV coordinates

height: Optional[float]
nb_frames: Optional[float]

Number of frames in the video

preview: Optional[str]

Leading slice of the content used for inline UI display and as a search shortcut. Capped at TEXT_PREVIEW_MAX_BYTES (UTF-8) and always cut on a code-point boundary so no character is split. Number of characters in the preview varies by script (around 1024 for ASCII, ~340 for CJK, ~256 for emoji-heavy text at the default 1 KB budget).

sample_rate: Optional[float]

Sample rate of the media in Hz

transcription: Optional[DescriptionAssetPropertiesTranscription]

Transcription of the audio

text: str
vertex_count: Optional[float]

Number of vertices in the mesh

width: Optional[float]
word_count: Optional[float]

Number of whitespace-separated words in the text

source: Literal["3d23d", "3d23d:texture", "3d:texture", 76 more]

source of the asset

One of the following:
"3d23d"
"3d23d:texture"
"3d:texture"
"3d:texture:albedo"
"3d:texture:metallic"
"3d:texture:mtl"
"3d:texture:normal"
"3d:texture:roughness"
"audio2audio"
"audio2txt"
"audio2video"
"background-removal"
"canvas"
"canvas-drawing"
"canvas-export"
"detection"
"generative-fill"
"image-prompt-editing"
"img23d"
"img2img"
"img2txt"
"img2video"
"inference-control-net"
"inference-control-net-img"
"inference-control-net-inpainting"
"inference-control-net-inpainting-ip-adapter"
"inference-control-net-ip-adapter"
"inference-control-net-reference"
"inference-control-net-texture"
"inference-img"
"inference-img-ip-adapter"
"inference-img-texture"
"inference-in-paint"
"inference-in-paint-ip-adapter"
"inference-reference"
"inference-reference-texture"
"inference-txt"
"inference-txt-ip-adapter"
"inference-txt-texture"
"patch"
"pixelization"
"reframe"
"restyle"
"segment"
"segmentation-image"
"segmentation-mask"
"skybox-3d"
"skybox-base-360"
"skybox-hdri"
"texture"
"texture:albedo"
"texture:ao"
"texture:edge"
"texture:height"
"texture:metallic"
"texture:normal"
"texture:smoothness"
"txt23d"
"txt2audio"
"txt2img"
"txt2txt"
"txt2video"
"unknown"
"uploaded"
"uploaded-3d"
"uploaded-audio"
"uploaded-avatar"
"uploaded-text"
"uploaded-video"
"upscale"
"upscale-skybox"
"upscale-texture"
"upscale-video"
"vectorization"
"video23d"
"video2audio"
"video2img"
"video2video"
"voice-clone"
url: str

Signed URL to get the asset content

original_file_url: Optional[str]

The original file url.

Contains the url of the original file. without any conversion. Only available for some specific video, audio and threeD assets. Is only specified if the given asset data has been replaced with a new file during the creation of the asset.

preview: Optional[DescriptionAssetPreview]

The asset’s preview.

Contains the assetId and the url of the preview.

asset_id: str
url: str
thumbnail: Optional[DescriptionAssetThumbnail]

The asset’s thumbnail.

Contains the assetId and the url of the thumbnail.

asset_id: str
url: str
models: List[DescriptionModel]

The list of models referenced by the Markdown {model} tag in the description.

id: str

The model ID (example: “model_eyVcnFJcR92BxBkz7N6g5w”)

privacy: Literal["private", "public", "unlisted"]

The privacy of the model (default: private)

One of the following:
"private"
"public"
"unlisted"
type: Literal["custom", "elevenlabs-voice", "flux.1", 34 more]

The model type (example: “flux.1-lora”)

One of the following:
"custom"
"elevenlabs-voice"
"flux.1"
"flux.1-composition"
"flux.1-kontext-dev"
"flux.1-kontext-lora"
"flux.1-krea-dev"
"flux.1-krea-lora"
"flux.1-lora"
"flux.1-pro"
"flux.1.1-pro-ultra"
"flux.2-dev-edit-lora"
"flux.2-dev-lora"
"flux.2-klein-4b-edit-lora"
"flux.2-klein-4b-lora"
"flux.2-klein-9b-edit-lora"
"flux.2-klein-9b-lora"
"flux.2-klein-base-4b-edit-lora"
"flux.2-klein-base-4b-lora"
"flux.2-klein-base-9b-edit-lora"
"flux.2-klein-base-9b-lora"
"flux1.1-pro"
"gpt-image-1"
"qwen-image-2512-lora"
"qwen-image-edit-2509-lora"
"qwen-image-edit-2511-lora"
"qwen-image-edit-lora"
"qwen-image-lora"
"sd-1_5"
"sd-1_5-composition"
"sd-1_5-lora"
"sd-xl"
"sd-xl-composition"
"sd-xl-lora"
"zimage-de-turbo-lora"
"zimage-lora"
"zimage-turbo-lora"
author_id: Optional[str]

The author user ID (example: “user_VFhihHKMRZyDDnZAJwLb2Q”)

name: Optional[str]

The model name (example: “Cinematic Realism”)

owner_id: Optional[str]

The owner ID (example: “team_VFhihHKMRZyDDnZAJwLb2Q”)

short_description: Optional[str]

The model short description (example: “This model generates highly detailed cinematic scenes.”)

value: str

The markdown description of the model (ex: # My model). We allow the {asset:<assetId>} and {model:<modelId>} tags.