# Add an AI provider

Connect ATLAS to an upstream AI service so you can configure models on it. ATLAS works with OpenAI-compatible services, Azure, Anthropic, Amazon Bedrock and Ollama, so you can mix hosted vendors and your own servers.

## Before you begin

- You need the Owner or Admin role.
- Know which service you're connecting, and have its credentials ready. The [credentials table](https://docs.atlas.ilionx.dev/guides/admin/providers-and-models-add-provider.md#credentials-per-provider) lists what each type asks for.
- For Amazon Bedrock, turn on access to the models you'll use in the Bedrock console, in the region you'll connect to.

## Supported providers

Pick the entry that matches how the service authenticates and which API it speaks. Vendors that offer an OpenAI-style API, such as Mistral, Groq, DeepSeek, OpenRouter or vLLM, use the OpenAI-compatible type.

| Provider type                   | Use it for                                      | Model protocols                                                                         | Capabilities                                                  |
| ------------------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| **OpenAI Compatible**           | OpenAI and any service with an OpenAI-style API | OpenAI, Rerank, Transcription, Speech                                                   | Chat, embeddings, rerank, speech to text, text to speech      |
| **Azure** (OpenAI / AI Foundry) | Azure OpenAI deployments and Azure AI Foundry   | OpenAI, Anthropic Messages, Transcription, Speech                                       | Chat, embeddings, Claude chat, speech to text, text to speech |
| **Anthropic Compatible**        | Anthropic and Azure AI Foundry Claude endpoints | Anthropic Messages                                                                      | Claude chat                                                   |
| **AWS Bedrock**                 | Amazon Bedrock                                  | Bedrock Converse, Anthropic Messages, Titan and Cohere embeddings                       | Chat, Claude chat, embeddings                                 |
| **Ollama Compatible**           | Ollama servers you run yourself                 | Ollama, plus OpenAI, Rerank, Transcription and Speech for servers that offer those APIs | Chat, embeddings, and the extras through those protocols      |

## Credentials per provider

| Provider type        | What you enter                                                                                                                                                                         |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OpenAI Compatible    | **Base URL** and an API key, sent as a bearer token                                                                                                                                    |
| Azure                | **Base URL**, an API key and the **API Version**                                                                                                                                       |
| Anthropic Compatible | **Base URL** and an API key                                                                                                                                                            |
| AWS Bedrock          | **Region**, then either a **Bedrock API key** or **IAM access keys (SigV4)**: access key ID and secret access key, optionally with a **Role ARN** and **External ID** to assume a role |
| Ollama Compatible    | **Base URL** only. No authentication                                                                                                                                                   |

ATLAS stores secrets encrypted and never shows them again. When you edit a provider, leave a secret blank to keep the stored value.

## Add the provider

1. In the sidebar, open **Providers** and select **New Provider**.
2. Pick a **Provider** from the grouped list: **Custom**, **Self-hosted**, **Popular** or **Hosted**. This fills in the name (if blank), the type and a suggested base URL. You can edit all three.
   - **Custom** offers a plain OpenAI Compatible or Anthropic Compatible connection with your own base URL.
   - **Self-hosted** offers Ollama and vLLM with their usual local addresses.
   - Azure offers three variants: "Azure OpenAI (classic deployments)", "Azure AI Foundry — OpenAI" and "Azure AI Foundry — Anthropic". Replace `your-resource` in the URL with your Azure resource name.
3. Set the **Name**. For every type except Bedrock, also set the **Base URL**. This is the origin of the service's API, scheme and host only, with no trailing path. The lines "→ Chat:" and "→ Discovery:" show the addresses ATLAS will call. A malformed URL blocks creation. For Bedrock, enter the **Region** instead. ATLAS works out the endpoints.
4. Enter the credentials the type asks for, plus the **API Version** for Azure. For Bedrock, choose **Bedrock API key** (the default) or **IAM access keys (SigV4)** under **Authentication**.
5. Optional: set a **Model Discovery URL** to override the address ATLAS uses to list the service's models.
6. Select **Create Provider**. ATLAS opens the provider's detail page and tests the connection in the background.

**Result:** the provider appears in the list with a health indicator. If the background test fails, a warning explains why, for example that the service rejected the key. ATLAS saves the provider anyway. Fix the cause on the **Connection** tab, then select **Test Connection** on the **Health** tab or in the row menu.

Next, [add models](https://docs.atlas.ilionx.dev/guides/admin/providers-and-models-add-models.md) to the provider.

## Amazon Bedrock notes

- **Bedrock API key:** a long-term key (starting `ABSK`) or a short-term key, which expires within hours.
- **IAM access keys:** the IAM user needs `bedrock:InvokeModel`, `bedrock:InvokeModelWithResponseStream`, `bedrock:ListFoundationModels`, `bedrock:ListInferenceProfiles` and `bedrock:CountTokens`. You can narrow the resource from `*`.
- **Assuming a role:** the IAM user also needs `sts:AssumeRole` on the role's ARN. The role's trust policy must name the user as principal, optionally with an `sts:ExternalId` condition. An external ID needs a role ARN.
- A failed test names the cause: invalid credentials, a role that can't be assumed, a missing `bedrock:ListFoundationModels` permission, or an unreachable region.
- When you add models with **Discover**, inference profiles are marked "Inference profile". Their ID, for example `eu.…`, is the model identifier. For Claude models over the invoke API, set the model protocol to **Anthropic Messages**. Embedding models use the Titan or Cohere embed protocols.
- If you switch the authentication method later, you must enter the new secret. ATLAS removes the old one.

## Azure and Anthropic notes

Azure AI Foundry's Anthropic endpoint can't list its models. Add those models from the catalogue, or enter the deployment name by hand.

## Tune the provider afterwards

On the provider's detail page:

- **Connection** tab: base URL, API key (**Change**), API version and **Response timeout (s)**, from 1 to 600 seconds. If you leave the timeout empty, the gateway default of 180 seconds applies.
- **Request Handling** tab: the **Parameter Policy** (**Passthrough** or **Strict**), rules, **Discovered incompatibilities** and **Custom Headers**. See [Tune how a provider handles request parameters](https://docs.atlas.ilionx.dev/guides/admin/gateway-tune-provider-parameter-handling.md).
- **General** tab: name, description and **Enabled**. The slug is read-only.

Changing the provider type when models already exist asks you to confirm in the **Change connection?** dialog. ATLAS refuses the change if a model's protocol would no longer be supported.

## Delete a provider

Select **Delete** in the row menu or on the detail page.

- **No models on the provider:** ATLAS deletes the provider after you confirm.
- **Models configured on the provider:** ATLAS shows **Provider not deleted** and lists the models. Select **Keep provider** to stop, or **Delete (force)** to continue.

> [!WARNING]
> **Delete (force) cannot be undone**
>
> Force deletion permanently removes the provider, its connection settings, headers, parameter rules and health history, and every model on it with each model's settings. The models also disappear from every project's model list and every space restriction, and applications that call them get errors straight away. You must type the provider's name to confirm.

## Related

- [Add models to a provider](https://docs.atlas.ilionx.dev/guides/admin/providers-and-models-add-models.md)
- [Providers and models](https://docs.atlas.ilionx.dev/concepts/providers-and-models.md)
