---
title: "PUT /silo/v1/entries/{entry_id}/files/{id}"
method: PUT
path: "/silo/v1/entries/{entry_id}/files/{id}"
---

# PUT /silo/v1/entries/{entry_id}/files/{id}

`PUT /silo/v1/entries/{entry_id}/files/{id}`

Add a new file to a silo entry with a specific UUID. The file data can be provided inline as base64 encoded data, or omitted to create a placeholder. When data is not provided, you must provide sha256, size, and mime fields, and the response will include a `url` field that can be used to stream/upload the file contents directly via a PUT request to that URL. For non-enrolled users, only the `format` and `attachment` categories are allowed.

## Path parameters

- `id` string, required — UUID of file to create
- `entry_id` string, required — UUID of the silo entry.

## Request body

- object
  - `category` string — Category of the file.
  - `data` string, byte — Base64 encoded binary data. Optional - if not provided, sha256, size, and mime are required.
  - `desc` string — Description of the file.
  - `embeddable` boolean — When true, this file may be embedded inside other files, like PDFs. Default is false.
  - `key` string — Key used to identify the file in the entry.
  - `meta` object — Any additional meta data about the file.
  - `mime` string — MIME type of the file. Required when data is not provided.
  - `name` string, required — Name of the file.
  - `private` boolean — When true, this file is private and can only be accessed by the owner. Default is false.
  - `sha256` string — SHA256 hex hash of the file. Required when data is not provided.
  - `size` integer — Size of the file in bytes. Required when data is not provided.

## Response `200`

OK

- SiloFile
  - `category` string — Category of the file.
  - `created_at` string — The date and time this file was created.
  - `desc` string — Description of the file.
  - `embeddable` boolean — When true, the file can be embedded inside another file, like a PDF.
  - `entry_id` string — The UUID of the entry this file belongs to.
  - `hash` string — SHA256 hash of the file.
  - `id` string — The UUID that identifies the file in the entry.
  - `key` string — Key used to identify the file by the service or app that generated it.
  - `meta` object — Any additional meta data about the file.
  - `mime` string — MIME type of the file.
  - `name` string — Name of the file.
  - `previous` SiloFileVersion[] — Set of previous versions of the file.
    - `created_at` string — The date and time this file was created.
    - `hash` string — The SHA256 of the file's contents.
    - `id` string — The UUID that identifies the file when it was originally uploaded.
    - `size` integer — Size of the file.
  - `private` boolean — When true, the file will not have a public link.
  - `size` integer — Size of the file in bytes.
  - `stored` boolean — When true, indicates that the file's contents have been uploaded successfully.
  - `url` string — URL where the file's contents can be downloaded.

---

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