---
title: "Replace a live service on a sandbox"
method: PUT
path: "/api/v0beta1/sandboxes/{id}/services/{ref}"
tags: ["Sandboxes"]
---

# Replace a live service on a sandbox

`PUT /api/v0beta1/sandboxes/{id}/services/{ref}`

## Path parameters

- `id` string, required
- `ref` string, required — Service reference: its name (default) or row id. Use `by` to choose.

## Query parameters

- `by` 'name' | 'id' | 'ref' | 'name_or_id' — How to interpret the service `{ref}`: name (default), id, or ref/name_or_id (matches either; rejects ambiguity).
- `sandbox_by` 'name' | 'id' | 'ref' | 'name_or_id' — How to interpret the sandbox `{id}` path param: ref/name_or_id (default; matches an id or a name and rejects an ambiguous match), name, or id.

## Request body

- SandboxServiceInput
  - `name` string, required — Service name: a single DNS label, unique per sandbox.
  - `port` integer, required — Container port the service listens on.
  - `url_scheme` 'http' | 'https', required — URL scheme the gateway serves the service over.

## Response `200`

Service replaced.

- SandboxService
  - `id` string, nullable, required
  - `sandbox_id` string, required
  - `name` string, required
  - `port` integer, required
  - `url_scheme` 'http' | 'https' | 'null', nullable, required
  - `protocol` string, required
  - `url` string, nullable, required
  - `host_port` integer, nullable, required
  - `source` 'table' | 'legacy', required
  - `kind` 'system' | 'user', required
  - `created_at` union, required
    - string
    - string, date-time
    - unknown
  - `updated_at` union, required
    - string
    - string, date-time
    - unknown

## Other responses

- `400` — Error
- `401` — Error
- `403` — Error
- `404` — Error
- `409` — Error

---

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