---
title: "Get a deployment"
method: GET
path: "/projects/{projectId}/endpoints/{endpointId}/deployments/{id}"
tags: ["DeploymentService"]
---

# Get a deployment

`GET /projects/{projectId}/endpoints/{endpointId}/deployments/{id}`

Retrieves a deployment's desired configuration, placement, runtime information, and current provisioning status.

## Path parameters

- `projectId` string, required — Project identifier.
- `endpointId` string, required — Endpoint identifier.
- `id` string, required — Deployment identifier.

## Response `200`

OK

- DEDeployment — Serving workload that binds a model and immutable config to an endpoint and manages its replicas.
  - `id` string, required — Unique deployment identifier.
  - `projectId` string, required — ID of the project that owns the deployment.
  - `endpointId` string, required — ID of the endpoint that contains the deployment.
  - `name` string, required — Project- and endpoint-qualified deployment name in the form `<project_slug>/<endpoint_name>/<deployment_name>`. Pass it as `model` in an inference request to target this deployment directly instead of using the endpoint's traffic split.
  - `createdAt` string, date-time, required — Timestamp when the deployment was created.
  - `updatedAt` string, date-time, required — Timestamp when the deployment was last updated.
  - `modelId` string, required — Deprecated. Use `model`. Model identifier being served, populated during migration.
  - `modelRevisionId` string, required — Deprecated. Use `model` with a /revisions/{revisionId} segment. Pin to a specific model revision.
  - `model` string, required — Pinned model resource in the form `projects/{projectId}/models/{modelId}/revisions/{revisionId}`.
  - `autoscaling` DEAutoscalingResponse, required — Autoscaling configuration for a deployment.
    - `minReplicas` integer, required — Minimum number of replicas. Omit on update to preserve the current value. Set both `minReplicas` and `maxReplicas` to `0` to stop the deployment.
    - `maxReplicas` integer, required — Maximum number of replicas. Defaults to `minReplicas`; omitting it on update preserves the current value.
    - `scaleDownWindow` string — Time a lower replica recommendation must remain stable before scaling down. Defaults to `5m`.
    - `scaleUpWindow` string — Stabilization window before scaling up.
    - `scaleToZeroWindow` string — Idle period after which the deployment automatically stops and releases its replicas.
    - `scalingMetrics` DEScalingMetric[] — Metrics and targets that drive replica recommendations. When omitted, the platform uses concurrent in-flight requests per replica.
      - `name` string, required — Metric name, such as `gpu_utilization`, `ttft`, `inflight_requests`, `e2e_latency`, `throughput_per_replica`, or `decoding_speed`.
      - `type` 'METRIC_TARGET_TYPE_VALUE' | 'METRIC_TARGET_TYPE_UTILIZATION' | 'METRIC_TARGET_TYPE_AVERAGE_VALUE', required — Whether `target` is an absolute value, a utilization percentage, or a per-replica average.
      - `target` number, required — Target interpreted according to `type`. Utilization uses a percentage from 0 to 100, value uses an absolute measurement, and average value uses a per-replica measurement.
      - `percentile` string — Percentile to evaluate for latency-based metrics: `p50`, `p90`, `p95`, or `p99`.
  - `configId` string, required — Deprecated. Use `config`. Config revision identifier, populated during migration.
  - `config` string, required — Immutable config revision in the form `projects/{projectId}/configs/{configRevisionId}`.
  - `speculatorId` string — Deprecated. Use `speculator`. Speculative decoding model identifier derived from the deployment config.
  - `speculatorRevisionId` string — Deprecated. Use `speculator`. ID of the speculative decoding draft-model revision pinned at creation time.
  - `speculator` string — Pinned draft-model resource used for speculative decoding, in the same form as `model`. Omitted when speculative decoding is disabled.
  - `estimatedEffectiveTrafficShare` number, double — Estimated fraction in [0, 1] of endpoint traffic that reaches this deployment under the current routing configuration. Absent or unrouted deployments are 0.
  - `enableLora` boolean — Whether the deployment can dynamically load LoRA adapters.
  - `etag` string, required — Opaque version tag for optimistic concurrency control. Supply on update/delete to ensure consistent read-modify-write. If not set, the write overwrites based on current state.
  - `hardware` string, required — Hardware selected by the deployment config, including GPU type and count.
  - `trafficMode` 'TRAFFIC_MODE_LIVE' | 'TRAFFIC_MODE_SHADOW', required — Whether the deployment serves client-visible responses or only mirrored shadow traffic.
  - `runtimeInfo` DERuntimeInfo — Runtime information derived from the deployment's configuration.
    - `engineType` string — Serving engine, such as `vllm`, `trtllm`, or `sglang`.
    - `engineVersion` string — Version of the serving engine.
    - `functionCallingSupported` boolean — Whether the runtime accepts tool and function-calling requests.
    - `structuredOutputSupported` boolean — Whether the runtime can constrain generation to a structured output schema.
  - `desiredReplicas` integer — Number of replicas the autoscaler currently wants across all regions.
  - `status` DEDeploymentStatus, required — Current status of a deployment, derived at read time from internal state.
    - `state` 'DEPLOYMENT_STATE_PROVISIONING' | 'DEPLOYMENT_STATE_READY' | 'DEPLOYMENT_STATE_SCALING' | 'DEPLOYMENT_STATE_DEGRADED' | 'DEPLOYMENT_STATE_FAILED' | 'DEPLOYMENT_STATE_STOPPED' | 'DEPLOYMENT_STATE_STOPPING', required — High-level lifecycle state.
    - `readyReplicas` integer — Total replicas actively serving traffic across all clusters.
    - `message` string, required — Human-readable explanation of the current state.
    - `scheduledReplicas` integer — Replicas the scheduler has placed on clusters.
  - `placement` union — Placement controls where a deployment is scheduled.
    - object
      - `inline` DEInlinePlacement, required — Inline placement parameters expanded into scheduling rules by the server.
        - `regions` string[] — Regions where the deployment is allowed to run. Multiple regions allow best-effort replica spreading.
        - `constraint` 'ENFORCEMENT_REQUIRED' | 'ENFORCEMENT_PREFERRED' — How strictly the regions list is enforced.
    - object
      - `profile` string, required — UID of a saved placement profile.

## Other responses

- `default` — Default error response

---

[API](https://skmtc.net/together/apis/together-apis.md) · [All operations](https://skmtc.net/together/apis/together-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/together/together-apis/revisions/f26a23fab8e0/schema)
