SpyBara
Go Premium

ruby/resources/files/index.md 2026-07-07 08:02 UTC to 2026-07-09 20:58 UTC

525 added, 0 removed.

2026
Wed 15 02:58 Tue 14 06:58 Mon 13 15:59 Sun 12 06:58 Fri 10 23:02 Thu 9 20:58 Tue 7 08:02

Files

List files

files.list(**kwargs) -> CursorPage<FileObject>

get /files

List files

Parameters

  • after: String

    A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.

  • limit: Integer

    A limit on the number of objects to be returned. Limit can range between 1 and 10,000, and the default is 10,000.

  • order: :asc | :desc

    Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.

    • :asc

    • :desc

  • purpose: String

    Only return files with the given purpose.

Returns

  • class FileObject

    The File object represents a document that has been uploaded to OpenAI.

    • id: String

      The file identifier, which can be referenced in the API endpoints.

    • bytes: Integer

      The size of the file, in bytes.

    • created_at: Integer

      The Unix timestamp (in seconds) for when the file was created.

    • filename: String

      The name of the file.

    • object: :file

      The object type, which is always file.

      • :file
    • purpose: :assistants | :assistants_output | :batch | 5 more

      The intended purpose of the file. Supported values are assistants, assistants_output, batch, batch_output, fine-tune, fine-tune-results, vision, and user_data.

      • :assistants

      • :assistants_output

      • :batch

      • :batch_output

      • :"fine-tune"

      • :"fine-tune-results"

      • :vision

      • :user_data

    • status: :uploaded | :processed | :error

      Deprecated. The current status of the file, which can be either uploaded, processed, or error.

      • :uploaded

      • :processed

      • :error

    • expires_at: Integer

      The Unix timestamp (in seconds) for when the file will expire.

    • status_details: String

      Deprecated. For details on why a fine-tuning training file failed validation, see the error field on fine_tuning.job.

Example

require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

page = openai.files.list

puts(page)

Response

{
  "data": [
    {
      "id": "id",
      "bytes": 0,
      "created_at": 0,
      "filename": "filename",
      "object": "file",
      "purpose": "assistants",
      "status": "uploaded",
      "expires_at": 0,
      "status_details": "status_details"
    }
  ],
  "first_id": "file-abc123",
  "has_more": false,
  "last_id": "file-abc456",
  "object": "list"
}

Upload file

files.create(**kwargs) -> FileObject

post /files

Upload file

Parameters

  • file: String

    The File object (not file name) to be uploaded.

  • purpose: untyped

  • expires_after: ExpiresAfter{ anchor, seconds}

    The expiration policy for a file. By default, files with purpose=batch expire after 30 days and all other files are persisted until they are manually deleted.

    • anchor: :created_at

      Anchor timestamp after which the expiration policy applies. Supported anchors: created_at.

      • :created_at
    • seconds: Integer

      The number of seconds after the anchor time that the file will expire. Must be between 3600 (1 hour) and 2592000 (30 days).

Returns

  • class FileObject

    The File object represents a document that has been uploaded to OpenAI.

    • id: String

      The file identifier, which can be referenced in the API endpoints.

    • bytes: Integer

      The size of the file, in bytes.

    • created_at: Integer

      The Unix timestamp (in seconds) for when the file was created.

    • filename: String

      The name of the file.

    • object: :file

      The object type, which is always file.

      • :file
    • purpose: :assistants | :assistants_output | :batch | 5 more

      The intended purpose of the file. Supported values are assistants, assistants_output, batch, batch_output, fine-tune, fine-tune-results, vision, and user_data.

      • :assistants

      • :assistants_output

      • :batch

      • :batch_output

      • :"fine-tune"

      • :"fine-tune-results"

      • :vision

      • :user_data

    • status: :uploaded | :processed | :error

      Deprecated. The current status of the file, which can be either uploaded, processed, or error.

      • :uploaded

      • :processed

      • :error

    • expires_at: Integer

      The Unix timestamp (in seconds) for when the file will expire.

    • status_details: String

      Deprecated. For details on why a fine-tuning training file failed validation, see the error field on fine_tuning.job.

