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

# POST /silo/v1/entries/{entry_id}/files

`POST /silo/v1/entries/{entry_id}/files`

## Request

- Base URL: `https://api.invopop.com`
- URL: `https://api.invopop.com/silo/v1/entries/{entry_id}/files`
- Auth: none required
- TypeScript: <https://skmtc.dev/invopop/apis/access-service-api/docs/silo/v1/entries/:entry_id/files/post.ts> (a function with typed inputs; its response is checked against the schema)

Add a new file to a silo entry without an explicit 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

- `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.dev/invopop/apis/access-service-api.md) - [All operations](https://skmtc.dev/invopop/apis/access-service-api/llms.txt) - [OpenAPI document](https://skmtc.dev/invopop/apis/access-service-api/revisions/fc954f96ea62?raw)
