GoModel vs OpenRouter

Both put one API in front of many model providers. The difference is who runs it: GoModel is software you host with your own keys, OpenRouter is a hosted service with one account and one balance. GoModel can also use OpenRouter as one of its providers.

Side by side

OpenRouter wins on catalog and zero operations. GoModel keeps traffic, keys, and logs in your network.

GoModelOpenRouter
Who runs itYou, in your networkOpenRouter, as a hosted service
How you payProviders bill you directlyCredits, 5.5% fee on card purchases
Model catalog34 providers, your own keys500+ models from 80+ providers
Self-hosted modelsvLLM, SGLang, Ollama, llama.cppNot supported
Spend controlBudgets and rate limits per userPer-key limits, org guardrails
CachingExact and semantic response cachePrompt caching, exact response cache
OperationsYou run one containerNothing to host

Which one fits?

An honest split.

Pick GoModel if

  • Prompts, provider keys, and audit logs must stay in your network.
  • You call providers directly at list price, with no fee on volume.
  • You route to self-hosted models next to hosted ones.

Pick OpenRouter if

  • You want hundreds of models with one account and nothing to host.
  • It is a prototype or side project that fits the free tier.
  • You need providers you would never open a direct account with.

Better together

Add OpenRouter as one GoModel provider: heavy traffic goes direct, OpenRouter covers the long tail, and both sit behind the same keys, budgets, and failover.

Register OpenRouter
OPENROUTER_API_KEY=sk-or-...

# Optional: narrow the catalog
OPENROUTER_MODEL_FILTER_INCLUDE=anthropic/*,google/gemini-*,*:free
Fail over to it (config.yaml)
virtual_models:
  - source: claude-sonnet
    strategy: failover
    targets:
      - { model: anthropic/claude-sonnet-4-6 }
      - { model: openrouter/anthropic/claude-sonnet-4.6 }

Call it as openrouter/anthropic/claude-sonnet-4.6. GoModel sends OpenRouter's app attribution headers for you. OpenRouter figures are from openrouter.ai as of October 2026; it is not in the benchmark because a hosted service has no image to run on the same machine.

Try it against your own workload

Benchmarks are an argument; your traffic is the proof. GoModel speaks the OpenAI and Anthropic APIs natively, so pointing an existing app at it is a base-URL change.

1 · Run GoModel
docker run --rm -p 8080:8080 \
  -e LOG_FORMAT=text \
  -e OPENAI_API_KEY="your-openai-key" \
  enterpilot/gomodel
2 · Point your SDK at it
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8080/v1",
    api_key="your-gomodel-key",
)

Full setup, providers, and configuration live in the documentation. Questions? Ask on Discord or book a 30-minute call.