---
title: "Get a signed upload URL for a ComfyUI asset"
method: POST
path: "/api/v1/comfy-lineage/asset/signed-url"
tags: ["Assets"]
---

# Get a signed upload URL for a ComfyUI asset

`POST /api/v1/comfy-lineage/asset/signed-url`

## Request

- Base URL: `https://numonic.ai`
- URL: `https://numonic.ai/api/v1/comfy-lineage/asset/signed-url`
- Auth: API key in header `x-api-key`

Mint a signed upload URL for a ComfyUI output. PUT the file bytes to `signedUrl`, then call POST /import/comfyui/confirm-upload with the returned `path`. The tenant is resolved from the API key. Requires the `write` or `comfy-ingest` scope.

## Request body

- object
  - `filename` string, required: Original filename
  - `contentType` string, required: MIME type

## Response `200`

Signed upload URL created

- object
  - `signedUrl` string, required
  - `token` string, required
  - `path` string, required: Storage path to pass to confirm-upload

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid credentials
- `429`: Rate limit exceeded
- `502`: Signed URL could not be created

---

[API](https://skmtc.dev/numonic/apis/numonic-api.md) · [All operations](https://skmtc.dev/numonic/apis/numonic-api/llms.txt) · [OpenAPI document](https://skmtc.dev/numonic/apis/numonic-api/revisions/6c559bef1e35?raw)
