curl --request POST \
--url https://cloud.comfy.org/api/assets \
--header 'Content-Type: multipart/form-data' \
--header 'X-API-Key: <api-key>' \
--form file='@example-file' \
--form 'tags=<string>' \
--form id=3c90c3cc-0d44-4b50-8888-8dd25736052a \
--form preview_id=3c90c3cc-0d44-4b50-8888-8dd25736052a \
--form 'name=<string>' \
--form 'mime_type=<string>' \
--form 'user_metadata=<string>'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"size": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_new": true,
"asset_hash": "<string>",
"mime_type": "<string>",
"tags": [
"<string>"
],
"user_metadata": {},
"preview_url": "<string>",
"preview_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"prompt_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_access_time": "2023-11-07T05:31:56Z",
"is_immutable": true
}Uploads a new asset to the system with associated metadata. Supports two upload methods:
If an asset with the same hash already exists, returns the existing asset.
curl --request POST \
--url https://cloud.comfy.org/api/assets \
--header 'Content-Type: multipart/form-data' \
--header 'X-API-Key: <api-key>' \
--form file='@example-file' \
--form 'tags=<string>' \
--form id=3c90c3cc-0d44-4b50-8888-8dd25736052a \
--form preview_id=3c90c3cc-0d44-4b50-8888-8dd25736052a \
--form 'name=<string>' \
--form 'mime_type=<string>' \
--form 'user_metadata=<string>'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"size": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_new": true,
"asset_hash": "<string>",
"mime_type": "<string>",
"tags": [
"<string>"
],
"user_metadata": {},
"preview_url": "<string>",
"preview_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"prompt_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_access_time": "2023-11-07T05:31:56Z",
"is_immutable": true
}API key authentication. Generate an API key from your account settings at https://comfy.org/account. Pass the key in the X-API-Key header.
The asset file to upload
Freeform tags for the asset. Common types include "models", "input", "output", and "temp", but any tag can be used in any order.
Optional asset ID for idempotent creation. If provided and asset exists, returns existing asset.
Optional preview asset ID. If not provided, images will use their own ID as preview.
Display name for the asset
MIME type of the asset (e.g., "image/png", "video/mp4")
Custom JSON metadata as a string
Asset already exists (returned existing asset)
Unique identifier for the asset
Name of the asset file
Size of the asset in bytes
Timestamp when the asset was created
Timestamp when the asset was last updated
Whether this was a new asset creation (true) or returned existing (false)
Blake3 hash of the asset content
MIME type of the asset
Tags associated with the asset
Custom user metadata for the asset
URL for asset preview/thumbnail
ID of the preview asset if available
ID of the job/prompt that created this asset, if available
Timestamp when the asset was last accessed
Whether this asset is immutable (cannot be modified or deleted)
Was this page helpful?