Skip to main content
POST
Create deployment

Authorizations

Authorization
string
header
required

API key with the vk_ prefix. Create one from the dashboard.

Body

application/json
model
string
required
name
string
required
gpu
object
required
source
string
provider
string | null
engine
string | null

Inference engine: "vllm" (default) or "max" (Modular MAX). Omitted => vllm.

num_replicas
integer<int32> | null

VS-341: number of GPU-box replicas to launch. Omitted => 1, which is byte-for-byte today's single-box behavior. Validated 1..=8 at create. Sugar for min_replicas == max_replicas == N (the CLI --replicas flag).

min_replicas
integer<int32> | null

Scaling foundation (§10): replica-count bounds. min == max => fixed N (autoscaling off — there is no boolean flag). Omitted => both default to num_replicas (fixed N). min = 0 arms scale-to-zero (VS-313): the fleet parks after the idle window and wakes on the next request.

max_replicas
integer<int32> | null
concurrency_target
number<double> | null

Per-replica concurrency setpoint the (VS-342) autoscaler targets: desired = ceil(total_ongoing / concurrency_target), clamped to [min_replicas, max_replicas]. Stored as target_ongoing_requests. Omitted => 8 (throughput-biased; lower it for latency-sensitive chat).

scale_to_zero_window_seconds
integer<int32> | null

VS-313: idle seconds before a min_replicas=0 deployment parks (scaled_to_zero). Omitted => 3600. Floor 300 (Fireworks' convention).

idle_delete_after_days
integer<int32> | null

VS-313: optional GC — a deployment parked at zero with no traffic for this many days goes terminal (stopped). Omitted => kept forever.

Response

The created deployment

object
string
required
id
string
required
status
enum<string>
required
Available options:
queued,
provisioning,
serving,
unhealthy,
stopped,
failed,
scaled_to_zero,
waking
name
string
required
model
string
required
source
string
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
source_model_id
string | null

For a custom_model deployment, the saved model this was created from (provenance). Null for other sources.

endpoint_url
string | null
gpu
null | object

Pydantic GPUInfo (with type field). Rust uses gpu_type internally but serializes as "type" for JSON parity.

provider
string | null
engine
string | null
num_replicas
integer<int32>

VS-341: DESIRED replica count (GPU boxes) behind this deployment. The observed count is ready_replicas — the K8s spec/status split; the CLI renders "ready/desired" (e.g. 2/3).

ready_replicas
integer<int32>

Observed: replicas currently serving with a routable endpoint.

min_replicas
integer<int32>

Replica-count bounds. min == max => fixed N (autoscaling off).

max_replicas
integer<int32>
concurrency_target
number<double> | null

Per-replica concurrency setpoint (stored as target_ongoing_requests).

scale_to_zero_window_seconds
integer<int32> | null

VS-313: idle window before a min=0 deployment parks (None = 3600s).

idle_delete_after_days
integer<int32> | null

VS-313: parked-deployment GC in days (None = kept forever).

cost_per_hour_usd
number<double> | null
total_cost_usd
number<double> | null
total_requests
integer<int32>
error
string | null
started_at
string<date-time> | null
stopped_at
string<date-time> | null