---
title: "Select a machine plan"
method: POST
path: "/api/v1/machines/plan/select"
tags: ["Machines"]
---

# Select a machine plan

`POST /api/v1/machines/plan/select`

## Request

- Base URL: `http://:8080`
- URL: `http://:8080/api/v1/machines/plan/select`
- Auth: none declared

Select a machine plan.

Auth: Required (bearer token).
Scope: Organization-scoped in authenticated context.
Side effects: May mutate server state.

## Headers

- `Accept` string

## Request body `*/*`

- SelectPlanRequest: SelectPlanRequest schema
  - `plan_tier` string, required

## Response `200`

OK

- SelectPlanResponse: SelectPlanResponse schema
  - `balance_after_cents` integer, nullable
  - `charged_cents` integer, nullable
  - `error` string, nullable
  - `message` string
  - `period_end` string, nullable
  - `plan` object, nullable
    - `id` string, uuid
    - `monthly_cost_cents` integer
    - `monthly_cost_usd` string
    - `name` string
    - `ram_mb` integer
    - `storage_mb` integer
    - `tier` string
    - `vcpu` integer
  - `status` string

## Other responses

- `400`: Bad Request _(validation or deserialization error)_
- `500`: Internal Server Error _(panics)_
- `default`

## Changes

- **2026-04-26** `09f18af670c4`: 3 info
  - api tag `Machines` added
  - api tag `api/v1/machines` removed
  - api tag `plan` removed
- **2026-04-18** `a16fedd4cd53`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nixopus/apis/nixopus-api/changes/api/v1/machines/plan/select/post.md)

---

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