Getting started
Install:
go get github.com/hra42/openrouter-go
Minimum viable chat completion:
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/hra42/openrouter-go"
)
func main() {
client := openrouter.NewClient(openrouter.WithAPIKey(os.Getenv("OPENROUTER_API_KEY")))
resp, err := client.ChatComplete(context.Background(),
[]openrouter.Message{openrouter.CreateUserMessage("Hello, world")},
openrouter.WithModel("openai/gpt-4o-mini"),
)
if err != nil {
log.Fatal(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}
Message helpers
openrouter.CreateSystemMessage("You are a helpful assistant.")
openrouter.CreateUserMessage("Hello!")
openrouter.CreateAssistantMessage("Hi there! How can I help?")
openrouter.CreateToolMessage("Function result", "tool-call-id")
openrouter.CreateMultiModalMessage("user", "What's in this image?", "https://example.com/image.jpg")
Client configuration
client := openrouter.NewClient(
openrouter.WithAPIKey(os.Getenv("OPENROUTER_API_KEY")),
openrouter.WithTimeout(60 * time.Second),
openrouter.WithRetry(3, time.Second),
openrouter.WithDefaultModel("openai/gpt-4o-mini"),
openrouter.WithReferer("https://myapp.com"),
openrouter.WithAppName("MyApp"),
openrouter.WithHeader("X-Custom", "value"),
)