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

# Deploying an endpoint

> Provision a dedicated GPU endpoint from the dashboard or the API.

You can deploy a dedicated endpoint in the dashboard with a guided wizard, or via
the management API at `https://gateway.omnia-voice.com/v1` using your workspace
API key.

## From the dashboard

<Steps>
  <Step title="Open Dedicated → Deploy">
    In the dashboard, go to **Dedicated** and start a new deployment.
  </Step>

  <Step title="Choose model & hardware">
    Select the base model, then the region, GPU type, and GPUs per replica. Only
    combinations that are actually available are shown.
  </Step>

  <Step title="Set autoscaling">
    Choose the minimum and maximum number of replicas, and name the endpoint.
  </Step>

  <Step title="Confirm funds and deploy">
    The wizard shows the hourly rate. You need enough prepaid balance to cover the
    minimum runway; if not, it tells you the exact shortfall to add. Deploy when
    ready.
  </Step>
</Steps>

## Discover available hardware

Before creating an endpoint, list the GPU types, regions, and flavors you can
deploy against with `GET /v1/dedicated/templates`. Deploy only against
combinations returned here.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://gateway.omnia-voice.com/v1/dedicated/templates \
    -H "Authorization: Bearer $OMNIA_API_KEY"
  ```

  ```python Python theme={null}
  import requests

  BASE = "https://gateway.omnia-voice.com/v1"
  headers = {"Authorization": f"Bearer {OMNIA_API_KEY}"}

  templates = requests.get(f"{BASE}/dedicated/templates", headers=headers).json()
  ```
</CodeGroup>

<Note>
  If a GPU count you need (above 8 per replica) or a region isn't available in the
  templates, the dashboard shows **"contact sales"**; larger and custom
  deployments are arranged directly.
</Note>

## Create an endpoint

Create an endpoint with a `POST` to `/v1/dedicated`.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://gateway.omnia-voice.com/v1/dedicated \
    -H "Authorization: Bearer $OMNIA_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "prod-qwen",
      "description": "Production Qwen3-32B endpoint",
      "modelName": "Qwen/Qwen3-32B",
      "flavorName": "<flavor>",
      "gpuType": "<gpu-type>",
      "gpuCount": 1,
      "region": "<region>",
      "minReplicas": 1,
      "maxReplicas": 2
    }'
  ```

  ```python Python theme={null}
  import requests

  BASE = "https://gateway.omnia-voice.com/v1"
  headers = {
      "Authorization": f"Bearer {OMNIA_API_KEY}",
      "Content-Type": "application/json",
  }

  resp = requests.post(
      f"{BASE}/dedicated",
      headers=headers,
      json={
          "name": "prod-qwen",
          "description": "Production Qwen3-32B endpoint",
          "modelName": "Qwen/Qwen3-32B",
          "flavorName": "<flavor>",
          "gpuType": "<gpu-type>",
          "gpuCount": 1,
          "region": "<region>",
          "minReplicas": 1,
          "maxReplicas": 2,
      },
  )
  created = resp.json()  # -> { "id": "<endpoint-id>" }
  ```
</CodeGroup>

A successful create returns **just the new endpoint's id**:

```json theme={null}
{ "id": "<endpoint-id>" }
```

The endpoint provisions asynchronously. Fetch it with
`GET /v1/dedicated/{id}` to read its **routing key** and current **status** once
it's ready:

```json theme={null}
{
  "id": "<endpoint-id>",
  "name": "prod-qwen",
  "modelName": "Qwen/Qwen3-32B",
  "routingKey": "<routing-key>",
  "minReplicas": 1,
  "maxReplicas": 2,
  "enabled": true,
  "status": "deploying"
}
```

Once running, route to the endpoint by passing `model = dedicated/<routing-key>`
on the inference API; see [Managing endpoints](/dedicated/manage#calling-a-dedicated-endpoint).

### Fields

| Field             | Required | Description                                                                        |
| ----------------- | -------- | ---------------------------------------------------------------------------------- |
| `name`            | Yes      | Human-readable name for the endpoint.                                              |
| `modelName`       | Yes      | The base model to serve (a catalog id, e.g. `Qwen/Qwen3-32B`).                     |
| `description`     | No       | Free-text description.                                                             |
| `flavorName`      | No       | Hardware flavor, from the templates endpoint.                                      |
| `gpuType`         | No       | GPU type to run on, from the templates endpoint.                                   |
| `gpuCount`        | No       | GPUs per replica.                                                                  |
| `region`          | No       | Region to deploy in, from the templates endpoint.                                  |
| `minReplicas`     | No       | Lower bound for autoscaling (warm capacity).                                       |
| `maxReplicas`     | No       | Upper bound for autoscaling (throughput/spend cap).                                |
| `customWeightsId` | No       | Serve a fine-tuned **model artifact** by its id.                                   |
| `fineTuningJobId` | No       | Alternative to `customWeightsId`: serve the output of a completed fine-tuning job. |

<Tip>
  To serve a model you trained, set either `customWeightsId` (the model artifact
  id) **or** `fineTuningJobId` (a completed job) instead of relying on the base
  model alone. See [Deploying a fine-tuned model](/fine-tuning/deploy-model).
</Tip>

<Warning>
  Deploying starts billing for GPU time and requires prepaid balance covering the
  minimum runway (by default one hour). If the balance is short, the create call is
  refused with the **exact shortfall** amount. If the wallet is later exhausted
  while running, the endpoint is stopped automatically.
</Warning>

## Need more than self-serve offers?

If you need more GPUs per replica than are listed, or a region that isn't
available, [contact sales](https://platform.omnia-voice.com/contact); larger and
custom deployments are arranged directly.

<Card title="Manage your endpoint" icon="sliders" href="/dedicated/manage">
  Call, scale, disable, and delete a running endpoint.
</Card>
