Skip to Content
Connect a provider

Connect a provider

To use an AI model in almyty, you connect the provider that runs it, such as OpenAI, Anthropic or Mistral, with your own key. Once connected, every agent, workflow step and AI-powered tool can use that provider’s models, and you pay the provider directly at their prices. For example: connect OpenAI once, and your support agent can answer with GPT-4o today and switch to another model tomorrow.

A connection is a named key (or the address of a server you run, Ollama, or a cloud account). Manage connections on Models; their keys also appear in Credentials. Connecting one makes its models available in every model picker. You can connect the same provider more than once, each with its own name, key and models.

Models page

In the dashboard

  1. Open Models in the sidebar and click Connect a provider, or click Add a connection at the bottom of any model chooser to do the same without leaving the page.
  2. Choose your provider from the searchable Provider list, including Your own server and Ollama.
  3. Name the connection. It starts as the provider’s name; give it one that says what it is for, such as “OpenAI - research team”.
  4. Paste the API key, or click Use a saved key instead and pick a key already in Credentials (or add one there without leaving the page). Your own server asks for its address and an optional key; Ollama asks for an Ollama Cloud key, or the address of an Ollama you run (see Ollama). A provider that needs something more asks only for that: AWS Bedrock the region, Azure the resource and the model name in Azure, Vertex AI the project and the model, RunPod the endpoint. A provider that does not publish its list of models (Qwen, Z.ai, Fireworks, SambaNova, Doubao Ark, Spark, Vertex AI) asks which model to use.
  5. Who can use it reads “everyone in your organization”. Click Change to make it yours alone or a team’s.
  6. Click Save.

almyty checks the key with one real call. If the check fails you see one plain line, such as “OpenAI rejected this key.”, next to the key field, with the provider’s own words under Details and a link to get a key. Nothing is saved until the key works.

When it works, the form opens the new connection under Models, or returns to the page that sent you. All models are offered initially; choose which ones it may offer on its connection page.

A connection’s page

Click a connection on the Models page, or open its key from Credentials. The header shows its name (the pencil renames it), whether its key works and which models it offers, with Check again to re-check the key and fetch its model list again.

When the provider refuses a connection’s key, almyty turns the connection off. Its page then says This connection is inactive, gives the reason from its last check, and offers Replace key and Check again right there. While it is off, its models are not offered anywhere; once a check passes again, it is back on.

  • Models: every model its key reaches with price, how much text it can read at once, and status. Tick the ones it offers; Allow new models automatically says whether a model the provider adds later is offered too. With the switch off and one model ticked, the key serves that model and nothing else. With none ticked the connection is paused. A model an agent uses cannot be unticked until those agents use another one; saving names them. See Which models a connection offers.
  • Settings: Replace key, who can use it, the default model it answers with when a step names none, and Advanced: your own price, reading limit, privacy level, region and abilities per model, an admin key for matching usage with the provider’s bill (OpenAI, Anthropic), and default answer settings. Remove connection asks once, naming the agents that use its models; their owners are told afterwards that the model is no longer available. Its models stay in past runs.
  • Open models on this account, on a cloud account connection: see Your cloud account.

The connection’s key is listed on Credentials under the connection’s name; renaming one renames the other. Every key picker offers it too, since the same key serves the provider’s other services.

Ollama