Example

require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

file_object = openai.files.create(file: StringIO.new("Example data"), purpose: {})

puts(file_object)

Response

{
  "id": "id",
  "bytes": 0,
  "created_at": 0,
  "filename": "filename",
  "object": "file",
  "purpose": "assistants",
  "status": "uploaded",
  "expires_at": 0,
  "status_details": "status_details"
}

Delete file

files.delete(file_id) -> FileDeleted

delete /files/{file_id}

Delete file

Parameters

  • file_id: String

Returns

  • class FileDeleted

    • id: String

    • deleted: bool

    • object: :file

      • :file

Example

require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

file_deleted = openai.files.delete("file_id")

puts(file_deleted)

Response

{
  "id": "id",
  "deleted": true,
  "object": "file"
}

Retrieve file

files.retrieve(file_id) -> FileObject

get /files/{file_id}

Retrieve file

Parameters

  • file_id: String

Returns

  • class FileObject

    The File object represents a document that has been uploaded to OpenAI.

    • id: String

      The file identifier, which can be referenced in the API endpoints.

    • bytes: Integer

      The size of the file, in bytes.

    • created_at: Integer

      The Unix timestamp (in seconds) for when the file was created.

    • filename: String

      The name of the file.

    • object: :file

      The object type, which is always file.

      • :file
    • purpose: :assistants | :assistants_output | :batch | 5 more

      The intended purpose of the file. Supported values are assistants, assistants_output, batch, batch_output, fine-tune, fine-tune-results, vision, and user_data.

      • :assistants

      • :assistants_output

      • :batch

      • :batch_output

      • :"fine-tune"

      • :"fine-tune-results"

      • :vision

      • :user_data

    • status: :uploaded | :processed | :error

      Deprecated. The current status of the file, which can be either uploaded, processed, or error.

      • :uploaded

      • :processed

      • :error

    • expires_at: Integer

      The Unix timestamp (in seconds) for when the file will expire.

    • status_details: String

      Deprecated. For details on why a fine-tuning training file failed validation, see the error field on fine_tuning.job.

Example

require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

file_object = openai.files.retrieve("file_id")

puts(file_object)

Response

{
  "id": "id",
  "bytes": 0,
  "created_at": 0,
  "filename": "filename",
  "object": "file",
  "purpose": "assistants",
  "status": "uploaded",
  "expires_at": 0,
  "status_details": "status_details"
}

Retrieve file content

files.content(file_id) -> StringIO

get /files/{file_id}/content

Retrieve file content

Parameters

  • file_id: String

Returns

  • StringIO

Example

require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

response = openai.files.content("file_id")

puts(response)

Domain Types

File Content

  • FileContent = String

File Deleted

  • class FileDeleted

    • id: String

    • deleted: bool

    • object: :file

      • :file

File Object

  • class FileObject

    The File object represents a document that has been uploaded to OpenAI.

    • id: String

      The file identifier, which can be referenced in the API endpoints.

    • bytes: Integer

      The size of the file, in bytes.

    • created_at: Integer

      The Unix timestamp (in seconds) for when the file was created.

    • filename: String

      The name of the file.

    • object: :file

      The object type, which is always file.

      • :file
    • purpose: :assistants | :assistants_output | :batch | 5 more

      The intended purpose of the file. Supported values are assistants, assistants_output, batch, batch_output, fine-tune, fine-tune-results, vision, and user_data.

      • :assistants

      • :assistants_output

      • :batch

      • :batch_output

      • :"fine-tune"

      • :"fine-tune-results"

      • :vision

      • :user_data

    • status: :uploaded | :processed | :error

      Deprecated. The current status of the file, which can be either uploaded, processed, or error.

      • :uploaded

      • :processed

      • :error

    • expires_at: Integer

      The Unix timestamp (in seconds) for when the file will expire.

    • status_details: String

      Deprecated. For details on why a fine-tuning training file failed validation, see the error field on fine_tuning.job.

File Purpose

  • FilePurpose = untyped