---
title: GPU instances
description: See the GPU instances Dekka plans to offer, join the waitlist, and request a private inference endpoint you can call through the AI Gateway.
section: Servers
order: 3
---

GPU instances are for training and serving models, and none can be provisioned yet because no GPU capacity is available in any region. **GPU instances** in the sidebar lists what Dekka plans to offer and takes waitlist requests. You can also request a private inference endpoint there, which the AI Gateway answers with a simulated reply outside production, so you can build against it before it runs.

## Which GPU instances are planned?

Every instance is on the waitlist, and none has a price until a host quotes for the capacity.

| Instance | `id` | GPUs | GPU memory | vCPU | Memory | Disk |
| --- | --- | --- | --- | --- | --- | --- |
| L4, one GPU | `gpu-l4-1` | 1 × L4 | 24 GB | 8 | 32 GiB | 200 GB |
| L40S, one GPU | `gpu-l40s-1` | 1 × L40S | 48 GB | 16 | 64 GiB | 400 GB |
| A100 80 GB, one GPU | `gpu-a100-80gb-1` | 1 × A100 80 GB | 80 GB | 16 | 128 GiB | 800 GB |
| A100 80 GB, four GPUs | `gpu-a100-80gb-4` | 4 × A100 80 GB | 320 GB | 64 | 512 GiB | 2000 GB |

`GET /v1/catalog/gpu-instances` is public and returns each instance with its `gpu_class`, which is `l4`, `l40s` or `a100-80gb`, along with `available` set to `false` and `availability` set to `waitlist`. Creating a `gpu_runtime` resource answers 422 `kind_not_available`, and the error's `details` give the waitlist's path.

## Join the waitlist

On an instance, choose **Join the waitlist**. Say how many you'd need under **How many** and what you'd run under **What you'd run**, add **When you'd start** if you know, and choose **Join the waitlist**. Nothing is reserved or charged, and Dekka contacts you when it can offer capacity.

The API takes the same request at `POST /v1/orgs/{org_id}/gpu/requests`, with a `quantity` from 1 to 64 and a `use_case` of up to 2000 characters. It also accepts a preferred `region_id`, and a `kind` of `reservation` to ask to reserve instances instead of joining the waitlist. An organisation can make 10 requests an hour.

```bash
curl https://api.dekka.cloud/v1/orgs/$ORG_ID/gpu/requests \
  -H "Authorization: Bearer $DEKKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "offering_id": "gpu-l40s-1",
    "quantity": 2,
    "use_case": "Fine-tuning a speech model on Twi and Ewe recordings",
    "desired_start": "2027-01-15"
  }'
```

## What do the request statuses mean?

Your requests are listed under **Your requests**, newest first.

| In the dashboard | `status` | Meaning |
| --- | --- | --- |
| Received | `received` | Dekka has the request |
| We've been in touch | `contacted` | Dekka has contacted you about capacity |
| Closed | `closed` | The request is settled |

## Withdraw a request

Choose **Withdraw** next to the request, or send `DELETE /v1/gpu-requests/{id}`. Dekka closes the request and stops listing it. A request that's already closed can't be withdrawn from the dashboard.

## Request a private inference endpoint

A private inference endpoint serves an open-weights model for your organisation, and your code calls it through the AI Gateway like any other model. Under **Private inference endpoints**, choose **Request an endpoint** and fill in these fields, then choose **Request endpoint**.

- **Name** is lowercase letters, digits and dashes, up to 63 characters. It must be unique in the organisation and can't change later, because it's part of the endpoint's model ID.
- **Model** is the model's Hugging Face ID, such as `meta-llama/Llama-3.1-8B-Instruct`.
- **GPU** is a GPU class from the catalogue.
- **Min replicas** and **Max replicas** run from 0 to 8, and the maximum must be at least 1 and no lower than the minimum. A minimum of 0 lets the endpoint scale to zero when it's idle. New endpoints have 0 and 1.

The endpoint joins the waitlist straight away. The API creates one with `POST /v1/orgs/{org_id}/inference-endpoints`, which also takes a `project_id` to limit the endpoint to that project's keys, and an organisation can create 20 an hour. `PATCH /v1/inference-endpoints/{id}` changes the model, the GPU class or the replicas.

To delete an endpoint, choose **Remove** next to it or send `DELETE /v1/inference-endpoints/{id}`, and the gateway stops answering its model at once.

## What do the endpoint states mean?

Every endpoint is on the waitlist for now. The other states apply once GPU capacity exists.

| In the dashboard | `state` | Meaning |
| --- | --- | --- |
| On the waitlist | `waitlisted` | The endpoint is waiting for GPU capacity |
| Provisioning | `provisioning` | The endpoint is starting on GPUs |
| Running | `running` | The endpoint is serving requests |
| Scaled to zero | `scaled_to_zero` | No replicas are running because the endpoint is idle |
| Failed | `failed` | The endpoint couldn't start or stopped working |

## Call an endpoint through the AI Gateway

Send `private/<name>` as the model, with a gateway key as the [AI Gateway](/docs/ai-gateway) page describes. The dashboard shows this ID under the endpoint's name with a copy button, and the API returns it as `gateway_model`.

```ts
const completion = await client.chat.completions.create({
  model: "private/support-assistant",
  messages: [{ role: "user", content: "Summarise this complaint in one sentence." }],
});
```

Outside production, the gateway answers with a simulated reply that carries `simulated: true`, streamed or not, and no model runs. In production it answers 503 `endpoint_unavailable` until capacity exists, with `availability` and the endpoint's `state` in the error's `details`.

An endpoint limited to a project answers only that project's keys and keys for the whole organisation, and any other key gets 404 `model_not_found`. Routing rules and an AI Gateway node's `allowed_models` accept only catalogue models, so a project or node that names particular models refuses every endpoint with 403 `model_not_allowed`, and a project's allowed providers don't apply.

Requests to an endpoint appear under **Requests** with no cost, and they don't count against your AI tokens because nothing runs on a GPU. `X-Dekka-Provider` is `private`, and `GET /v1/ai/models` lists the endpoints your key may use with `owned_by` set to `private`.
