---
title: "Renew Hold Endpoint"
method: POST
path: "/api/v1/orchestrator/holds/{hold_id}/renew"
tags: ["orchestrator-holds"]
---

# Renew Hold Endpoint

`POST /api/v1/orchestrator/holds/{hold_id}/renew`

## Request

- The document declares no server URL.
- Auth: none declared

Heartbeat-renew a hold, extending its expiry by another grace window.

## Path parameters

- `hold_id` string, required

## Response `200`

Successful Response

- 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

- `404`: Hold not found (never existed, released, or already expired)
- `422`: Validation Error

## Changes

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

[Operation history](https://skmtc.dev/sipyourdrink-ltd/apis/bernstein-task-server/changes/api/v1/orchestrator/holds/:hold_id/renew/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.dev/sipyourdrink-ltd/apis/bernstein-task-server/revisions/f8d88a977583?raw)
