Skip to content

Model gateway & budgets

ExoHuman routes model calls through an instance model gateway. Administrators connect providers once; every agent on every runtime can then use the published models, and teams can be limited to an allowlist and a spending budget.

Settings → Models → Add provider connects Anthropic, OpenAI, Google, OpenAI-compatible endpoints and other providers with an API key or an account sign-in (OAuth). Each enabled model is published as <connection>/<model> — for example anthropic/claude-sonnet-5 — and appears in the searchable model selector wherever a model is chosen: agent creation, chat, tasks, loops, schedules and agent settings.

A model enabled in Settings → Models is usable on the next run without restarting anything. A model no runtime can use returns the same actionable error everywhere.

Under Settings → People and teams → My teams → Models and budget, an administrator who is a member of the team can set:

  • Allowed models — an explicit list, or all current and future gateway models;
  • Budget — a shared USD spending limit over a rolling 1, 7 or 30 days. A budget of zero blocks new requests.

Before saving, an impact review shows removed models, future-model restrictions, budget reductions and the members affected. A route test sends a tiny request (at most 16 output tokens) through the team’s route to confirm it works; it may incur a small provider charge.

The gateway enforces the allowlist and budget on each request. Budgets are a spending control, not a hard reservation — requests already in flight can finish. Members see the policy read-only and can test allowed routes.

Team model access can be gated by Feature access (team_model_gateway).

Bring your own Anthropic, OpenAI or Google keys and pay the provider directly with no markup, or use the managed model gateway billed at provider list price plus 5%.

Compute (per-minute agent time) and model tokens are billed separately — see Billing. You can also use your own provider keys on any plan.

All endpoints require an interactive session of a team member:

| Endpoint | Method | Purpose | |---|---|---| | /api/teams/{team_id}/models | GET / PUT / DELETE | Read, update or retire the team’s model policy | | /api/teams/{team_id}/models/catalog | GET | Models available to choose from | | /api/teams/{team_id}/models/impact | POST | Impact review of a proposed change | | /api/teams/{team_id}/models/test | POST | Route test |