Files are the top-level object for any piece of data in a workspace.

Files hold bytes of raw data (with a mime_type, and processed data in Blocks. A File may also have a list of Tags (annotations).

To do work on a File, it needs to be saved and its content must be in Blocks.

There are a few ways to accomplish this:

It’s useful to think of Steamship Files more broadly than “file on your desktop.” They are any useful object:

  • A conversation between a user and an assistant

  • a PDF file

  • a YouTube video

  • a Podcast episode

  • A Notion page

  • the JSON representation of an AirTable API response

Read the File PyDoc spec here.

Creating Files Directly#

The quickest way to create data is to create Files with Block content directly:

file = File.create(
   blocks=[Block(text="Some example text")]

Making File Data Public#

If you want the raw data bytes of a File to be publicly accessible, you can set the parameter public_data = True when calling File.create(). This is useful if you wish to share a generated image or audio file, or must make the content viewable in a place that cannot retain your Steamship API key. You can also change the value of the public_data flag on an existing File by calling File.set_public_data.