For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
ModelsChatRankingsDocs
DocsAPI ReferenceClient SDKsAgent SDKCookbookChangelog
DocsAPI ReferenceClient SDKsAgent SDKCookbookChangelog
    • Overview
    • Usage for Agents
  • TypeScript SDK
    • Overview
  • Python SDK
    • Overview
  • Go SDK
      • Analytics
      • APIKeys
      • Byok
      • Chat
      • Credits
      • Embeddings
      • Endpoints
      • Generations
      • Guardrails
      • OAuth
      • Observability
      • Organization
      • Presets
      • Providers
      • Rerank
      • Beta.Responses
      • Transcriptions
      • Speech
      • VideoGeneration
      • Workspaces
  • DevTools
    • Overview
    • Migrating to @openrouter/agent
LogoLogo
ModelsChatRankingsDocs
On this page
  • Overview
  • Available Operations
  • List
  • Example Usage
  • Parameters
  • Response
  • Errors
  • Create
  • Example Usage
  • Parameters
  • Response
  • Errors
  • Delete
  • Example Usage
  • Parameters
  • Response
  • Errors
  • Get
  • Example Usage
  • Parameters
  • Response
  • Errors
  • Update
  • Example Usage
  • Parameters
  • Response
  • Errors
  • BulkAddMembers
  • Example Usage
  • Parameters
  • Response
  • Errors
  • BulkRemoveMembers
  • Example Usage
  • Parameters
  • Response
  • Errors
Go SDKAPI Reference

Workspaces - Go SDK

Workspaces method reference
Was this page helpful?
Previous

DevTools

SDK Development Tools for telemetry capture and visualization
Next
Built with

The Go SDK and docs are currently in beta. Report issues on GitHub.

Overview

Workspaces endpoints

Available Operations

  • List - List workspaces
  • Create - Create a workspace
  • Delete - Delete a workspace
  • Get - Get a workspace
  • Update - Update a workspace
  • BulkAddMembers - Bulk add members to a workspace
  • BulkRemoveMembers - Bulk remove members from a workspace

List

List all workspaces for the authenticated user. Management key required.

Example Usage

1package main
2
3import(
4 "context"
5 "os"
6 openrouter "github.com/OpenRouterTeam/go-sdk"
7 "github.com/OpenRouterTeam/go-sdk/optionalnullable"
8 "log"
9)
10
11func main() {
12 ctx := context.Background()
13
14 s := openrouter.New(
15 openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
16 )
17
18 res, err := s.Workspaces.List(ctx, optionalnullable.From[int64](nil), nil)
19 if err != nil {
20 log.Fatal(err)
21 }
22 if res != nil {
23 for {
24 // handle items
25
26 res, err = res.Next()
27
28 if err != nil {
29 // handle error
30 }
31
32 if res == nil {
33 break
34 }
35 }
36 }
37}

Parameters

ParameterTypeRequiredDescriptionExample
ctxcontext.Context✔️The context to use for the request.
offsetoptionalnullable.OptionalNullable[int64]➖Number of records to skip for pagination0
limit*int64➖Maximum number of records to return (max 100)50
opts[]operations.Option➖The options for this request.

Response

*operations.ListWorkspacesResponse, error

Errors

