Getting Started

Welcome to OkRouter! This guide will help you get started with our API.

Quick Start

  1. 1
    Create an account at okrouter.com/signup
  2. 2
    Generate an API key from your dashboard
  3. 3
    Make your first request using the code below

Authentication

All API requests require authentication using your API key.

curl https://api.okrouter.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4-turbo",
    "messages": [
      {"role": "user", "content": "Hello!"}
    ]
  }'

Making Requests

OkRouter is fully compatible with the OpenAI API format.

Using the OpenAI SDK

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env.OKROUTER_API_KEY,
  baseURL: 'https://api.okrouter.com/v1'
});

const response = await client.chat.completions.create({
  model: 'gpt-4-turbo',
  messages: [
    { role: 'user', content: 'Hello!' }
  ]
});

console.log(response.choices[0].message.content);

Available Models

Access hundreds of models from leading AI providers.

OpenAI

  • • gpt-4-turbo
  • • gpt-4
  • • gpt-3.5-turbo

Anthropic

  • • claude-3.5-sonnet
  • • claude-3-opus
  • • claude-3-haiku

Google

  • • gemini-pro
  • • gemini-pro-vision

Meta

  • • llama-3-70b
  • • llama-3-8b

Error Handling

OkRouter uses standard HTTP response codes.

CodeDescription
200Success
400Bad Request
401Unauthorized
429Rate Limit Exceeded
500Server Error

SDK Examples

Use OkRouter with your favorite programming language.

Python

# Install the OpenAI SDK
pip install openai

# Use with OkRouter
from openai import OpenAI

client = OpenAI(
    api_key="your-okrouter-api-key",
    base_url="https://api.okrouter.com/v1"
)

# Chat completion
response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)

print(response.choices[0].message.content)

# Streaming response
stream = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{"role": "user", "content": "Tell me a story"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Node.js / TypeScript

// Install the OpenAI SDK
npm install openai

// Use with OkRouter
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'your-okrouter-api-key',
  baseURL: 'https://api.okrouter.com/v1'
});

// Chat completion
const response = await client.chat.completions.create({
  model: 'openai/gpt-4o',
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'Hello!' }
  ]
});

console.log(response.choices[0].message.content);

// Streaming response
const stream = await client.chat.completions.create({
  model: 'openai/gpt-4o',
  messages: [{ role: 'user', content: 'Tell me a story' }],
  stream: true
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content || '');
}

Go

// Install the OpenAI Go SDK
go get github.com/sashabaranov/go-openai

// Use with OkRouter
package main

import (
    "context"
    "fmt"
    openai "github.com/sashabaranov/go-openai"
)

func main() {
    config := openai.DefaultConfig("your-okrouter-api-key")
    config.BaseURL = "https://api.okrouter.com/v1"
    client := openai.NewClientWithConfig(config)

    resp, err := client.CreateChatCompletion(
        context.Background(),
        openai.ChatCompletionRequest{
            Model: "openai/gpt-4o",
            Messages: []openai.ChatCompletionMessage{
                {
                    Role:    openai.ChatMessageRoleSystem,
                    Content: "You are a helpful assistant.",
                },
                {
                    Role:    openai.ChatMessageRoleUser,
                    Content: "Hello!",
                },
            },
        },
    )

    if err != nil {
        fmt.Printf("Error: %v\n", err)
        return
    }

    fmt.Println(resp.Choices[0].Message.Content)
}

Java

// Add dependency to pom.xml
<dependency>
    <groupId>com.theokanning.openai-gpt3-java</groupId>
    <artifactId>service</artifactId>
    <version>0.18.2</version>
</dependency>

// Use with OkRouter
import com.theokanning.openai.OpenAiApi;
import com.theokanning.openai.service.OpenAiService;
import com.theokanning.openai.completion.chat.*;

public class OkRouterExample {
    public static void main(String[] args) {
        OpenAiService service = new OpenAiService(
            "your-okrouter-api-key",
            Duration.ofSeconds(30)
        );

        // Override base URL
        service.setBaseUrl("https://api.okrouter.com/v1");

        ChatCompletionRequest request = ChatCompletionRequest.builder()
            .model("openai/gpt-4o")
            .messages(Arrays.asList(
                new ChatMessage("system", "You are a helpful assistant."),
                new ChatMessage("user", "Hello!")
            ))
            .build();

        ChatCompletionResult result = service.createChatCompletion(request);
        System.out.println(result.getChoices().get(0).getMessage().getContent());
    }
}

Migration Guide

Migrate from OpenAI or Anthropic to OkRouter in minutes.

From OpenAI

Only 2 changes needed to migrate from OpenAI:

Before (OpenAI)
from openai import OpenAI

client = OpenAI(
    api_key="sk-..."
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[...]
)
After (OkRouter)
from openai import OpenAI

client = OpenAI(
    api_key="your-okrouter-key",
    base_url="https://api.okrouter.com/v1"
)

response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[...]
)

From Anthropic

Use the OpenAI SDK format for all providers:

Before (Anthropic SDK)
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-ant-..."
)

response = client.messages.create(
    model="claude-3-opus-20240229",
    messages=[...]
)
After (OkRouter)
from openai import OpenAI

client = OpenAI(
    api_key="your-okrouter-key",
    base_url="https://api.okrouter.com/v1"
)

response = client.chat.completions.create(
    model="anthropic/claude-3-opus",
    messages=[...]
)

API Key Management

Best practices for managing your API keys securely.

Getting Your API Key

  1. 1.Sign up at api.getgoapi.com
  2. 2.Navigate to the API Keys section in your dashboard
  3. 3.Click "Create New Key" and give it a descriptive name
  4. 4.Copy the key immediately (it won't be shown again)

Security Best Practices

  • Never commit API keys to version control (use .env files)
  • Use environment variables to store keys
  • Rotate keys regularly (every 90 days recommended)
  • Use separate keys for development and production
  • Monitor usage regularly for suspicious activity
  • Revoke compromised keys immediately

Environment Variables Example

# .env file (never commit this!)
OKROUTER_API_KEY=your-api-key-here

# .env.example file (commit this as a template)
OKROUTER_API_KEY=your-api-key-here

# Usage in code
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("OKROUTER_API_KEY"),
    base_url="https://api.okrouter.com/v1"
)

Rate Limits

Rate limits vary by plan and model.

Free Plan
60 req/min
Pro Plan
600 req/min
Enterprise
Custom