---
title: "Resolve Request"
method: POST
path: "/api/v1/specialist/resolve"
---

# Resolve Request

`POST /api/v1/specialist/resolve`

## 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/resolve`
- Auth: one of:
  - API key in header `X-Access-Token`
  - HTTP bearer

## Request body

- SpecialistResolveRequest: What the conversation hands to the code that decides. A *size class*, not an area: the model proposes a rung of the published ladder and `services/specialist` validates it against that ladder before any query runs (M6.0). Nothing here is free text — this is the whole boundary between the half that interprets and the half that decides.
  - `lat` number, required
  - `lng` number, required
  - `size_class_m2` integer, required
  - `operator_slug` string, nullable
  - `radius_km` number
  - `features` string[]

## Response `200`

Successful Response

- SpecialistResolution
  - `size_class_m2` integer, required
  - `band_min_m2` number, required
  - `band_max_m2` number, nullable, required
  - `radius_km` number, required
  - `free_count` integer, required
  - `centres` ResolvedCentre[], required
    - `site_id` string, uuid, required
    - `name` string, required
    - `city` string, required
    - `lat` number, required
    - `lng` number, required
    - `distance_km` number, required
    - `free_count` integer, required
    - `operator` string
    - `listing_url` string, nullable
    - `declared` string, nullable
  - `alternatives` ResolvedAlternative[], required
    - `kind` string, required
    - `size_class_m2` integer, required
    - `radius_km` number, required
    - `free_count` integer, required
    - `centres` ResolvedCentre[], required
      - `site_id` string, uuid, required
      - `name` string, required
      - `city` string, required
      - `lat` number, required
      - `lng` number, required
      - `distance_km` number, required
      - `free_count` integer, required
      - `operator` string
      - `listing_url` string, nullable
      - `declared` string, nullable
    - `dropped_features` string[]
  - `zero_results` boolean, required
  - `sites_in_range` integer
  - `coverage` string[]
  - `unavailable_features` string[]
  - `frees_up` ResolvedFreesUp[]
    - `site_id` string, uuid, required
    - `name` string, required
    - `distance_km` number, required
    - `free_from` string, date, required
  - `access_rules` string[]

## 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)
