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

# Use Together AI open models in Bolna voice agents

> Call Together AI serverless open models such as Llama, Qwen, DeepSeek and MiniMax from a Bolna voice agent. Model ID format, API keys, rate limits and dedicated options.

[Together AI](https://www.together.ai) hosts one of the widest catalogs of open-weight models behind a single OpenAI-compatible API. Its serverless tier is per-token with no provisioning, replicas or minimum spend, so you can try several open models on the same agent in an afternoon and keep the one that sounds best on calls.

Two things are specific to Together and catch people out:

* **Model IDs are namespaced** as `<organisation>/<model_name>`, for example `MiniMaxAI/MiniMax-M3`, not OpenAI-style flat names.
* **Serverless performance is best-effort.** For guaranteed throughput, Together offers provisioned throughput and dedicated endpoints, whose model catalog is different from the serverless one.

***

## Set up Together AI

<Steps>
  <Step title="Create an account and an API key">
    Register at [api.together.ai](https://api.together.ai), then open your project's [API keys](https://api.together.ai/settings/projects/~current/api-keys) settings page and copy a key.
  </Step>

  <Step title="Choose a model from the serverless catalog">
    Open Together's [serverless models](https://docs.together.ai/docs/serverless/models) list and copy the model ID from the chat models section. Ignore image, audio and embedding models; Bolna needs a chat model. Together's [recommended models](https://docs.together.ai/docs/inference/recommended-models) page is a good shortlist.
  </Step>

  <Step title="Choose Together AI in Bolna">
    Go to **Settings → Integrations → LLM → Custom LLM → Add model**, or choose **+ Add custom LLM** from the **LLM Provider** dropdown on an agent. Select **Together AI**.

    <Frame caption="Together AI selected in the Add custom model dialog">
      <img src="https://mintcdn.com/bolna-54a2d4fe/0EXypen329Eb5XE2/images/custom-llm/providers/together-selected.png?fit=max&auto=format&n=0EXypen329Eb5XE2&q=85&s=f3ff135c21e91fd16567c9201d3d9377" alt="Bolna Add custom model dialog with Together AI selected and api.together.ai/v1 shown as the endpoint placeholder" width="1024" height="1140" data-path="images/custom-llm/providers/together-selected.png" />
    </Frame>
  </Step>

  <Step title="Register the model">
    <Tabs>
      <Tab title="Dashboard">
        * **Model name**: the full Together model ID, for example `MiniMaxAI/MiniMax-M3`
        * **Endpoint URL**: `https://api.together.ai/v1`
        * **API key**: your Together API key
        * **Family**: the model's family, for example `minimax`, `llama` or `qwen`

        <Frame caption="Together AI with a namespaced model ID">
          <img src="https://mintcdn.com/bolna-54a2d4fe/aV72vktown5Rn3f1/images/custom-llm/providers/together-filled.png?fit=max&auto=format&n=aV72vktown5Rn3f1&q=85&s=3f48e4b8cfd4114a8290450ae6379e03" alt="Add custom model dialog with Together AI selected, model MiniMaxAI/MiniMax-M3, endpoint api.together.ai/v1, masked key and family minimax" width="1024" height="1092" data-path="images/custom-llm/providers/together-filled.png" />
        </Frame>
      </Tab>

      <Tab title="API">
        ```bash theme={"system"}
        curl --request POST \
          --url https://api.bolna.ai/user/model/custom \
          --header 'Authorization: Bearer <BOLNA_API_KEY>' \
          --header 'Content-Type: application/json' \
          --data '{
            "custom_model_name": "MiniMaxAI/MiniMax-M3",
            "custom_model_url": "https://api.together.ai/v1",
            "custom_model_key": "<TOGETHER_API_KEY>",
            "custom_model_family": "minimax"
          }'
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Select it on the agent">
    On the **Intelligence** tab pick **custom** and the Together model, save, then call the agent.
  </Step>
</Steps>

***

## Comparing several open models

Together makes A/B testing cheap. Register two or three models, for example a small fast model and a larger one, each as its own custom model in Bolna. Clone the agent, point each copy at a different model, and compare call recordings for reply latency, accuracy and how natural the speech sounds. Keep the winner and delete the rest from **Settings → Integrations**.

***

## Rate limits and throughput

Most serverless traffic never hits a limit, but Together may rate-limit large bursts or apply custom limits to models in especially high demand. For a large outbound batch:

* Spread the batch over time instead of launching every call at once.
* Prefer a model that isn't in peak demand.
* For committed capacity, use Together's provisioned throughput or a dedicated endpoint. Check the dedicated catalog first, as it doesn't list the same models as serverless.

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Model not found">
    Include the organisation prefix and match the case exactly. `MiniMax-M3` alone won't resolve; `MiniMaxAI/MiniMax-M3` will.
  </Accordion>

  <Accordion title="Occasional 429 errors during a campaign">
    Serverless capacity is best-effort. Pace the batch, or move to provisioned throughput.
  </Accordion>

  <Accordion title="The endpoint rejected this API key">
    Keys are scoped to a Together project. Make sure the key belongs to the project with billing set up.
  </Accordion>
</AccordionGroup>

***

## Related

* [Custom LLM inference](/docs/custom-llm-inference)
* [Fireworks AI](/docs/custom-llm-inference/fireworks): open models with serverless and on-demand GPUs
* [OpenRouter](/docs/openrouter): Bolna's built-in integration for routing across many providers


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.