---
title: "Create Hold"
method: POST
path: "/orchestrator/holds"
tags: ["orchestrator-holds"]
---

# Create Hold

`POST /orchestrator/holds`

Acquire a new hold, preventing orchestrator self-stop while active.

## Request body

- HoldCreateRequest — Body for POST /orchestrator/holds.
  - `reason` string, required — Why the caller wants the orchestrator to stay up
  - `ttl_seconds` number, nullable — Grace-window auto-expiry; server default if omitted

## Response `200`

Hold acquired

- HoldResponse — Serialised hold in API responses.
  - `id` string, required
  - `reason` string, required
  - `created_at` number, required
  - `ttl_seconds` number, required
  - `expires_at` number, required
  - `last_renewed_at` number, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-07-26** `2a1299ef19fa` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sipyourdrink-ltd/apis/bernstein-task-server/changes/orchestrator/holds/post.md)

---

[API](https://skmtc.dev/sipyourdrink-ltd/apis/bernstein-task-server.md) · [All operations](https://skmtc.dev/sipyourdrink-ltd/apis/bernstein-task-server/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sipyourdrink-ltd/bernstein-task-server/revisions/fa7b00b782fa/schema)
