> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synti.co/llms.txt
> Use this file to discover all available pages before exploring further.

# API Providers

> Choose a model provider or point Synti at a custom base URL, including OpenAI-compatible and self-hosted endpoints.

Synti talks to a model through a provider. Out of the box it defaults to Anthropic, but you can switch to another supported provider or aim a connection at any compatible endpoint you run yourself — a gateway, a proxy, or a local model server. This page covers picking a provider and setting a custom base URL. To manage several providers at once and switch between them per session, see [LLM Connections](/reference/config/llm-connections).

## Supported providers

| Provider   | `providerType`  | Notes                                          |
| ---------- | --------------- | ---------------------------------------------- |
| Anthropic  | `anthropic`     | Default. No base URL needed.                   |
| OpenAI     | `openai`        |                                                |
| Google     | `google`        | Gemini models.                                 |
| OpenRouter | `openrouter`    | Aggregator; use `vendor/model` model IDs.      |
| Groq       | `groq`          |                                                |
| Mistral    | `mistral`       |                                                |
| xAI        | `xai`           | Grok models.                                   |
| Custom     | `openai_compat` | Any OpenAI-compatible endpoint via a base URL. |

Anything that speaks an OpenAI-compatible API — a hosted gateway, an internal proxy, or a local runtime such as Ollama — connects through the custom option with a base URL.

## Setting a base URL

<Steps>
  <Step title="Open connection settings">
    Go to **Settings → AI** and add or edit a connection. On desktop you can also reach settings with `Cmd`/`Ctrl` + `,`.
  </Step>

  <Step title="Pick a provider or choose Custom">
    Selecting a built-in provider fills in the right endpoint automatically. Choose **Custom** to enter your own base URL.
  </Step>

  <Step title="Enter the base URL and model">
    Provide the full base URL, an API key if the endpoint requires one, and the model identifier you expect to call.
  </Step>

  <Step title="Save">
    Synti validates the connection before saving so you catch a bad URL or key immediately.
  </Step>
</Steps>

You can change any of these later from the same screen without recreating the connection.

## Model identifiers

Model naming depends on the provider:

* **Anthropic** — use the model ID directly, e.g. `claude-sonnet-4-5`.
* **OpenRouter and other gateways** — use the `vendor/model` form, e.g. `anthropic/claude-sonnet-4-5`.
* **Local runtimes** — reference the model name as your server exposes it, e.g. `llama3.2`.
* **Custom** — follow your endpoint's documentation for valid IDs.

## Image support on custom endpoints

Custom endpoints are treated as text-only until you tell Synti otherwise, because not every compatible server accepts images.

* **In the app** — open the model picker and toggle image support for the model.
* **In config** — set `supportsImages` at the endpoint or per model. A per-model value overrides the endpoint default.

```json theme={null}
{
  "customEndpoint": {
    "api": "openai_compat",
    "supportsImages": true
  }
}
```

## Storage

Base URLs and model names are not secrets, so they live in plain text in the [config file](/reference/config/config-file). API keys are encrypted separately in the [credential store](/reference/config/credentials). At launch you can also override a connection's base URL through the environment — see [Environment Variables](/reference/config/environment-variables).

<Tip>
  Local model servers reachable at an address like `http://localhost:11434` usually need no API key. Make sure your runtime exposes an OpenAI-compatible route before pointing a Synti connection at it.
</Tip>

## Related

<CardGroup cols={2}>
  <Card title="LLM Connections" icon="plug" href="/reference/config/llm-connections">
    Keep several providers and switch per session.
  </Card>

  <Card title="Credentials" icon="lock" href="/reference/config/credentials">
    Where the API key for each endpoint is stored.
  </Card>

  <Card title="Environment Variables" icon="terminal" href="/reference/config/environment-variables">
    Override provider and base URL at launch.
  </Card>

  <Card title="Config File" icon="file-code" href="/reference/config/config-file">
    Where base URLs and models are persisted.
  </Card>
</CardGroup>
