Docs
AI & BYOK

Direct Provider Keys

Layer direct Anthropic, OpenAI, or Google keys on top of OpenRouter to save ~5%.

Direct provider keys are optional. OpenRouter is still required — it covers every model Ticket0 uses and acts as the automatic fallback when a direct-provider call fails. Adding direct keys alongside OpenRouter bypasses OpenRouter's ~5% markup for calls that can use the direct provider, while keeping OpenRouter as a reliability safety net.

See Setting up your OpenRouter key if you haven't added OpenRouter yet.

Ticket0 accepts direct keys from:

  • Anthropic — Claude models
  • OpenAI — GPT and embedding models
  • Google — Gemini models

When to add direct keys

ScenarioAdd direct keys?
You have a negotiated rate or credits with a providerYes — you'll save money on the calls that hit that provider
You're subject to data residency rules that need a specific provider's regionYes — routing through OpenRouter adds an extra hop
You want to minimise your AI billYes — skip OpenRouter's markup for all three providers
You just want something that works end to endNo — OpenRouter alone is enough

Adding an Anthropic key

  1. Get a key from console.anthropic.comAPI Keys
  2. In Ticket0, go to AI Agent → API Keys
  3. Paste your key into the Anthropic API key field
  4. Click Test to verify, then Save

Adding an OpenAI key

  1. Get a key from platform.openai.comAPI keys
  2. In Ticket0, go to AI Agent → API Keys
  3. Paste your key into the OpenAI API key field
  4. Click Test, then Save

Adding a Google key

  1. Get a key from aistudio.google.comGet API key
  2. In Ticket0, go to AI Agent → API Keys
  3. Paste your key into the Google API key field
  4. Click Test, then Save

How routing works with direct keys

Ticket0 picks the model for each task internally (fast/cheap for classification, higher-quality for drafts, a dedicated embedding model for the KB, etc.). You don't configure providers per task — Ticket0 looks at which model is needed, checks whether a direct key is configured for that model's provider, and decides:

  • Direct key configured for the required provider → call the provider directly. If the call fails (outage, rate limit, transient network error), automatically retry the same request via OpenRouter.
  • No direct key for that provider → call via OpenRouter.

You end up paying the cheaper direct rate when things are healthy, and you still get an answer back when a provider has a bad day.

If you remove your OpenRouter key, the automatic fallback goes away — direct-provider outages will surface to operators as AI errors. Keep OpenRouter configured even if all three direct keys are set.

On this page