Create deployment
Authorizations
API key with the vk_ prefix. Create one from the dashboard.
Body
Inference engine: "vllm" (default) or "max" (Modular MAX). Omitted => vllm.
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).
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.
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).
VS-313: idle seconds before a min_replicas=0 deployment parks (scaled_to_zero). Omitted => 3600. Floor 300 (Fireworks' convention).
VS-313: optional GC — a deployment parked at zero with no traffic for this many days goes terminal (stopped). Omitted => kept forever.
HF cache-through (source=huggingface only): also save the downloaded snapshot to the caller's model library so later deploys of this repo start from S3 instead of the HF hub. Best-effort — a failed upload never affects this deployment. Omitted => no caching.
VS-370: extra vLLM CLI flags appended verbatim to the engine command (argv list, e.g. ["--speculative-config", "{...}", "--kv-cache-dtype", "fp8"]). vllm engine only. Flags the platform owns (--model, --port, --host, --api-key, --served-model-name) are rejected at create.
VS-426: explicit vLLM serving image (e.g. "vllm/vllm-openai:v0.25.1") for architectures newer than the platform default vLLM. Official upstream images only (vllm/vllm-openai[-rocm]:). vllm engine only. Forces the docker launcher on every provider, including AWS. Omitted => platform default.
Opt-in vLLM startup diagnostics: the serving agent exports VLLM_LOGGING_LEVEL=DEBUG + VLLM_GC_DEBUG=1 to the engine, records startup phase timings, and reports them on the first healthy heartbeat (or in the failure detail with a deeper stderr tail). Default false — diagnostic logging slows inference, so use for diagnosis launches, not steady customer traffic.
Request traces: capture this deployment's chat request/response bodies and make them queryable via /v1/deployments/{id}/traces. Default false (privacy: enabling stores end-user prompt/completion content, retained per trace_retention). Requires the traces feature; billed per 1k traces beyond the monthly free allowance.
Trace retention class: omitted/null = "base" (14-day retention, base rate), "extended" = 400-day retention at the extended rate. Only meaningful with trace_bodies=true.
Response
The created deployment
queued, provisioning, serving, unhealthy, stopped, failed, scaled_to_zero, waking For a custom_model deployment, the saved model this was created from (provenance). Also set on a source=huggingface deployment that took the transparent cache hit (serving from the caller's cached S3 copy). Null otherwise.
HF cache-through: the library model (status importing) this deployment's box is uploading its snapshot into. Null unless the deployment was created with cache=true and the upload is the one this boot owns.
Pydantic GPUInfo (with type field). Rust uses gpu_type internally
but serializes as "type" for JSON parity.
BYOC (provider='huggingface'): the HF hub repository this endpoint serves under the owner's account. Null for every non-BYOC deployment.
VS-370: the extra vLLM CLI flags this deployment was created with (argv list). Null unless supplied at create.
VS-426: the explicit vLLM serving image this deployment was created with. Null unless supplied at create.
Whether this deployment was created with startup diagnostics on.
Whether request/response bodies are captured as traces.
Trace retention class ("extended" or null = base). Null unless trace_bodies deployments set it.
Startup phase timings reported by a profiled deployment's first healthy heartbeat (seconds: model_sync_s, engine_start_to_healthy_s, total_s). Null unless startup_profiling was set and the engine reached healthy.
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).
Observed: replicas currently serving with a routable endpoint.
Replica-count bounds. min == max => fixed N (autoscaling off).
Per-replica concurrency setpoint (stored as target_ongoing_requests).
VS-313: idle window before a min=0 deployment parks (None = 3600s).
VS-313: parked-deployment GC in days (None = kept forever).

