> ## 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.

# Connect Simplismart to Bolna voice agents

> Use a Simplismart shared endpoint or a dedicated, optimised deployment as the LLM behind a Bolna voice agent. Covers API keys, endpoints and model names.

[Simplismart](https://www.simplismart.ai) is an inference platform focused on optimising open models for speed. It gives you two ways to call a model, and the choice decides what you type into Bolna:

| | Shared endpoint | Dedicated endpoint |
| - | - | - |
| Infrastructure | Simplismart's shared pool | Isolated capacity reserved for you |
| Models | Pre-deployed models you can try in the Playground | Pre-optimised models from the Model Marketplace, or your own and fine-tuned models |
| Pricing | Per API call and usage | Deployment-based |
| Endpoint URL | `https://api.simplismart.live`, with no `/v1` | Shown on the deployment's **API** tab |

Start on the shared endpoint to try a model on a call, then move to a dedicated endpoint for stable latency under production load.

***

## Set up Simplismart

<Steps>
  <Step title="Create an account and try a model">
    Sign up at [app.simplismart.ai](https://app.simplismart.ai) and open the **Playground**. Pick an LLM, for example Gemma 4 31B Instruct, and send a few prompts in the style of your agent to judge reply speed and quality.
  </Step>

  <Step title="Create an API key">
    Go to **Settings → API Keys → Generate Key** in the Simplismart console. Name the key, choose an expiry and copy it. The same key works for shared and dedicated endpoints in your account.

    <Warning>
      Simplismart keys stop working at midnight UTC on their expiry date, and every call after that fails. Pick a long expiry, or ask [Simplismart support](mailto:support@simplismart.ai) for a key that doesn't expire.
    </Warning>
  </Step>

  <Step title="Pick the endpoint">
    <Tabs>
      <Tab title="Shared endpoint">
        Use `https://api.simplismart.live` as the base URL, with no `/v1`, and the model's ID as the model name. In the **Playground**, pick a model and click **Get API details** to copy the ID exactly, for example `google/gemma-4-31B-it`.
      </Tab>

      <Tab title="Dedicated endpoint">
        In the [Model Marketplace](https://app.simplismart.ai/model-marketplace), deploy a pre-optimised model in one click, or add your own model. When the deployment is running, open its **API** tab and copy the endpoint URL and the model name from the code snippet. See [inference and monitoring](https://docs.simplismart.ai/model-suite/deployments/inference-and-monitoring).
      </Tab>
    </Tabs>
  </Step>
</Steps>

***

## Register it in Bolna

<Steps>
  <Step title="Open the Add custom model dialog and choose Simplismart">
    Open **Settings → Integrations → LLM → Custom LLM → Add model**, or from an agent's **Intelligence** tab open the **LLM Provider** dropdown and choose **+ Add custom LLM**. Select **Simplismart**.

    The endpoint field is left empty. The shared endpoint is only shown as a placeholder so a dedicated URL isn't overwritten.

    <Frame caption="Simplismart selected: shared endpoint as placeholder, with a hint about dedicated deployments">
      <img src="https://mintcdn.com/bolna-54a2d4fe/0EXypen329Eb5XE2/images/custom-llm/providers/simplismart-selected.png?fit=max&auto=format&n=0EXypen329Eb5XE2&q=85&s=b14c93110be0c6958d87de90eeb950e4" alt="Bolna Add custom model dialog with Simplismart selected and api.simplismart.live shown as the endpoint placeholder" width="1024" height="1220" data-path="images/custom-llm/providers/simplismart-selected.png" />
    </Frame>
  </Step>

  <Step title="Fill in the model">
    <Tabs>
      <Tab title="Dashboard">
        * **Model name**: the Simplismart model ID, for example `google/gemma-4-31B-it`
        * **Endpoint URL**: `https://api.simplismart.live`, or your dedicated endpoint
        * **API key**: the key from **Settings → API Keys**
        * **Family**: for example `gemma`

        <Frame caption="Simplismart shared endpoint, filled in">
          <img src="https://mintcdn.com/bolna-54a2d4fe/aV72vktown5Rn3f1/images/custom-llm/providers/simplismart-filled.png?fit=max&auto=format&n=aV72vktown5Rn3f1&q=85&s=9d573906b21da101bf0e9a54645a4a21" alt="Add custom model dialog with Simplismart selected, model google/gemma-4-31B-it, endpoint api.simplismart.live, masked key and family gemma" width="1024" height="1172" data-path="images/custom-llm/providers/simplismart-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": "google/gemma-4-31B-it",
            "custom_model_url": "https://api.simplismart.live",
            "custom_model_key": "<SIMPLISMART_API_KEY>",
            "custom_model_family": "gemma"
          }'
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Select it on the agent">
    On the **Intelligence** tab choose **custom** and your Simplismart model, then save and test the agent.
  </Step>
</Steps>

***

## Things to know

* **Bolna can't check the key or the model ID when you save.** Simplismart doesn't serve a model list, so a wrong key or a misspelled model ID is saved anyway and first shows up as a silent agent on a call. Run the [streaming test](/docs/custom-llm-inference#test-your-endpoint-before-you-register-it) first, then place a web call.
* **Extra headers aren't supported.** Bolna sends only the `Authorization` header. If a dedicated deployment's API snippet also needs an `id` header, Bolna can't call it. Ask Simplismart for an endpoint that doesn't need one.
* **Tool calling.** Simplismart doesn't document tool support on shared endpoints, so test your agent's tools on a web call before going live. On a dedicated deployment, set the tool call parser when you compile the model. See the [optimization guide](https://docs.simplismart.ai/guides/optimization-guide).
* **Region.** For a dedicated deployment in a specific region, such as India, contact Simplismart. Running close to your callers cuts network time on every turn.

***

## When to move from shared to dedicated

* Calls show uneven time to first token during busy hours: shared capacity is used by other customers too.
* You need a fine-tuned or private model: only dedicated endpoints can run your own weights.
* You need a latency SLA for a high-volume campaign.

When you switch, register the dedicated endpoint as a **new** custom model, move your agents to it, then delete the old one. Agents resolve a custom model by its name, so a clear name for each model makes the switch easy to follow.

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Calls suddenly fail with 401">
    The key has passed its expiry date. Generate a new key under **Settings → API Keys**, add the model again with the new key, move your agents to it and delete the old one.
  </Accordion>

  <Accordion title="The agent is silent but the model saved fine">
    Because Simplismart has no model list, Bolna can't catch a wrong key or model ID when you save. Check both with the [streaming test](/docs/custom-llm-inference#test-your-endpoint-before-you-register-it). Keys from a different Simplismart workspace won't work.
  </Accordion>

  <Accordion title="Model not found on the shared endpoint">
    Copy the model ID exactly as Simplismart shows it, including case, for example `google/gemma-4-31B-it`. Only models Simplismart has pre-deployed are served on the shared endpoint.
  </Accordion>

  <Accordion title="A dedicated endpoint stopped responding">
    Check the deployment's status in the Simplismart console. A stopped or scaled-down deployment can't answer calls, even though the model stays registered in Bolna.
  </Accordion>
</AccordionGroup>

***

## Related

* [Custom LLM inference](/docs/custom-llm-inference): fields, save-time checks and extra request params
* [Nebius](/docs/custom-llm-inference/nebius): another provider with both serverless and dedicated endpoints
* [Intelligence Tab](/docs/agent-setup/llm-tab)


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