Error TypeStatus CodeContent Type
sdkerrors.UnauthorizedResponseError401application/json
sdkerrors.InternalServerResponseError500application/json
sdkerrors.APIError4XX, 5XX*/*

Create

Create a new workspace for the authenticated user. Management key required.

Example Usage

1package main
2
3import(
4 "context"
5 "os"
6 openrouter "github.com/OpenRouterTeam/go-sdk"
7 "github.com/OpenRouterTeam/go-sdk/optionalnullable"
8 "github.com/OpenRouterTeam/go-sdk/models/components"
9 "log"
10)
11
12func main() {
13 ctx := context.Background()
14
15 s := openrouter.New(
16 openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
17 )
18
19 res, err := s.Workspaces.Create(ctx, components.CreateWorkspaceRequest{
20 DefaultImageModel: optionalnullable.From(openrouter.Pointer("openai/dall-e-3")),
21 DefaultProviderSort: optionalnullable.From(openrouter.Pointer("price")),
22 DefaultTextModel: optionalnullable.From(openrouter.Pointer("openai/gpt-4o")),
23 Description: optionalnullable.From(openrouter.Pointer("Production environment workspace")),
24 Name: "Production",
25 Slug: "production",
26 })
27 if err != nil {
28 log.Fatal(err)
29 }
30 if res != nil {
31 // handle response
32 }
33}

Parameters

ParameterTypeRequiredDescription
ctxcontext.Context✔️The context to use for the request.
requestcomponents.CreateWorkspaceRequest✔️The request object to use for the request.
opts[]operations.Option➖The options for this request.

Response

*components.CreateWorkspaceResponse, error

Errors

Error TypeStatus CodeContent Type
sdkerrors.BadRequestResponseError400application/json
sdkerrors.UnauthorizedResponseError401application/json
sdkerrors.ForbiddenResponseError403application/json
sdkerrors.InternalServerResponseError500application/json
sdkerrors.APIError4XX, 5XX*/*

Delete

Delete an existing workspace. The default workspace cannot be deleted. Workspaces with active API keys cannot be deleted. Management key required.

Example Usage

1package main
2
3import(
4 "context"
5 "os"
6 openrouter "github.com/OpenRouterTeam/go-sdk"
7 "log"
8)
9
10func main() {
11 ctx := context.Background()
12
13 s := openrouter.New(
14 openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
15 )
16
17 res, err := s.Workspaces.Delete(ctx, "production")
18 if err != nil {
19 log.Fatal(err)
20 }
21 if res != nil {
22 // handle response
23 }
24}

Parameters

ParameterTypeRequiredDescriptionExample
ctxcontext.Context✔️The context to use for the request.
idstring✔️The workspace ID (UUID) or slugproduction
opts[]operations.Option➖The options for this request.

Response

*components.DeleteWorkspaceResponse, error

Errors

Error TypeStatus CodeContent Type
sdkerrors.BadRequestResponseError400application/json
sdkerrors.UnauthorizedResponseError401application/json
sdkerrors.ForbiddenResponseError403application/json
sdkerrors.NotFoundResponseError404application/json
sdkerrors.InternalServerResponseError500application/json
sdkerrors.APIError4XX, 5XX*/*

Get

Get a single workspace by ID or slug. Management key required.

Example Usage

1package main
2
3import(
4 "context"
5 "os"
6 openrouter "github.com/OpenRouterTeam/go-sdk"
7 "log"
8)
9
10func main() {
11 ctx := context.Background()
12
13 s := openrouter.New(
14 openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
15 )
16
17 res, err := s.Workspaces.Get(ctx, "production")
18 if err != nil {
19 log.Fatal(err)
20 }
21 if res != nil {
22 // handle response
23 }
24}

Parameters

ParameterTypeRequiredDescriptionExample
ctxcontext.Context✔️The context to use for the request.
idstring✔️The workspace ID (UUID) or slugproduction
opts[]operations.Option➖The options for this request.

Response

*components.GetWorkspaceResponse, error

Errors

Error TypeStatus CodeContent Type
sdkerrors.UnauthorizedResponseError401application/json
sdkerrors.NotFoundResponseError404application/json
sdkerrors.InternalServerResponseError500application/json
sdkerrors.APIError4XX, 5XX*/*

Update

Update an existing workspace by ID or slug. Management key required.

Example Usage

1package main
2
3import(
4 "context"
5 "os"
6 openrouter "github.com/OpenRouterTeam/go-sdk"
7 "github.com/OpenRouterTeam/go-sdk/models/components"
8 "log"
9)
10
11func main() {
12 ctx := context.Background()
13
14 s := openrouter.New(
15 openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
16 )
17
18 res, err := s.Workspaces.Update(ctx, "production", components.UpdateWorkspaceRequest{
19 Name: openrouter.Pointer("Updated Workspace"),
20 Slug: openrouter.Pointer("updated-workspace"),
21 })
22 if err != nil {
23 log.Fatal(err)
24 }
25 if res != nil {
26 // handle response
27 }
28}

