SpyBara
Go Premium

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

812 added, 0 removed.

2026
Mon 20 20:00 Fri 17 17:00 Thu 16 20:57 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

Uploads

Create upload

client.Uploads.New(ctx, body) (*Upload, error)

post /uploads

Create upload

Parameters

  • body UploadNewParams

    • Bytes param.Field[int64]

      The number of bytes in the file you are uploading.

    • Filename param.Field[string]

      The name of the file to upload.

    • MimeType param.Field[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 param.Field[FilePurpose]

      The intended purpose of the uploaded file.

      See the documentation on File purposes.

    • ExpiresAfter param.Field[UploadNewParamsExpiresAfter]

      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 CreatedAt

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

        • const CreatedAtCreatedAt CreatedAt = "created_at"
      • Seconds int64

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

Returns

  • type Upload struct{…}

    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 int64

      The intended number of bytes to be uploaded.

    • CreatedAt int64

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

    • ExpiresAt int64

      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".

      • const UploadUpload Upload = "upload"
    • Purpose string

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

    • Status UploadStatus

      The status of the Upload.

      • const UploadStatusPending UploadStatus = "pending"

      • const UploadStatusCompleted UploadStatus = "completed"

      • const UploadStatusCancelled UploadStatus = "cancelled"

      • const UploadStatusExpired UploadStatus = "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 int64

        The size of the file, in bytes.

      • CreatedAt int64

        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.

        • const FileFile File = "file"
      • Purpose FileObjectPurpose

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

        • const FileObjectPurposeAssistants FileObjectPurpose = "assistants"

        • const FileObjectPurposeAssistantsOutput FileObjectPurpose = "assistants_output"

        • const FileObjectPurposeBatch FileObjectPurpose = "batch"

        • const FileObjectPurposeBatchOutput FileObjectPurpose = "batch_output"

        • const FileObjectPurposeFineTune FileObjectPurpose = "fine-tune"

        • const FileObjectPurposeFineTuneResults FileObjectPurpose = "fine-tune-results"

        • const FileObjectPurposeVision FileObjectPurpose = "vision"

        • const FileObjectPurposeUserData FileObjectPurpose = "user_data"

      • Status FileObjectStatus

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

        • const FileObjectStatusUploaded FileObjectStatus = "uploaded"

        • const FileObjectStatusProcessed FileObjectStatus = "processed"

        • const FileObjectStatusError FileObjectStatus = "error"

      • ExpiresAt int64

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

      • StatusDetails string

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

Example

package main

import (
  "context"
  "fmt"

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

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  upload, err := client.Uploads.New(context.TODO(), openai.UploadNewParams{
    Bytes: 0,
    Filename: "filename",
    MimeType: "mime_type",
    Purpose: map[string]any{
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", upload.ID)
}

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"
  }
}

Complete upload

client.Uploads.Complete(ctx, uploadID, body) (*Upload, error)

post /uploads/{upload_id}/complete

Complete upload

Parameters

  • uploadID string

  • body UploadCompleteParams

    • PartIDs param.Field[[]string]

      The ordered list of Part IDs.

    • Md5 param.Field[string]

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

Returns

  • type Upload struct{…}

    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 int64

      The intended number of bytes to be uploaded.

    • CreatedAt int64

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

    • ExpiresAt int64

      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".

      • const UploadUpload Upload = "upload"
    • Purpose string

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

    • Status UploadStatus

      The status of the Upload.

      • const UploadStatusPending UploadStatus = "pending"

      • const UploadStatusCompleted UploadStatus = "completed"

      • const UploadStatusCancelled UploadStatus = "cancelled"

      • const UploadStatusExpired UploadStatus = "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 int64

        The size of the file, in bytes.

      • CreatedAt int64

        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.

        • const FileFile File = "file"
      • Purpose FileObjectPurpose

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

        • const FileObjectPurposeAssistants FileObjectPurpose = "assistants"

        • const FileObjectPurposeAssistantsOutput FileObjectPurpose = "assistants_output"

        • const FileObjectPurposeBatch FileObjectPurpose = "batch"

        • const FileObjectPurposeBatchOutput FileObjectPurpose = "batch_output"

        • const FileObjectPurposeFineTune FileObjectPurpose = "fine-tune"

        • const FileObjectPurposeFineTuneResults FileObjectPurpose = "fine-tune-results"

        • const FileObjectPurposeVision FileObjectPurpose = "vision"

        • const FileObjectPurposeUserData FileObjectPurpose = "user_data"

      • Status FileObjectStatus

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

        • const FileObjectStatusUploaded FileObjectStatus = "uploaded"

        • const FileObjectStatusProcessed FileObjectStatus = "processed"

        • const FileObjectStatusError FileObjectStatus = "error"

      • ExpiresAt int64

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

      • StatusDetails string

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

Example

package main

import (
  "context"
  "fmt"

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

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  upload, err := client.Uploads.Complete(
    context.TODO(),
    "upload_abc123",
    openai.UploadCompleteParams{
      PartIDs: []string{"string"},
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", upload.ID)
}

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"
  }
}

Cancel upload

client.Uploads.Cancel(ctx, uploadID) (*Upload, error)

post /uploads/{upload_id}/cancel

Cancel upload

Parameters

  • uploadID string

Returns

  • type Upload struct{…}

    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 int64

      The intended number of bytes to be uploaded.

    • CreatedAt int64

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

    • ExpiresAt int64

      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".

      • const UploadUpload Upload = "upload"
    • Purpose string

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

    • Status UploadStatus

      The status of the Upload.

      • const UploadStatusPending UploadStatus = "pending"

      • const UploadStatusCompleted UploadStatus = "completed"

      • const UploadStatusCancelled UploadStatus = "cancelled"

      • const UploadStatusExpired UploadStatus = "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 int64

        The size of the file, in bytes.

      • CreatedAt int64

        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.

        • const FileFile File = "file"
      • Purpose FileObjectPurpose

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

        • const FileObjectPurposeAssistants FileObjectPurpose = "assistants"

        • const FileObjectPurposeAssistantsOutput FileObjectPurpose = "assistants_output"

        • const FileObjectPurposeBatch FileObjectPurpose = "batch"

        • const FileObjectPurposeBatchOutput FileObjectPurpose = "batch_output"

        • const FileObjectPurposeFineTune FileObjectPurpose = "fine-tune"

        • const FileObjectPurposeFineTuneResults FileObjectPurpose = "fine-tune-results"

        • const FileObjectPurposeVision FileObjectPurpose = "vision"

        • const FileObjectPurposeUserData FileObjectPurpose = "user_data"

      • Status FileObjectStatus

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

        • const FileObjectStatusUploaded FileObjectStatus = "uploaded"

        • const FileObjectStatusProcessed FileObjectStatus = "processed"

        • const FileObjectStatusError FileObjectStatus = "error"

      • ExpiresAt int64

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

      • StatusDetails string

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

Example

package main

import (
  "context"
  "fmt"

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

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  upload, err := client.Uploads.Cancel(context.TODO(), "upload_abc123")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", upload.ID)
}

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"
  }
}

