SpyBara
Go Premium

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

602 added, 0 removed.

2026
Fri 31 21:03 Thu 30 23:58 Wed 29 15:02 Sat 25 05:59 Thu 23 18:00 Wed 22 20:02 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

Files

List files

client.Files.List(ctx, query) (*CursorPage[FileObject], error)

get /files

List files

Parameters

  • query FileListParams

    • After param.Field[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 param.Field[int64]

      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 param.Field[FileListParamsOrder]

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

      • const FileListParamsOrderAsc FileListParamsOrder = "asc"

      • const FileListParamsOrderDesc FileListParamsOrder = "desc"

    • Purpose param.Field[string]

      Only return files with the given purpose.

Returns

  • type FileObject struct{…}

    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"),
  )
  page, err := client.Files.List(context.TODO(), openai.FileListParams{

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

client.Files.New(ctx, body) (*FileObject, error)

post /files

Upload file

Parameters

  • body FileNewParams

    • File param.Field[Reader]

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

    • Purpose param.Field[any]

    • ExpiresAfter param.Field[FileNewParamsExpiresAfter]

      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 FileObject struct{…}

    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 (
  "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"),
  )
  fileObject, err := client.Files.New(context.TODO(), openai.FileNewParams{
    File: io.Reader(bytes.NewBuffer([]byte("Example data"))),
    Purpose: map[string]any{
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", fileObject.ID)
}

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

client.Files.Delete(ctx, fileID) (*FileDeleted, error)

delete /files/{file_id}

Delete file

Parameters

  • fileID string

Returns

  • type FileDeleted struct{…}

    • ID string

    • Deleted bool

    • Object File

      • const FileFile File = "file"

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"),
  )
  fileDeleted, err := client.Files.Delete(context.TODO(), "file_id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", fileDeleted.ID)
}

Response

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

Retrieve file

client.Files.Get(ctx, fileID) (*FileObject, error)

get /files/{file_id}

Retrieve file

Parameters

  • fileID string

Returns

  • type FileObject struct{…}

    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"),
  )
  fileObject, err := client.Files.Get(context.TODO(), "file_id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", fileObject.ID)
}

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

client.Files.Content(ctx, fileID) (*Response, error)

get /files/{file_id}/content

Retrieve file content

Parameters

  • fileID string

Returns

  • type FileContentResponse interface{…}

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"),
  )
  response, err := client.Files.Content(context.TODO(), "file_id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response)
}

Domain Types

File Content

  • type FileContent string

File Deleted

  • type FileDeleted struct{…}

    • ID string

    • Deleted bool

    • Object File

      • const FileFile File = "file"

File Object

  • type FileObject struct{…}

    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.

File Purpose

  • type FilePurpose interface{…}