Ollama runs open models, either on Ollama’s own hosted service or on a machine you run. Choosing Ollama asks Where Ollama runs, with Ollama Cloud picked first.

  • Ollama Cloud is Ollama’s hosted service. Paste an API key from ollama.com/settings/keys ; nothing else is asked. You get Ollama’s hosted models (large open models like gpt-oss:120b or qwen3.5:397b, without hardware of your own). Ollama bills them by plan, so their price reads “Price unknown” rather than zero; track that spend in your Ollama account.
  • Your own server is an Ollama you run. Give its address (for example http://build-box:11434) and, only if it sits behind a proxy that checks one, a key. Its models are the ones you pulled onto it, and they are free and marked as local. On hosted almyty the server must be reachable at a public address.

Using the models

Every place that needs a model (an agent’s work mode, a workflow Model call step, a role) picks it from one search box listing every model your connections offer, grouped by connection, with each model’s price, or chooses Automatic to let almyty pick the cheapest model that fits. Add a connection at the bottom of that list connects another provider in place. See Choosing a model, Routing and Agents.

almyty records the tokens and cost of every AI call; see the totals per provider in Analytics.

From your AI assistant

almyty can itself be controlled from an AI assistant such as Claude Code or Cursor, which can add and list providers for you without opening the dashboard. See Control almyty via MCP.

For developers

Supported providers

almyty speaks to 33 providers out of the box, plus any OpenAI-compatible endpoint you point it at.

ProviderTypeAPI formatServes
AnthropicanthropicAnthropic messages (preferred)Claude Opus, Sonnet and Haiku
AWS Bedrockaws_bedrockOpenAI chat completions (preferred)Bedrock models in your own AWS account
Azure AI Foundryazure_ai_foundryOpenAI chat completions (preferred)Foundry model deployments in your own Azure subscription
Baidu ERNIE (Qianfan)qianfanOpenAI chat completions (preferred)ERNIE 5.1 and the open models Qianfan hosts
BasetenbasetenOpenAI chat completions (preferred)Open models, and your own weights or container
ByteDance Doubao (Ark)volcengineOpenAI chat completions (preferred)Doubao Seed 2.0, and DeepSeek on Ark
CerebrascerebrasOpenAI chat completions (preferred)Open models on wafer-scale hardware
CoherecohereOpenAI chat completions (preferred)Command and the Cohere retrieval models
DeepInfradeepinfraOpenAI chat completions (preferred)Open models per token, and your own weights on dedicated GPUs
DeepSeekdeepseekOpenAI chat completions (preferred)DeepSeek V4 and the reasoning line
DigitalOcean GradientdigitaloceanOpenAI chat completions (preferred)Open models on DigitalOcean serverless inference
Fireworks AIfireworksOpenAI chat completions (preferred)Open models and your own fine-tunes on dedicated GPUs
Google GeminigoogleGemini generateContent (preferred)Gemini Pro and Flash on the Gemini Developer API
GroqgroqOpenAI chat completions (preferred)Open models at very low latency
iFlytek SparksparkOpenAI chat completions (preferred)Spark X2, X1.5 and the 4.0 Ultra line
MiniMaxminimaxOpenAI chat completions (preferred)MiniMax M3 and the M2 family
Mistral AImistralOpenAI chat completions (preferred)Mistral Large, Medium and Codestral
ModalmodalOpenAI chat completions (preferred)Your own endpoints on Modal
Moonshot (Kimi)moonshotOpenAI chat completions (preferred)Kimi K3 and the K2.7 coding models
Nebius Token FactorynebiusOpenAI chat completions (preferred)Open models, and LoRA adapters on curated bases
NovitanovitaOpenAI chat completions (preferred)Open models, and any Hugging Face repo on a dedicated endpoint
OpenAIopenaiOpenAI chat completions (preferred)GPT-5 and the o-series
OpenRouteropenrouterOpenAI chat completions (preferred)One key across hundreds of models and providers
Qwen (QwenCloud)qwenOpenAI chat completions (preferred)Qwen3 Max, Plus and Flash on QwenCloud
RunPodrunpodOpenAI chat completions (preferred)Your own serverless vLLM worker
SambaNovasambanovaOpenAI chat completions (preferred)Open models on RDU hardware
StraitlystraitlyOpenAI chat completions (preferred)One key across 177 models, with cashback instead of a markup
Tencent Hunyuan (TokenHub)hunyuanOpenAI chat completions (preferred)Hunyuan, plus DeepSeek, GLM, Kimi and MiniMax on TokenHub
Together AItogetherOpenAI chat completions (preferred)A large open-model catalog, and your own fine-tunes
Upstage SolarupstageOpenAI chat completions (preferred)Solar Pro 4 and Solar Mini
Writer (Palmyra)writerOpenAI chat completions (preferred)Palmyra X6, X5 and the domain models
xAI (Grok)xaiOpenAI chat completions (preferred)Grok 4 and the Grok code models
Z.ai (GLM)zaiOpenAI chat completions (preferred)GLM 5.3 and the GLM coding models

Each native type ships with the right default base URL; set configuration.apiUrl to point at a compatible proxy instead. For custom (Your own server), set configuration.apiUrl to the server’s OpenAI-compatible endpoint; see Your own server. The configuration.apiKey field accepts whatever token the provider expects.

Types not in the table above

Four more provider types ship and appear in the Provider list, but have no row above: the table is generated from the provider registry, and these four still use an older per-vendor code path. The vendor reference gives the base URL, sign-in and model-listing details for each.

TypeVendorNotes
azure_openaiAzure OpenAIBase resolves from your resource name; authenticates with an api-key header. Not the same product as azure_ai_foundry, which does have a row above.
vertex_aiGoogle Vertex AIAuthenticates with a short-lived OAuth token minted per call from a service account. Not the same product as google, the Gemini Developer API.
huggingfaceHugging FaceBearer hf_...; the model list reports per-provider tool support and pricing.
perplexityPerplexityBearer key on a Responses-shaped surface, with an unauthenticated model list.

Configuration reference

FieldTypeRequiredDescription
namestringyesDisplay name, up to 100 characters
typeenumyesOne of the provider types listed above
configurationobjectyesEverything below nests inside it
descriptionstringnoUp to 1000 characters
configuration.apiKeystringnoProvider key, encrypted at rest. Required for Ollama Cloud; optional for an Ollama you run
configuration.apiUrlstringnoOverrides the type’s default base URL; the field a compatible proxy goes in. Required for custom
configuration.modelstringnoDefault model. Left blank, it resolves to the vendor’s current default by family rather than a hardcoded id
configuration.maxTokensnumbernoSent when set; otherwise the vendor’s own default applies
configuration.temperaturenumbernoSent when set; otherwise the vendor’s own default applies
configuration.topPnumbernoSent when set; otherwise the vendor’s own default applies
allowNewModelsbooleannoDefault true: models the provider adds later are offered. false: only allowedModels
hiddenModelsstring[]noModel ids unticked while allowNewModels is on
allowedModelsstring[]noModel ids ticked while allowNewModels is off; at least one

There is no top-level baseUrl, apiKey or model field: all three nest under configuration, and the base-URL override is named apiUrl. See the Providers API for the full body.

Ollama details

Ollama Cloud models are listed from GET /api/tags and called through the OpenAI-compatible /v1 surface with the key as a Bearer token; over the API, configuration.apiUrl is https://ollama.com and a key is required. An Ollama you run is called on its OpenAI-compatible /v1 endpoint for chat, streaming and tool calling; its models are read from the native GET /api/tags, and memory embeddings use the native POST /api/embed. Its models get the privacy tier local. Because such a server usually listens on localhost or a private network, almyty refuses those addresses unless the install opts in with OLLAMA_ALLOW_PRIVATE_URLS=true on the backend (see Self-hosting). An ollama connection made over the API with no apiUrl is Ollama Cloud (https://ollama.com), and needs a key.

Cost tracking

The cost of each call is its token counts times the model’s price: a price set on the connection wins, then the live price feed (see Pricing), then a built-in offline price table used only when the feed has no entry. Ollama usage is always recorded at $0 (an Ollama you run has no per-token price; Ollama Cloud bills by plan in your Ollama account). See Cost governance for reconciliation against provider actuals, which only OpenAI and Anthropic support.

Memory embeddings

The Memory module embeds content with the organization’s own providers. When several are configured, OpenAI (text-embedding-3-small) is preferred over Mistral (mistral-embed), then Ollama (nomic-embed-text by default via the native /api/embed endpoint, overridable with configuration.embeddingModel); with none, a deterministic local fallback keeps memory searchable. Each stored memory records the model that embedded it (dimensions vary per model), and vector search only compares like with like.

Other setup pages can link to /models/providers/new?type=openai (open with that provider chosen) and ?returnTo= to come back when done. A connection’s page is /models/providers/:id. The MCP control plane exposes add_provider and list_providers.

Connecting (POST /llm-providers/connect), provider CRUD, key checks and chat sessions are available over REST. See the Providers API reference.