Skip to content
Primary navigation

Complete upload

uploads.complete(upload_id, **kwargs) -> Upload { id, bytes, created_at, 6 more }
POST/uploads/{upload_id}/complete

Complete upload

ParametersExpand Collapse
upload_id: String
part_ids: Array[String]

The ordered list of Part IDs.

md5: String

The optional md5 checksum for the file contents to verify if the bytes uploaded matches what you expect.

ReturnsExpand Collapse
class Upload { id, bytes, created_at, 6 more }

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.

formatunixtime
expires_at: Integer

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

formatunixtime
filename: String

The name of the file to be uploaded.

object: :upload

The object type, which is always “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.

One of the following:
:pending
:completed
:cancelled
:expired
file: FileObject { id, bytes, created_at, 6 more }

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.

formatunixtime
filename: String

The name of the file.

object: :file

The object type, which is always 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.

One of the following:
:assistants
:assistants_output
:batch
:batch_output
:"fine-tune"
:"fine-tune-results"
:vision
:user_data
Deprecatedstatus: :uploaded | :processed | :error

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

One of the following:
:uploaded
:processed
:error
expires_at: Integer

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

formatunixtime
Deprecatedstatus_details: String

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

Complete upload

require "openai"

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

upload = openai.uploads.complete("upload_abc123", part_ids: ["string"])

puts(upload)
{
  "id": "upload_abc123",
  "object": "upload",
  "bytes": 2147483648,
  "created_at": 1719184911,
  "filename": "training_examples.jsonl",
  "purpose": "fine-tune",
  "status": "completed",
  "expires_at": 1719127296,
  "file": {
    "id": "file-xyz321",
    "object": "file",
    "bytes": 2147483648,
    "created_at": 1719186911,
    "expires_at": 1719127296,
    "filename": "training_examples.jsonl",
    "purpose": "fine-tune",
  }
}
Returns Examples
{
  "id": "upload_abc123",
  "object": "upload",
  "bytes": 2147483648,
  "created_at": 1719184911,
  "filename": "training_examples.jsonl",
  "purpose": "fine-tune",
  "status": "completed",
  "expires_at": 1719127296,
  "file": {
    "id": "file-xyz321",
    "object": "file",
    "bytes": 2147483648,
    "created_at": 1719186911,
    "expires_at": 1719127296,
    "filename": "training_examples.jsonl",
    "purpose": "fine-tune",
  }
}