---
title: "Preview Bundle Plan"
method: POST
path: "/api/v1/devices/{device_id}/bundle-plan"
tags: ["bundles"]
---

# Preview Bundle Plan

`POST /api/v1/devices/{device_id}/bundle-plan`

## Request

- Base URL: `https://api.brumby.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brumby.com/api/v1/devices/{device_id}/bundle-plan`
- Auth: HTTP bearer

## Path parameters

- `device_id` string, required

## Request body

- BundlePlanRequest: `POST /api/v1/devices/{device_id}/bundle-plan` (a preview, never authority).
  - `kind` 'onboard' | 'upgrade' | 'rollback' | 'repair', required
  - `target_bundle_release_id` string, uuid, required
  - `transition_id` string, uuid, nullable
  - `checkpoint` string, nullable

## Response `200`

Successful Response

- BundlePlanResponse
  - `plan_intent_sha256` string, required
  - `plan_b64` string, required
  - `plan` object, required
  - `evidence` object, required
  - `readiness` BundlePlanReadiness, required: What a Deploy would wait for now (docs/bundle-api-v1.md, the plan preview's `readiness`): the sequencer's own readiness checks, read-only. Never a blocker, and no part of the plan or its intent.
    - `ready` boolean, required
    - `reason` string, nullable
    - `detail` object, nullable
  - `management_migrations` ManagementMigration[]
    - `device` 'n100' | 'jetson', required
    - `runtime` string, required
    - `reported` string, required
    - `expected` string, required

## Other responses

- `422`: Validation Error

---

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