Presets - Go SDK

Presets method reference

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

Overview

Presets endpoints

Available Operations

List

Lists all presets for the authenticated user, ordered by most recently updated first.

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.Presets.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*int64Maximum number of records to return (max 100)50
opts[]operations.OptionThe options for this request.

Response

*operations.ListPresetsResponse, error

Errors

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

Get

Retrieves a preset by its slug with its currently designated version inline.

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.Presets.Get(ctx, "my-preset")
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.
slugstring✔️URL-safe slug identifying the preset.my-preset
opts[]operations.OptionThe options for this request.

Response

*components.GetPresetResponse, error

Errors

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

CreatePresetsChatCompletions

Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. messages, stream, prompt) are silently ignored.

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 "github.com/OpenRouterTeam/go-sdk/optionalnullable"
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.Presets.CreatePresetsChatCompletions(ctx, "my-preset", components.ChatRequest{
20 Messages: []components.ChatMessages{
21 components.CreateChatMessagesSystem(
22 components.ChatSystemMessage{
23 Content: components.CreateChatSystemMessageContentStr(
24 "You are a helpful assistant.",
25 ),
26 Role: components.ChatSystemMessageRoleSystem,
27 },
28 ),
29 components.CreateChatMessagesUser(
30 components.ChatUserMessage{
31 Content: components.CreateChatUserMessageContentStr(
32 "Hello!",
33 ),
34 Role: components.ChatUserMessageRoleUser,
35 },
36 ),
37 },
38 Model: openrouter.Pointer("openai/gpt-5.4"),
39 Temperature: optionalnullable.From(openrouter.Pointer[float64](0.7)),
40 })
41 if err != nil {
42 log.Fatal(err)
43 }
44 if res != nil {
45 // handle response
46 }
47}

Parameters

ParameterTypeRequiredDescriptionExample
ctxcontext.Context✔️The context to use for the request.
slugstring✔️URL-safe slug identifying the preset. Created if it does not exist.my-preset
chatRequestcomponents.ChatRequest✔️N/A{"max_tokens": 150,"messages": [{"content": "You are a helpful assistant.","role": "system"},
{"content": "What is the capital of France?","role": "user"}
],
“model”: “openai/gpt-4”,
“temperature”: 0.7
}
opts[]operations.OptionThe options for this request.

Response

*components.CreatePresetFromInferenceResponse, error

Errors

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

CreatePresetsMessages

Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. messages, stream, prompt) are silently ignored.

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.Presets.CreatePresetsMessages(ctx, "my-preset", components.MessagesRequest{
19 MaxTokens: openrouter.Pointer[int64](1024),
20 Messages: []components.MessagesMessageParam{
21 components.MessagesMessageParam{
22 Content: components.CreateMessagesMessageParamContentUnion5Str(
23 "Hello!",
24 ),
25 Role: components.MessagesMessageParamRoleUser,
26 },
27 },
28 Model: "anthropic/claude-4.6-sonnet",
29 System: openrouter.Pointer(components.CreateSystemStr(
30 "You are a helpful assistant.",
31 )),
32 })
33 if err != nil {
34 log.Fatal(err)
35 }
36 if res != nil {
37 // handle response
38 }
39}

Parameters

ParameterTypeRequiredDescriptionExample
ctxcontext.Context✔️The context to use for the request.
slugstring✔️URL-safe slug identifying the preset. Created if it does not exist.my-preset
messagesRequestcomponents.MessagesRequest✔️N/A{"max_tokens": 1024,"messages": [{"content": "Hello, how are you?","role": "user"}
],
“model”: “anthropic/claude-4.5-sonnet-20250929”,
“temperature”: 0.7
}
opts[]operations.OptionThe options for this request.

Response

*components.CreatePresetFromInferenceResponse, error

Errors

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

CreatePresetsResponses

Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. messages, stream, prompt) are silently ignored.

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 "github.com/OpenRouterTeam/go-sdk/optionalnullable"
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.Presets.CreatePresetsResponses(ctx, "my-preset", components.ResponsesRequest{
20 Input: openrouter.Pointer(components.CreateInputsUnionStr(
21 "Hello!",
22 )),
23 Instructions: optionalnullable.From(openrouter.Pointer("You are a helpful assistant.")),
24 Model: openrouter.Pointer("openai/gpt-5.4"),
25 })
26 if err != nil {
27 log.Fatal(err)
28 }
29 if res != nil {
30 // handle response
31 }
32}

Parameters

ParameterTypeRequiredDescriptionExample
ctxcontext.Context✔️The context to use for the request.
slugstring✔️URL-safe slug identifying the preset. Created if it does not exist.my-preset
responsesRequestcomponents.ResponsesRequest✔️N/A{"input": [{"content": "Hello, how are you?","role": "user","type": "message"}
],
“model”: “anthropic/claude-4.5-sonnet-20250929”,
“temperature”: 0.7,
“tools”: [
{"description": "Get the current weather in a given location","name": "get_current_weather","parameters": {"properties": {"location": {"type": "string"}
},
“type”: “object”
},
“type”: “function”
}
],
“top_p”: 0.9
}
opts[]operations.OptionThe options for this request.

Response

*components.CreatePresetFromInferenceResponse, error

Errors

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

ListVersions

Lists all versions of a preset, ordered by version number ascending (oldest first).

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.Presets.ListVersions(ctx, "my-preset", 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.
slugstring✔️URL-safe slug identifying the preset.my-preset
offsetoptionalnullable.OptionalNullable[int64]Number of records to skip for pagination0
limit*int64Maximum number of records to return (max 100)50
opts[]operations.OptionThe options for this request.

Response

*operations.ListPresetVersionsResponse, error

Errors

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

GetVersion

Retrieves a specific version of a preset by its slug and version number.

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.Presets.GetVersion(ctx, "my-preset", "1")
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.
slugstring✔️URL-safe slug identifying the preset.my-preset
versionstring✔️Version number of the preset.1
opts[]operations.OptionThe options for this request.

Response

*components.GetPresetVersionResponse, error

Errors

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