---
title: "Restore Bid Area"
method: POST
path: "/api/v1/bid-areas/{bid_area_id}/restore"
tags: ["bid-areas"]
---

# Restore Bid Area

`POST /api/v1/bid-areas/{bid_area_id}/restore`

## Request

- Base URL: `https://api.rudus.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rudus.ai/api/v1/bid-areas/{bid_area_id}/restore`
- Auth: none declared
- TypeScript: <https://skmtc.dev/rudus/apis/rudus-api/docs/api/v1/bid-areas/:bid_area_id/restore/post.ts> (a function with typed inputs; its response is checked against the schema)

Restore exactly the bid-area subtree ids named by the delete receipt.

Every submitted id is validated atomically for writable-project scope,
descendant linkage, and tombstone state. The server cannot verify that the
set is complete: only the caller's receipt records which rows one delete
stamped, and transaction-stable `deleted_at` cannot reconstruct that fact
(spec-lite §2.1). An incomplete receipt therefore produces ADR-0172's
accepted lossy restore. Returns 409 `not_deleted` for an already-live row.

## Path parameters

- `bid_area_id` string, uuid, required

## Request body

- RestoreBidAreaRequest
  - `bid_area_ids` string[], required

## Response `200`

Successful Response

- BidArea
  - `id` string, uuid, required
  - `project_id` string, uuid, required
  - `parent_bid_area_id` string, uuid, nullable, required
  - `name` string, required
  - `sort_order` number, required
  - `created_at` string, date-time, required

## Other responses

- `4XX`: Client Error
- `5XX`: Server Error

---

[API](https://skmtc.dev/rudus/apis/rudus-api.md) - [All operations](https://skmtc.dev/rudus/apis/rudus-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rudus/apis/rudus-api/revisions/5673f72c8a5d?raw)
