---
title: "Rename an upload"
method: PATCH
path: "/uploads/{upload_id}"
tags: ["uploads"]
---

# Rename an upload

`PATCH /uploads/{upload_id}`

Updates the file's display name. Metadata only: storage is keyed by id, so the object never moves and existing URLs keep working, and past deliveries keep the name they were sent under. Downloads cannot be renamed — a captured file's name is part of its provenance.

## Path parameters

- `upload_id` string, uuid, required — upload identifier to rename

## Request body

- FileRenameRequest — Updates an upload's display name.
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `filename` string, required — New display name for the file.

## Response `200`

OK

- RenameFileOutputBody
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `file` FileSummary, required — One file in the org's library.
    - `attachment_url` string — Short-lived signed URL that downloads the file as an attachment under its name. Present only for ready files.
    - `bytes_transferred` integer — Bytes moved so far for an in-flight phone transfer. Absent until the phone reports progress.
    - `created_at` string, date-time, required — When the upload was registered.
    - `download_url` string — Short-lived signed URL to read the file's bytes. Present only for ready files; re-list to refresh an expired one.
    - `duration_seconds` integer — Video duration in seconds.
    - `filename` string, required — Original filename; used as the display name when the file lands on a phone.
    - `height` integer — Intrinsic pixel height of the source.
    - `id` string, required — File identifier. Unique across uploads and downloads.
    - `mime_type` string, required — Declared MIME type, pinned by the presigned upload.
    - `on_phone_count` integer, required — Distinct phones currently holding or receiving a copy. Deleting the file recalls these.
    - `preview_state` 'processing' | 'ready' | 'unavailable', required — Whether the preview exists, is still being generated, or will never be available for this format.
    - `reel_url` string — Short-lived signed URL for the animated hover preview. Videos only; absent until generated.
    - `size_bytes` integer, required — Declared size in bytes, pinned by the presigned upload.
    - `status` 'uploading' | 'ready', required — uploading until the object is verified in storage, then ready. Complete an upload to move it to ready.
    - `thumbnail_url` string — Short-lived signed URL for the generated preview image. Absent while generation is pending, and permanently absent for formats without a preview.
    - `width` integer — Intrinsic pixel width of the source.

## Other responses

- `default` — Error

---

[API](https://skmtc.net/axilioai/apis/axilio-api.md) · [All operations](https://skmtc.net/axilioai/apis/axilio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/axilioai/axilio-api/revisions/108ab4b41051/schema)