Domain Types

Upload

  • type Upload struct{…}

    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 int64

      The intended number of bytes to be uploaded.

    • CreatedAt int64

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

    • ExpiresAt int64

      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".

      • const UploadUpload Upload = "upload"
    • Purpose string

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

    • Status UploadStatus

      The status of the Upload.

      • const UploadStatusPending UploadStatus = "pending"

      • const UploadStatusCompleted UploadStatus = "completed"

      • const UploadStatusCancelled UploadStatus = "cancelled"

      • const UploadStatusExpired UploadStatus = "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 int64

        The size of the file, in bytes.

      • CreatedAt int64

        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.

        • const FileFile File = "file"
      • Purpose FileObjectPurpose

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

        • const FileObjectPurposeAssistants FileObjectPurpose = "assistants"

        • const FileObjectPurposeAssistantsOutput FileObjectPurpose = "assistants_output"

        • const FileObjectPurposeBatch FileObjectPurpose = "batch"

        • const FileObjectPurposeBatchOutput FileObjectPurpose = "batch_output"

        • const FileObjectPurposeFineTune FileObjectPurpose = "fine-tune"

        • const FileObjectPurposeFineTuneResults FileObjectPurpose = "fine-tune-results"

        • const FileObjectPurposeVision FileObjectPurpose = "vision"

        • const FileObjectPurposeUserData FileObjectPurpose = "user_data"

      • Status FileObjectStatus

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

        • const FileObjectStatusUploaded FileObjectStatus = "uploaded"

        • const FileObjectStatusProcessed FileObjectStatus = "processed"

        • const FileObjectStatusError FileObjectStatus = "error"

      • ExpiresAt int64

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

      • StatusDetails string

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

Parts

Add upload part

client.Uploads.Parts.New(ctx, uploadID, body) (*UploadPart, error)

post /uploads/{upload_id}/parts

Add upload part

Parameters

  • uploadID string

  • body UploadPartNewParams

    • Data param.Field[Reader]

      The chunk of bytes for this Part.

Returns

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

      • const UploadPartUploadPart UploadPart = "upload.part"
    • UploadID string

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

Example

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("Example data"))),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", uploadPart.ID)
}

Response

{
  "id": "id",
  "created_at": 0,
  "object": "upload.part",
  "upload_id": "upload_id"
}

Domain Types

Upload Part

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

      • const UploadPartUploadPart UploadPart = "upload.part"
    • UploadID string

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