---
title: "Launch the finished agent (ready -> launched); the only transition the customer runs themselves"
method: POST
path: "/v1/setup-orders/{id}/launch"
---

# Launch the finished agent (ready -> launched); the only transition the customer runs themselves

`POST /v1/setup-orders/{id}/launch`

## Request

- Base URL: `https://volai.cz`
- URL: `https://volai.cz/v1/setup-orders/{id}/launch`
- Auth: HTTP bearer

Launches the finished agent (`ready` -> `launched`) - the only transition the customer runs themselves; every other transition (build start, ready, cancellation) is the volai team's.

## Path parameters

- `id` string, required

## Response `200`

Launched setup order

- object
  - `order` object, required
    - `id` string, required
    - `status` 'draft' | 'quoted' | 'awaiting_confirmation' | 'declined' | 'paid' | 'building' | 'ready' | 'revision' | 'launched' | 'cancelled', required: Current stage of the order. See the "Setup orders" section intro for what each status means and what happens next.
    - `nextStep` string, required: Plain-English sentence describing what to do next for the current status.
    - `locale` 'cs' | 'en', required
    - `source` 'portal' | 'api' | 'mcp', required: Where the order was created: the portal's guided form, this REST API, or the MCP tool.
    - `createdAt` number, required
    - `updatedAt` number, required
    - `dueAt` number: Unix ms timestamp: build promised to be ready by, once paid (weekends don't count toward the SLA).
    - `readyAt` number
    - `launchedAt` number
    - `refundRequestedAt` number
    - `revisionsUsed` number, required: How many rounds of changes have been sent since the order was ready.
    - `revisionsIncluded` number: How many rounds of changes the package includes for free, once quoted.
    - `extraRevisionHal` integer, required: Price of one revision round beyond the package, in haléře excl. VAT; charged from credit when the round is completed
    - `extraRevisionsCharged` integer, required: How many extra revision rounds (beyond the package) have actually been charged from credit so far. 0 when none have.
    - `agentId` string
    - `numberE164` string
    - `declineReason` 'lorela'
    - `quote` object
      - `lines` object[], required
        - `kind` 'package' | 'addon' | 'custom', required
        - `id` string, required
        - `label` string, required
        - `quantity` number, required
        - `unitHal` number, required
        - `totalHal` number, required
        - `hours` number
      - `setupNetHal` number, required: Setup fee total, in haléře, excluding VAT - computed from the catalog, never by the advisor model.
      - `needsConfirmation` boolean, required: True when a custom line item is over the hours threshold and needs volai to confirm the price before checkout opens.
      - `revisionsIncluded` number, required: How many revision rounds the package includes for free. Rounds beyond this are charged 490 CZK excl. VAT from credit when the founder finishes them.
      - `monthly` object, required
        - `callsPerDay` number, required
        - `avgMinutes` number, required
        - `totalMonthlyHal` number, required
        - `callMinutes` number, required
    - `selection` object
      - `segment` 'zivnostnik' | 'provozovna' | 'firma', required
      - `packageId` 'provozovna' | 'firma', nullable, required
      - `addons` object[], required
        - `id` 'calendar' | 'invoices' | 'extra_language' | 'outbound' | 'sip' | 'express', required
        - `quantity` number, required
      - `customItems` object[], required
        - `title` string, required
        - `hours` number, required
      - `industry` string, required
      - `agentLanguages` string[], required
      - `callsPerDay` number, required
      - `avgMinutes` number, required
      - `transferPhone` string
      - `openingHours` string
      - `cannotDo` string[], required
      - `assumptions` string[], required
    - `messages` object[], required
      - `role` 'user' | 'assistant' | 'owner', required
      - `content` string, required
      - `at` number, required
    - `payment` object
      - `paidAt` number, required: Unix ms timestamp when the Stripe Checkout session paid.
      - `setupNetHal` number, required: Setup fee actually charged, in haléře, excluding VAT.
      - `setupGrossHal` number, required: Setup fee actually charged, in haléře, including VAT (0 under reverse charge).
      - `creditNetHal` number, required: First credit top-up included in the same checkout, in haléře, excluding VAT.

## Other responses

- `401`: Error codes: unauthorized (request).
- `403`: Error codes: account_suspended (account).
- `404`: Error codes: setup_order_not_found (account).
- `409`: Error codes: invalid_transition (request).
- `429`: Error codes: rate_limited (busy).
- `500`: Error codes: internal_error (service).

---

[API](https://skmtc.dev/volai/apis/volai-rest-api.md) · [All operations](https://skmtc.dev/volai/apis/volai-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/volai/apis/volai-rest-api/revisions/12029b05e2fa?raw)
