---
title: "Current Suggestion"
method: GET
path: "/user/location/suggestions/current"
tags: ["user-location"]
---

# Current Suggestion

`GET /user/location/suggestions/current`

## Response `200`

Successful Response

- CurrentSuggestionResponse
  - `suggestion` NearbySuggestion
    - `id` string, required
    - `area_name` string, required
    - `reach` 'walking' | 'driving', required
    - `picks` NearbyPick[], required
      - `place_id` string, required
      - `name` string, required
      - `category` string, nullable
      - `city` string, nullable
      - `country_code` string, nullable
      - `lat` number, nullable
      - `lng` number, nullable
      - `image_url` string, nullable
      - `image_thumbhash` string, nullable
      - `rating` number, nullable
      - `num_reviews` integer, nullable
      - `description` string, nullable
      - `michelin_award` string, nullable
      - `michelin` MichelinDistinction — A place's Michelin Guide distinction, structured. Canonical rationale — the TS mirror and the renderers point here rather than restating it. Rides alongside `michelin_award` rather than replacing it: that field is a pre-rendered label ("★★★"), and a label cannot drive iconography. An award string we don't recognise yields NO distinction (we never paint a mark we can't justify) while still surfacing verbatim in `michelin_award`, so a new tier degrades to text rather than disappearing.
        - `tier` 'stars' | 'bib_gourmand' | 'selected', required
        - `stars` integer, nullable
        - `green_star` boolean
        - `url` string, nullable
        - `cuisine` string, nullable
      - `source` string, required
      - `score` number, required
      - `position` integer, required
      - `reason` string, nullable
      - `hydration_pending` boolean
      - `sources` string[]
      - `kind` 'place' | 'stay'
      - `stay` StayFacets — What a Michelin Guide hotel carries that an ordinary place doesn't. Same rationale as `MichelinDistinction`, one category later: `key_label` is the Guide's own pre-rendered string ("Two MICHELIN Keys"), and a label cannot drive iconography, so `tier`/`keys` ride beside it. A tier we don't recognise yields no structured distinction while still surfacing verbatim in `key_label` — a new tier degrades to text rather than disappearing. A sub-object rather than flat columns on `ExploreItem`: otherwise every future category (a tour, a tasting menu) adds its own nullable fields to the type EVERY card in the app carries.
        - `key_label` string, nullable
        - `tier` 'keys' | 'selected', nullable
        - `keys` integer, nullable
        - `guide_url` string, nullable
        - `editorial` string, nullable
        - `check_in` string, date, nullable
        - `check_out` string, date, nullable
      - `distance_km` number, nullable
      - `distance_from` 'you' | 'hotel', nullable
      - `why_this` string, required
      - `walk_minutes` integer, nullable, required
      - `drive_minutes` integer, nullable, required
      - `open_now` boolean, nullable, required
      - `closes_in_minutes` integer, nullable, required
      - `opens_in_minutes` integer, nullable, required

## Changes

- **2026-09-26** `dd78fbd6c358` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stardrift/apis/fastapi/changes/user/location/suggestions/current/get.md)

---

[API](https://skmtc.dev/stardrift/apis/fastapi.md) · [All operations](https://skmtc.dev/stardrift/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc.dev/stardrift/apis/fastapi/revisions/dd78fbd6c358?raw)
