/v1/chat/completions
and one MCP client pointed at /mcp, using Obol’s hosted platform. Nothing is
installed and no infrastructure is yours to run.
These examples use the production domains. Hosted Control and gateway are still being commissioned; complete this quickstart after your workspace is enabled.
Prerequisites
- An Obol account. You create one by signing in at the dashboard.
- An API key for at least one model provider (OpenAI, Anthropic, OpenRouter, or any OpenAI-compatible endpoint). Obol injects your key on the outbound hop; it never issues one.
Create a workspace
Openhttps://app.tryobol.dev and sign in. The dashboard calls
GET /api/v1/me, which provisions an organization and a first workspace on first
sign-in and returns default_workspace_id. Calling it again returns the same
workspace.
To do the same by hand, take a session token from the signed-in browser and send
it as a bearer token to control:
Control’s
/api/v1 routes authenticate a human operating the dashboard. They
never accept a virtual key, and a virtual key never reaches control. The two
credentials are not interchangeable — see invariants.Connect a model provider
A call to/v1/chat/completions resolves to a model connection in the
workspace’s published snapshot. Create one, supplying your own provider key:
provider values are openai, anthropic, openrouter, and
openai_compatible. The last one requires an explicit base_url.
model_pattern is what your client asks for; upstream_model is what the
provider is asked for. The key is sealed to the workspace and published into the
gateway snapshot in the same request — the response reports status: "active"
once that completes.
Mint a virtual key
Mint from the dashboard’s Keys page, or call control directly:plaintext exactly once:
prod workspace mints
ob_live_, every other environment mints ob_test_. Pass "prefix": "ob_live"
to override. Both forms are the same credential shape and both authenticate at
the gateway. Default scopes are ["mcp", "llm"] — /v1/* requires llm and
/mcp requires mcp, so a key minted with narrower scopes will be refused on
the route it does not carry. More in virtual keys.
Make your first call
The gateway speaks the OpenAI-compatible surface on/v1/*. Point any
OpenAI-compatible client at https://gateway.tryobol.dev/v1 with the key as the
bearer token.
/v1/responses, /v1/embeddings, and /v1/messages on
the same key. /v1/route is a separate discovery route and is never part of a
call — see routing.
Point an MCP client at the gateway
Tools are served from a single endpoint,https://gateway.tryobol.dev/mcp, with
the same virtual key as the bearer token.
GET /api/v1/workspaces/{workspace_id}/mcp returns the addresses to paste into a
client:
MCP client configuration
tools/list returns only the tools this key is permitted to call. A tool the key
cannot call is never shown.
Destructive tools in a
prod workspace require an approval unless policy
explicitly grants them. The gateway answers with an approval requirement, and the
client resupplies x-obol-approval-id and x-obol-approval-token on the retry.Self-hosting
Running the whole Obol stack — gateway, control plane, worker, dashboard — in your own environment is available on the Enterprise plan. See self-hosting for what it involves and how to have it enabled.Next steps
Virtual keys
Scopes, budgets, environments, rotation, and revocation.
Policy
CEL for visibility, Cedar for permission, approvals for destructive tools.
Architecture
How the data plane and control plane divide the work.
Control plane API
Workspaces, keys, policies, approvals, and receipts.