Skip to content
Framework Docs

Upload File

client.Files.New(ctx, params) (*FileNewResponse, error)
POST/api/v1/beta/files

Upload a file using multipart/form-data.

Set purpose to indicate how the file will be used: user_data, parse, extract, classify, split, sheet, or agent_app.

Returns the created file metadata including its ID for use in subsequent parse, extract, or classify operations.

ParametersExpand Collapse
params FileNewParams
File param.Field[Reader]

Body param: The file to upload

Purpose param.Field[string]

Body param: The intended purpose of the file. Valid values: 'user_data', 'parse', 'extract', 'split', 'classify', 'sheet', 'agent_app'. This determines the storage and retention policy for the file.

OrganizationID param.Field[string]optional

Query param

formatuuid
ProjectID param.Field[string]optional

Query param

formatuuid
ExternalFileID param.Field[string]optional

Body param: The ID of the file in the external system

ReturnsExpand Collapse
type FileNewResponse struct{…}

An uploaded file.

ID string

Unique file identifier

Name string

File name including extension

maxLength3000
minLength1
ProjectID string

Project this file belongs to

formatuuid
ExpiresAt Timeoptional

When the file expires and may be automatically removed. Null means no expiration.

formatdate-time
ExternalFileID stringoptional

Optional ID for correlating with an external system

FileType stringoptional

File extension (pdf, docx, png, etc.)

maxLength3000
minLength1
LastModifiedAt Timeoptional

When the file was last modified (ISO 8601)

formatdate-time
Purpose stringoptional

How the file will be used: user_data, parse, extract, classify, split, sheet, or agent_app

Upload File

package main

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

  "github.com/stainless-sdks/llamacloud-prod-go"
  "github.com/stainless-sdks/llamacloud-prod-go/option"
)

func main() {
  client := llamacloudprod.NewClient(
    option.WithAPIKey("My API Key"),
  )
  file, err := client.Files.New(context.TODO(), llamacloudprod.FileNewParams{
    File: io.Reader(bytes.NewBuffer([]byte("Example data"))),
    Purpose: "purpose",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", file.ID)
}
{
  "id": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "name": "invoice.pdf",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "expires_at": "2019-12-27T18:11:19.117Z",
  "external_file_id": "ext-12345",
  "file_type": "pdf",
  "last_modified_at": "2019-12-27T18:11:19.117Z",
  "purpose": "parse"
}
Returns Examples
{
  "id": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "name": "invoice.pdf",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "expires_at": "2019-12-27T18:11:19.117Z",
  "external_file_id": "ext-12345",
  "file_type": "pdf",
  "last_modified_at": "2019-12-27T18:11:19.117Z",
  "purpose": "parse"
}