Overview
Files endpointsAvailable Operations
- List - List files
- Upload - Upload a file
- Delete - Delete a file
- Retrieve - Get file metadata
- Download - Download file content
List
Lists files belonging to the workspace of the authenticating API key.Example Usage
package main
import(
"context"
"os"
openrouter "github.com/OpenRouterTeam/go-sdk"
"github.com/OpenRouterTeam/go-sdk/models/components"
"github.com/OpenRouterTeam/go-sdk/models/operations"
"log"
)
func main() {
ctx := context.Background()
s := openrouter.New(
openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
)
res, err := s.Files.List(ctx, &operations.ListFilesRequest{
Provider: components.FileProviderOpenai.ToPointer(),
})
if err != nil {
log.Fatal(err)
}
if res != nil {
for {
// handle items
res, err = res.Next()
if err != nil {
// handle error
}
if res == nil {
break
}
}
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ctx | context.Context | :heavy_check_mark: | The context to use for the request. |
request | operations.ListFilesRequest | :heavy_check_mark: | The request object to use for the request. |
opts | []operations.Option | :heavy_minus_sign: | The options for this request. |
Response
*operations.ListFilesResponse, errorErrors
| Error Type | Status Code | Content Type |
|---|---|---|
| sdkerrors.BadRequestResponseError | 400 | application/json |
| sdkerrors.UnauthorizedResponseError | 401 | application/json |
| sdkerrors.ForbiddenResponseError | 403 | application/json |
| sdkerrors.TooManyRequestsResponseError | 429 | application/json |
| sdkerrors.InternalServerResponseError | 500 | application/json |
| sdkerrors.BadGatewayResponseError | 502 | application/json |
| sdkerrors.ServiceUnavailableResponseError | 503 | application/json |
| sdkerrors.APIError | 4XX, 5XX | */* |
Upload
Uploads a file to be referenced in future API calls. The file is stored under the workspace of the authenticating API key. Maximum file size: 100 MB.Example Usage
package main
import(
"context"
"os"
openrouter "github.com/OpenRouterTeam/go-sdk"
"github.com/OpenRouterTeam/go-sdk/models/operations"
"github.com/OpenRouterTeam/go-sdk/models/components"
"log"
)
func main() {
ctx := context.Background()
s := openrouter.New(
openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
)
example, fileErr := os.Open("example.file")
if fileErr != nil {
panic(fileErr)
}
res, err := s.Files.Upload(ctx, operations.UploadFileRequestBody{
File: operations.UploadFileFile{
FileName: "example.file",
Content: example,
},
}, nil, components.FileProviderOpenai.ToPointer())
if err != nil {
log.Fatal(err)
}
if res != nil {
switch res.Type {
case components.FileResponseTypeAnthropic:
// res.AnthropicFile is populated
case components.FileResponseTypeOpenai:
// res.OpenAIFile is populated
case components.FileResponseTypeOpenrouter:
// res.OpenRouterFile is populated
default:
// Unknown type - use res.GetUnknownRaw() for raw JSON
}
}
}
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
ctx | context.Context | :heavy_check_mark: | The context to use for the request. | |
requestBody | operations.UploadFileRequestBody | :heavy_check_mark: | N/A | |
workspaceID | *string | :heavy_minus_sign: | Workspace to scope the request to. Defaults to the caller’s default workspace. | a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7 |
provider | *components.FileProvider | :heavy_minus_sign: | Store or read this file on the named provider using your own API key for it. Omit to use OpenRouter storage. | openai |
opts | []operations.Option | :heavy_minus_sign: | The options for this request. |
Response
*components.FileResponse, errorErrors
| Error Type | Status Code | Content Type |
|---|---|---|
| sdkerrors.BadRequestResponseError | 400 | application/json |
| sdkerrors.UnauthorizedResponseError | 401 | application/json |
| sdkerrors.ForbiddenResponseError | 403 | application/json |
| sdkerrors.PayloadTooLargeResponseError | 413 | application/json |
| sdkerrors.TooManyRequestsResponseError | 429 | application/json |
| sdkerrors.InternalServerResponseError | 500 | application/json |
| sdkerrors.BadGatewayResponseError | 502 | application/json |
| sdkerrors.ServiceUnavailableResponseError | 503 | application/json |
| sdkerrors.APIError | 4XX, 5XX | */* |
Delete
Deletes a file owned by the requesting workspace. Deletion is irreversible.Example Usage
package main
import(
"context"
"os"
openrouter "github.com/OpenRouterTeam/go-sdk"
"github.com/OpenRouterTeam/go-sdk/models/components"
"log"
)
func main() {
ctx := context.Background()
s := openrouter.New(
openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
)
res, err := s.Files.Delete(ctx, "file_011CNha8iCJcU1wXNR6q4V8w", nil, components.FileProviderOpenai.ToPointer())
if err != nil {
log.Fatal(err)
}
if res != nil {
switch res.Type {
case components.FileDeleteResponseTypeAnthropic:
// res.AnthropicFileDeleted is populated
case components.FileDeleteResponseTypeOpenai:
// res.OpenAIFileDeleted is populated
case components.FileDeleteResponseTypeOpenrouter:
// res.OpenRouterFileDeleted is populated
default:
// Unknown type - use res.GetUnknownRaw() for raw JSON
}
}
}
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
ctx | context.Context | :heavy_check_mark: | The context to use for the request. | |
fileID | string | :heavy_check_mark: | N/A | or_file_011CNha8iCJcU1wXNR6q4V8w |
workspaceID | *string | :heavy_minus_sign: | Workspace to scope the request to. Defaults to the caller’s default workspace. | a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7 |
provider | *components.FileProvider | :heavy_minus_sign: | Store or read this file on the named provider using your own API key for it. Omit to use OpenRouter storage. | openai |
opts | []operations.Option | :heavy_minus_sign: | The options for this request. |
Response
*components.FileDeleteResponse, errorErrors
| Error Type | Status Code | Content Type |
|---|---|---|
| sdkerrors.UnauthorizedResponseError | 401 | application/json |
| sdkerrors.ForbiddenResponseError | 403 | application/json |
| sdkerrors.NotFoundResponseError | 404 | application/json |
| sdkerrors.TooManyRequestsResponseError | 429 | application/json |
| sdkerrors.InternalServerResponseError | 500 | application/json |
| sdkerrors.BadGatewayResponseError | 502 | application/json |
| sdkerrors.ServiceUnavailableResponseError | 503 | application/json |
| sdkerrors.APIError | 4XX, 5XX | */* |
Retrieve
Retrieves metadata for a single file owned by the requesting workspace.Example Usage
package main
import(
"context"
"os"
openrouter "github.com/OpenRouterTeam/go-sdk"
"github.com/OpenRouterTeam/go-sdk/models/components"
"log"
)
func main() {
ctx := context.Background()
s := openrouter.New(
openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
)
res, err := s.Files.Retrieve(ctx, "file_011CNha8iCJcU1wXNR6q4V8w", nil, components.FileProviderOpenai.ToPointer())
if err != nil {
log.Fatal(err)
}
if res != nil {
switch res.Type {
case components.FileResponseTypeAnthropic:
// res.AnthropicFile is populated
case components.FileResponseTypeOpenai:
// res.OpenAIFile is populated
case components.FileResponseTypeOpenrouter:
// res.OpenRouterFile is populated
default:
// Unknown type - use res.GetUnknownRaw() for raw JSON
}
}
}
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
ctx | context.Context | :heavy_check_mark: | The context to use for the request. | |
fileID | string | :heavy_check_mark: | N/A | or_file_011CNha8iCJcU1wXNR6q4V8w |
workspaceID | *string | :heavy_minus_sign: | Workspace to scope the request to. Defaults to the caller’s default workspace. | a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7 |
provider | *components.FileProvider | :heavy_minus_sign: | Store or read this file on the named provider using your own API key for it. Omit to use OpenRouter storage. | openai |
opts | []operations.Option | :heavy_minus_sign: | The options for this request. |
Response
*components.FileResponse, errorErrors
| Error Type | Status Code | Content Type |
|---|---|---|
| sdkerrors.UnauthorizedResponseError | 401 | application/json |
| sdkerrors.ForbiddenResponseError | 403 | application/json |
| sdkerrors.NotFoundResponseError | 404 | application/json |
| sdkerrors.TooManyRequestsResponseError | 429 | application/json |
| sdkerrors.InternalServerResponseError | 500 | application/json |
| sdkerrors.BadGatewayResponseError | 502 | application/json |
| sdkerrors.ServiceUnavailableResponseError | 503 | application/json |
| sdkerrors.APIError | 4XX, 5XX | */* |
Download
Downloads the raw bytes of a file. Only files created server-side are downloadable; uploaded files return 400.Example Usage
package main
import(
"context"
"os"
openrouter "github.com/OpenRouterTeam/go-sdk"
"github.com/OpenRouterTeam/go-sdk/models/components"
"log"
)
func main() {
ctx := context.Background()
s := openrouter.New(
openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
)
res, err := s.Files.Download(ctx, "file_011CNha8iCJcU1wXNR6q4V8w", nil, components.FileProviderOpenai.ToPointer())
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
ctx | context.Context | :heavy_check_mark: | The context to use for the request. | |
fileID | string | :heavy_check_mark: | N/A | or_file_011CNha8iCJcU1wXNR6q4V8w |
workspaceID | *string | :heavy_minus_sign: | Workspace to scope the request to. Defaults to the caller’s default workspace. | a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7 |
provider | *components.FileProvider | :heavy_minus_sign: | Store or read this file on the named provider using your own API key for it. Omit to use OpenRouter storage. | openai |
opts | []operations.Option | :heavy_minus_sign: | The options for this request. |
Response
io.ReadCloser, errorErrors
| Error Type | Status Code | Content Type |
|---|---|---|
| sdkerrors.BadRequestResponseError | 400 | application/json |
| sdkerrors.UnauthorizedResponseError | 401 | application/json |
| sdkerrors.ForbiddenResponseError | 403 | application/json |
| sdkerrors.NotFoundResponseError | 404 | application/json |
| sdkerrors.TooManyRequestsResponseError | 429 | application/json |
| sdkerrors.InternalServerResponseError | 500 | application/json |
| sdkerrors.BadGatewayResponseError | 502 | application/json |
| sdkerrors.ServiceUnavailableResponseError | 503 | application/json |
| sdkerrors.APIError | 4XX, 5XX | */* |