AI models & your own keys
Every brand picks the language model behind its assistant. Out of the box you run on the platform default — nothing to configure, usage on the platform meter. Add your own provider key and you can pin any model in that provider's catalog, from a handful of Claude models to OpenRouter's 300+.
1. Pick a model for a brand
Go to Customize & Deploy → AI agent. The AI agent card at the top has two controls:
- Provider — every provider you hold a working key for, plus Platform default. Switching provider pre-selects that provider's first available model.
- Language model — the models that provider offers on your key. This is a type-to-search box, not a plain dropdown: with a handful of models the list opens as soon as you click; with a big catalog it tells you how many match and asks you to keep typing until fewer than 8 do. Every word you type has to appear somewhere in the model's name or id, so deep flash finds DeepSeek V4 Flash without knowing the exact id.
Picking a concrete model fires a quick live test against the provider — you'll see Testing model... and then Tested OK, or the provider's error if the model can't answer on your key. Save when you're happy.
The AI agent card — type into Language model to narrow a big catalog; picking a model runs a live test on your key.
Platform default is a moving pointer, on purpose. A brand left on Platform default resolves the model at request time, so when we upgrade the default your brand comes along automatically. The dropdown shows what it currently resolves to (“Platform default — currently …”).
2. Platform meter, or your own key
There are two ways to pay for model usage, and the picker reflects which one you're on:
- Platform meter (default). Your assistant runs on Quincer AI's shared provider keys. You don't add anything, and usage is metered on your Quincer plan. On the shared keys you get the Platform default model — individual models aren't pickable, because that choice belongs to whoever pays the provider bill.
- Your own key. Add a provider's API key and that provider's full catalog appears in the picker for your brands. Usage on your key is billed by the provider to your account, and the rate limits are yours, not shared.
Keys live in Settings → Workspace, in the AI API keys card (“Add your own API keys to unlock additional models”). There's a field per provider — OpenAI, Anthropic, Kindo, X-AI (Grok), Google Gemini, Baseten, OpenRouter and Together.ai — and one Save API keys button. When a provider is currently covered by the shared platform key, the field says so — naming that provider: “Currently using Quincer's shared OpenRouter key. Add your own to bill usage to your account and control the rate limits.”
Every key is checked when you save it: we ask the provider to list its models on that key and report back — Verified with a model count, rejected (the key is saved but nothing will run on it — replace it), or couldn't reach the provider (usually temporary). Saving several keys back-to-back can skip the re-check for a few seconds — save again if you want that one checked too. The same verdicts appear on the Customize & Deploy picker, so a rejected key is never a silent gap in the Provider list.
AI API keys
Add your own API keys to unlock additional models.
Unlocks OpenRouter — one key across hundreds of models, with automatic failover between upstream providers.
Unlocks Together.ai — open-weight models (Llama, Qwen, DeepSeek, Mixtral) on their own inference.
The AI API keys card on Settings → Workspace — each key is verified against the provider the moment you save it.
Keys belong to the organization that owns the brand. If you manage a brand owned by a different organization (a client's, say), a key added under your Settings doesn't apply to it — the picker tells you when that's the case.
3. OpenRouter — one key, 300+ models
OpenRouter is a router: one key, and its catalog spans hundreds of models across many vendors — the full list appears in your picker (300+ chat models at the time of writing), which is exactly why the model box is typeable. Three things happen automatically:
- Prices come with the catalog. OpenRouter publishes per-token rates alongside each model, and we import them — so usage on a freshly-picked OpenRouter model meters at the provider's real published rate, not at zero.
- Routing aliases are filtered out. Variant ids like
:freeand:nitroare routing aliases of models already in the list, so they're excluded rather than doubling the picker. - A no-training constraint rides every request. Some of OpenRouter's
upstream providers reserve the right to train on what they receive, and the choice is
per-request. We stamp
data_collection: "deny"onto every OpenRouter request at the transport layer, so your conversations only ever route to upstream providers that do not collect or train on prompt data — and OpenRouter's automatic failover still works, but only within the set of providers that satisfy that constraint. No call can opt out of this.
4. Together.ai — the open-weight lineup
Together.ai hosts open-weight models — Llama, Qwen, DeepSeek, Mixtral and friends — on its own inference. Add a Together.ai key and its chat catalog joins your picker. Together's listing also includes embeddings, rerankers, image and moderation models; those are filtered out, so everything you can pick can actually hold a conversation.
5. Voice: choose the OpenAI realtime model
Voice has its own model setting, separate from text chat. If your default voice provider is OpenAI Realtime, you can choose which realtime model answers calls — under Settings → Voice, in the Call behavior card:
- Set Default voice provider to OpenAI Realtime (gpt-realtime). An OpenAI realtime model field appears below it.
- Type any model id — it's free text, so you can adopt a new realtime release the day it ships, without waiting for us. The field commits when you click away.
- Leave it blank to stay on the platform default
(
gpt-realtime). Clearing the field puts you back on the default.
The model you pick is the model that answers — the same value drives the call connection, the live session, and the per-call cost report, so billing always reflects the model that actually spoke. Two cautions, both shown inline in the dashboard:
- It must be a realtime speech-to-speech model. A model id OpenAI doesn't recognise fails when the call connects.
- Check pricing for a non-default model. Voice cost is looked up by model id — if we hold no price for the id you typed, calls still work but their cost reports as $0 until a price is added.
Calls currently use gpt-realtime-mini. Leave blank for the platform default (gpt-realtime). Must be a realtime speech-to-speech model.
The OpenAI realtime model field on Settings → Voice — type any realtime model id; blank means the platform default.
Voice keys, silence timeout, call length, and the per-persona voice picker are covered in Voice chat.
Troubleshooting
| What you see | What it means |
|---|---|
| A provider you added a key for isn't in the Provider list | The picker says why, right above the dropdown: the provider rejected the key (replace it in Settings → Workspace), we couldn't reach the provider (usually temporary — reload in a minute), or the key was accepted but offers no usable chat models. |
| You only see Platform default | You haven't added any provider keys yet — the shared platform keys serve the default model but don't open their catalogs for picking. Add a key under Settings → Workspace. |
| A warning names a model your brand is pinned to | The brand is pinned to a model it can no longer run — usually because the key that unlocked it was removed. The banner offers to clear the pin back to Platform default. |
| Model test failed | The provider refused that model on your key. Check the key's permissions, or pick another model — the error text is the provider's own. |
| Voice calls report $0 cost | You set a custom OpenAI realtime model we hold no price for. The calls are fine; ask us to add the price so cost reporting is accurate. |