---
title: "Book Consultation"
method: POST
path: "/api/v1/specialist/consultations"
---

# Book Consultation

`POST /api/v1/specialist/consultations`

## Request

- Base URL: `https://trovastorage.it` (the document declares no server; this is the origin it was published from)
- URL: `https://trovastorage.it/api/v1/specialist/consultations`
- Auth: one of:
  - API key in header `X-Access-Token`
  - HTTP bearer

The client books a consultation, not a box.

No unit is held and no `Booking` row is created — there is a test that counts
both at zero. Whether the slot is still free is decided by the partial unique
index, never by a check up here.

## Request body

- ConsultationBookRequest
  - `lead_id` string, uuid, required
  - `slot_id` string, uuid, nullable
  - `preferred_window` string, nullable
  - `contact_name` string, required
  - `contact_email` string, email, nullable
  - `contact_phone` string, nullable
  - `note` string, nullable

## Response `201`

Successful Response

- ConsultationResponse
  - `id` string, uuid, required
  - `lead_id` string, uuid, required
  - `state` string, required
  - `slot_id` string, uuid, nullable, required
  - `starts_at` string, date-time, nullable, required
  - `duration_min` integer, nullable, required
  - `site_id` string, uuid, nullable, required
  - `site_name` string, nullable, required
  - `preferred_window` string, nullable, required
  - `note` string, nullable, required
  - `contact_name` string, nullable
  - `meeting_type` string, nullable
  - `confirmation_email_status` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/trovastorage/apis/stock-your-inventory.md) · [All operations](https://skmtc.dev/trovastorage/apis/stock-your-inventory/llms.txt) · [OpenAPI document](https://skmtc.dev/trovastorage/apis/stock-your-inventory/revisions/c75f591a585c?raw)
