---
title: "Update asset"
method: PATCH
path: "/api/spaces/{accountId}/{spaceId}/assets/{assetId}"
tags: ["Asset"]
---

# Update asset

`PATCH /api/spaces/{accountId}/{spaceId}/assets/{assetId}`

## Request

- Base URL: `https://makefx.app`
- URL: `https://makefx.app/api/spaces/{accountId}/{spaceId}/assets/{assetId}`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://makefx.app/api/oauth/authorize`, token URL `https://makefx.app/api/oauth/token`, scopes: `write`)
  - API key in cookie `auth_token`

Updates editable metadata, position, or the declared recipe of an authorized asset.

## Path parameters

- `accountId` string, required: accountId path parameter
- `spaceId` string, required: spaceId path parameter
- `assetId` string, required: assetId path parameter

## Headers

- `API-Version` '2026-09-10'

## Request body

- object
  - `name` string
  - `note` string, nullable
  - `tags` string[]
  - `traits` string, nullable
  - `starred` boolean
  - `position` object, nullable: Pass null to unpin; an object pins the card there.
    - `x` number, required
    - `y` number, required
  - `recipe` object
    - `origin` 'declared', required
    - `provider` 'external', required
    - `model` string, required
    - `terms` unknown
    - `billing` unknown
    - `prompt` string, required
    - `params` object, required
    - `references` object[], required
      - `asset_id` string, required
      - `slot` string, required
      - `order` integer, required
    - `seed` integer, nullable
    - `from_asset_id` string, nullable
    - `provider_request_id` unknown
    - `external_run_id` string, nullable

## Response `200`

Success

- object
  - `asset` object, required
    - `asset_id` string, required
    - `space_id` string, required
    - `kind` 'image' | 'video' | 'audio', required
    - `name` string, required
    - `status` 'queued' | 'generating' | 'uploading' | 'ready' | 'failed', required
    - `note` string, nullable, required
    - `traits` string, nullable, required
    - `tags` string[], required
    - `starred` boolean, required
    - `position` object, nullable, required
      - `x` number, required
      - `y` number, required
    - `media` object, nullable, required
      - `mime` string, required
      - `size_bytes` integer, required
      - `width` integer, nullable, required
      - `height` integer, nullable, required
      - `duration_ms` integer, nullable, required
    - `media_url` string, uri, nullable, required
    - `thumb_url` string, uri, nullable, required
    - `recipe` object, nullable, required
      - `origin` 'generated' | 'declared', required
      - `provider` string, required
      - `provider_model` string, nullable
      - `provider_model_kind` 'snapshot' | 'alias' | 'null', nullable
      - `model` string, required
      - `terms` string, nullable
      - `billing` 'platform' | 'own_key' | 'null', nullable
      - `prompt` string, required
      - `params` object, required
      - `seed` integer, nullable
      - `from_asset_id` string, nullable
      - `provider_request_id` string, nullable
      - `external_run_id` string, nullable
      - `references` object[], required
        - `asset_id` string, required
        - `slot` string, required
        - `order` integer, required
        - `unresolved` 'deleted' | 'filtered'
    - `word_timings` object, nullable, required
      - `schema_version` 1, required
      - `provenance` 'generated_alignment' | 'forced_alignment', required
      - `size_bytes` integer, required
    - `audio_alignment` object, nullable, required
      - `alignment_job_id` string, required
      - `status` 'queued' | 'running' | 'completed' | 'failed', required
      - `error` object, nullable, required
        - `code` string, required
        - `message` string, required
        - `retryable` boolean, required
    - `credits` object, required
      - `estimated` integer, required
      - `charged` integer, nullable, required
    - `error` object, nullable, required
      - `code` string, required
      - `message` string, required
      - `retryable` boolean, required
    - `renders_in` 'browser'
    - `created_by` object, required
      - `kind` 'user' | 'agent', required
      - `label` string, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `web_url` string, uri, required

## Other responses

- `400`: The request did not match the schema
- `401`: No valid credentials. WWW-Authenticate names the protected resource metadata to start from
- `403`: The credentials are valid but not enough: the token lacks the scope, or the action needs a browser session rather than an app token
- `404`: Not found
- `429`: Rate limited. RateLimit names the policy; Retry-After says when to try again
- `500`: Internal server error

---

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