OpenToken Docs

Model ids

How OpenToken model ids work — the {provider}/{model} format and how to list them.

Every model in OpenToken is named with a canonical {provider}/{model} id. You send the canonical id; OpenToken resolves it to the correct upstream model and routes the request.

Format

{provider}/{model}

Both Google (google/…) and Anthropic (anthropic/…) models are registered. See Models for the full list with pricing, or call GET /v1/models for the live catalog.

Send the canonical id in the model field of a chat completion request:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.opentoken.kr/v1",
    api_key="OPENTOKEN_API_KEY",
)

resp = client.chat.completions.create(
    model="google/gemini-3-flash",
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.opentoken.kr/v1",
  apiKey: process.env.OPENTOKEN_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "google/gemini-3-flash",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(resp.choices[0].message.content);
curl https://api.opentoken.kr/v1/chat/completions \
  -H "Authorization: Bearer $OPENTOKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemini-3-flash",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

List available ids

GET /v1/models returns the registered ids in the OpenAI list shape:

curl https://api.opentoken.kr/v1/models \
  -H "Authorization: Bearer $OPENTOKEN_API_KEY"

Each entry carries its per-1M-token pricing (the same rates OpenToken bills at):

{
  "object": "list",
  "data": [
    {
      "id": "google/gemini-3-flash",
      "object": "model",
      "owned_by": "google",
      "pricing": { "input": 0.5, "output": 3.0, "cache_read": 0.05, "cache_write": 0.5 }
    },
    {
      "id": "anthropic/claude-sonnet-4-5",
      "object": "model",
      "owned_by": "anthropic",
      "pricing": { "input": 3.0, "output": 15.0, "cache_read": 0.3, "cache_write": 3.75 }
    }
  ]
}

Unregistered ids

An id that is not registered returns 400 with model_not_found. This includes ids whose upstream model exists but is not exposed through OpenToken (for example openai/gpt-4o).

{
  "error": {
    "message": "model \"openai/gpt-4o\" not found",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}
Available endpoints: POST /v1/chat/completions, POST /v1/embeddings, and GET /v1/models.

Next steps