Skip to content

Add upload part

client.Uploads.Parts.New(ctx, uploadID, body) (*UploadPart, error)
POST/uploads/{upload_id}/parts

Adds a Part to an Upload object. A Part represents a chunk of bytes from the file you are trying to upload.

Each Part can be at most 64 MB, and you can add Parts until you hit the Upload maximum of 8 GB.

It is possible to add multiple Parts in parallel. You can decide the intended order of the Parts when you complete the Upload.

ParametersExpand Collapse
uploadID string
body UploadPartNewParams
Data param.Field[Reader]

The chunk of bytes for this Part.

ReturnsExpand Collapse
type UploadPart struct{…}

The upload Part represents a chunk of bytes we can add to an Upload object.

ID string

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

CreatedAt int64

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

Object UploadPart

The object type, which is always upload.part.

UploadID string

The ID of the Upload object that this Part was added to.

Add upload part

package main

import (
  "bytes"
  "context"
  "fmt"
  "io"

  "github.com/openai/openai-go"
  "github.com/openai/openai-go/option"
)

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  uploadPart, err := client.Uploads.Parts.New(
    context.TODO(),
    "upload_abc123",
    openai.UploadPartNewParams{
      Data: io.Reader(bytes.NewBuffer([]byte("some file contents"))),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", uploadPart.ID)
}
{
  "id": "id",
  "created_at": 0,
  "object": "upload.part",
  "upload_id": "upload_id"
}
Returns Examples
{
  "id": "id",
  "created_at": 0,
  "object": "upload.part",
  "upload_id": "upload_id"
}