Parameters

ParameterTypeRequiredDescriptionExample
ctxcontext.Context✔️The context to use for the request.
idstring✔️The workspace ID (UUID) or slugproduction
updateWorkspaceRequestcomponents.UpdateWorkspaceRequest✔️N/A{"name": "Updated Workspace","slug": "updated-workspace"}
opts[]operations.Option➖The options for this request.

Response

*components.UpdateWorkspaceResponse, error

Errors

Error TypeStatus CodeContent Type
sdkerrors.BadRequestResponseError400application/json
sdkerrors.UnauthorizedResponseError401application/json
sdkerrors.ForbiddenResponseError403application/json
sdkerrors.NotFoundResponseError404application/json
sdkerrors.InternalServerResponseError500application/json
sdkerrors.APIError4XX, 5XX*/*

BulkAddMembers

Add multiple organization members to a workspace. Members are assigned the same role they hold in the organization. Management key required.

Example Usage

1package main
2
3import(
4 "context"
5 "os"
6 openrouter "github.com/OpenRouterTeam/go-sdk"
7 "github.com/OpenRouterTeam/go-sdk/models/components"
8 "log"
9)
10
11func main() {
12 ctx := context.Background()
13
14 s := openrouter.New(
15 openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
16 )
17
18 res, err := s.Workspaces.BulkAddMembers(ctx, "production", components.BulkAddWorkspaceMembersRequest{
19 UserIds: []string{
20 "user_abc123",
21 "user_def456",
22 },
23 })
24 if err != nil {
25 log.Fatal(err)
26 }
27 if res != nil {
28 // handle response
29 }
30}

Parameters

ParameterTypeRequiredDescriptionExample
ctxcontext.Context✔️The context to use for the request.
idstring✔️The workspace ID (UUID) or slugproduction
bulkAddWorkspaceMembersRequestcomponents.BulkAddWorkspaceMembersRequest✔️N/A{"user_ids": ["user_abc123","user_def456"]}
opts[]operations.Option➖The options for this request.

Response

*components.BulkAddWorkspaceMembersResponse, error

Errors

Error TypeStatus CodeContent Type
sdkerrors.BadRequestResponseError400application/json
sdkerrors.UnauthorizedResponseError401application/json
sdkerrors.ForbiddenResponseError403application/json
sdkerrors.NotFoundResponseError404application/json
sdkerrors.InternalServerResponseError500application/json
sdkerrors.APIError4XX, 5XX*/*

BulkRemoveMembers

Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. Management key required.

Example Usage

1package main
2
3import(
4 "context"
5 "os"
6 openrouter "github.com/OpenRouterTeam/go-sdk"
7 "github.com/OpenRouterTeam/go-sdk/models/components"
8 "log"
9)
10
11func main() {
12 ctx := context.Background()
13
14 s := openrouter.New(
15 openrouter.WithSecurity(os.Getenv("OPENROUTER_API_KEY")),
16 )
17
18 res, err := s.Workspaces.BulkRemoveMembers(ctx, "production", components.BulkRemoveWorkspaceMembersRequest{
19 UserIds: []string{
20 "user_abc123",
21 "user_def456",
22 },
23 })
24 if err != nil {
25 log.Fatal(err)
26 }
27 if res != nil {
28 // handle response
29 }
30}

Parameters

ParameterTypeRequiredDescriptionExample
ctxcontext.Context✔️The context to use for the request.
idstring✔️The workspace ID (UUID) or slugproduction
bulkRemoveWorkspaceMembersRequestcomponents.BulkRemoveWorkspaceMembersRequest✔️N/A{"user_ids": ["user_abc123","user_def456"]}
opts[]operations.Option➖The options for this request.

Response

*components.BulkRemoveWorkspaceMembersResponse, error

Errors

Error TypeStatus CodeContent Type
sdkerrors.BadRequestResponseError400application/json
sdkerrors.UnauthorizedResponseError401application/json
sdkerrors.ForbiddenResponseError403application/json
sdkerrors.NotFoundResponseError404application/json
sdkerrors.InternalServerResponseError500application/json
sdkerrors.APIError4XX, 5XX*/*