Set your organization’s LLM provider preference
Orbit’s AI-assisted features — agents, translations, and conversation summaries — run on a curated provider lineup, and your organization picks which tier it prefers. This guide walks you through recording that preference: what the endpoint does, who can record it, what the tiers cost, and how the choice shows up downstream on the LLM spend dashboard.What the endpoint does
The preference endpoints on the Organization API read and record your organization’s LLM provider selection from the curated lineup. A provider appears in the selectable list only after it passes a measured best-fit evaluation (quality, latency, cost); a provider still in evaluation is never selectable and never resolves, so the lineup grows only through curation. Today the lineup has two tiers:- Devotel LLM (
devotel) — the free base tier with zero vendor cost. It exists so every tenant can run AI-assisted features without a per-token vendor bill backing them. - Anthropic Claude (
anthropic) — the premium tier, priced per usage, on the standing partner lineup.
GET /api/v1/organization/llm-provider response always includes the current resolution, so “what would the platform actually use for this org?” is a question you can answer with one API call rather than by inference.
Recording the preference
Recording a selection is one PUT with a two-value enum:owner or admin role on your own organization, and it is a whitelabel-parent / root-organization capability: a subaccount can read the catalog and its resolution but always gets 403 on the PUT. Every write is audit-logged with the user, the chosen provider, and the timestamp.
Scope of the preference. The record is tenant-level, not per API key. One preference covers the whole organization — there is no per-key or per-agent provider override on this surface. Because usage aggregation (the per-API-key spend budgets governance) rides below the provider tier, a single tenant-level record is enough: the resolution the platform returns applies to every request in the organization.
Clearing back to default. Send null to clear a recorded preference:
source: "platform_default" rather than source: "stored". You can always read the effective state through GET /api/v1/organization/llm-provider/resolve if you only need the resolution without the catalog payload.
Cost and capability tradeoffs
The tradeoff between the two tiers is the standard free-vs-premium exchange, with one important property: the orbit-side mechanism is identical either way. Recording a preference changes a resolution, not an integration.- Devotel LLM (free base) — zero vendor cost. There is no per-token vendor bill behind the free tier, so AI-assisted features run with a zero vendor-cost ceiling by construction. The tradeoff is on the capability axis: the premium premium-tier models exist for the cases where the free base’s quality on long, nuanced outputs (a patient-facing summary, a translation that must preserve tone) is not enough.
- Anthropic Claude (premium) — priced per usage. The premium tier costs money per request, metered into your LLM spend. In exchange you get the higher-capability model for the AI features that resolve through it. The quality gain carries a spend line; the question the spend dashboard answers is whether that line is worth it per feature.
How it shows up on the LLM spend dashboard
The/insights/llm-spend dashboard (page title LLM spend) reports tokens and cents per agent, per model, and per conversation. When you change the preference, the per-provider split on that dashboard is where the change becomes visible: tokens and cents that flowed through Devotel LLM appear on its line, tokens and cents through Anthropic Claude on the premium line. Read the walkthrough in Insights dashboards — LLM spend for the endpoint shapes behind it (/api/v1/insights/llm-spend/...).
Minimum working sequence:
- Record the preference (
PUT /organization/llm-provider). - Wait for the preferred routing to land (the timeline below).
- Read the per-provider split on
/insights/llm-spend— the new provider starts accruing traffic; the old one drains.
Operator playbook
A worked example, end to end — enable premium on a patient-facing AI agent for higher-quality summaries, then watch whether the spend deltas justify the tier:- Read the current state. Call
GET /api/v1/organization/llm-providerand confirm the current selection, the resolution (source: "stored"vs"platform_default"), and the catalog rows that are selectable. If there is no recorded selection you already know what changing it would resolve to. - Record the preference.
PUT /api/v1/organization/llm-providerwith{ "provider": "anthropic" }— the response returns the new resolution (source: "stored"). - Watch the next seven days of per-provider LLM spend. Open
/insights/llm-spend(or call the LLM spend endpoints) and confirm the premium line is accruing tokens on the daily trend, by agent and by feature. Check the cost per summary against the free base’s per-summary cost on the same window — the comparison only means anything over a full week. - Decide. If the resolution rate and quality of the summaries justify the premium tier’s line on the dashboard, keep it. If the ROI drops, roll back:
PUT{ "provider": null }to clear, and the org returns to the platform default cleanly — the rollback is just the clearing step.
See also
- Insights dashboards — LLM spend — where the per-provider spend split appears
- Organization API — endpoint shapes for the preference endpoints
- Agent comparison — the per-KPI capabilities matrix behind the ROI read
- Per-API-key spend budgets — cap the ceiling the premium tier can spend under
- API key usage budget alerts — alert thresholds on usage budgets for enforcement
- AI agent cost controls — the governor surface for budget caps and model downshift