---
title: "Deploy a Scalix Run service."
method: POST
path: "/v1/run/services"
tags: ["Compute"]
---

# Deploy a Scalix Run service.

`POST /v1/run/services`

## Request

- Base URL: `https://api.scalix.world`
- URL: `https://api.scalix.world/v1/run/services`
- Auth: HTTP bearer

Deploys a Scalix Run service and returns the created service.

## Request body

- RunServiceDeployRequest: A Scalix Run service to deploy.
  - `name` string, required: Service name, unique within the project.
  - `image_ref` string, required: Container image to run.
  - `port` integer, nullable: Port the app listens on inside the instance. Default 8080.
  - `env` object, nullable: Environment variables.
  - `memory_mb` integer, nullable: Memory per instance in MB. Default 256, minimum 128.
  - `vcpus` integer, nullable: vCPUs per instance. Default 1.
  - `min_instances` integer, nullable: Minimum instances kept warm. Default 0 (scale to zero).
  - `max_instances` integer, nullable: Maximum instances. Default 10.
  - `target_concurrency` integer, nullable: Concurrent requests per instance before scaling out. Default 50.
  - `scale_down_delay_secs` integer, nullable: Idle seconds before scaling in. Default 300.
  - `health_check_path` string, nullable: HTTP path for the readiness probe. Omit for the default check that the app is listening on `port`.
  - `timeout_secs` integer, nullable: Per-request timeout in seconds. Default 300.
  - `rollout_strategy` string, nullable: `instant`, `health_gated` (default), or `canary`.
  - `volumes` object, nullable: Persistent volumes. Attaching one pins the service to a single instance and the `instant` strategy.

## Response `201`

Service deployed

## Other responses

- `401`: Missing or invalid API key
- `500`: Internal error

---

[API](https://skmtc.dev/scalix/apis/scalix-cloud-api.md) · [All operations](https://skmtc.dev/scalix/apis/scalix-cloud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scalix/apis/scalix-cloud-api/revisions/2c04ca0a90bb?raw)
