SpyBara
Go Premium

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

195 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

Create upload

uploads.create(**kwargs) -> Upload

post /uploads

Create upload

Parameters

  • bytes: Integer

    The number of bytes in the file you are uploading.

  • filename: String

    The name of the file to upload.

  • mime_type: String

    The MIME type of the file.

    This must fall within the supported MIME types for your file purpose. See the supported MIME types for assistants and vision.

  • purpose: FilePurpose

    The intended purpose of the uploaded file.

    See the documentation on File purposes.

  • 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 Upload

    The Upload object can accept byte chunks in the form of Parts.

    • id: String

      The Upload unique identifier, which can be referenced in API endpoints.

    • bytes: Integer

      The intended number of bytes to be uploaded.

    • created_at: Integer

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

    • expires_at: Integer

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

    • filename: String

      The name of the file to be uploaded.

    • object: :upload

      The object type, which is always "upload".

      • :upload
    • purpose: String

      The intended purpose of the file. Please refer here for acceptable values.

    • status: :pending | :completed | :cancelled | :expired

      The status of the Upload.

      • :pending

      • :completed

      • :cancelled

      • :expired

    • file: 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")

upload = openai.uploads.create(bytes: 0, filename: "filename", mime_type: "mime_type", purpose: {})

puts(upload)

Response

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