---
title: "City Hero"
method: GET
path: "/saved/city-hero"
tags: ["saved"]
---

# City Hero

`GET /saved/city-hero`

Hero image for a Saved city page — reuses the trip hero-photo matcher
(exact "City, Country" → nearest-by-coords within 500km → country), so the
Saved city page shows the same destination photo a trip would. Pass a
representative coordinate (e.g. a saved place in the city) so the
coordinate fallback resolves when the exact "City, Country" string misses
(notably US cities, whose saves carry a state but no country).

Both frames of the match come back: callers with a wide slot take
`photo_url`, callers with a tall one take `portrait_photo_url` when it is
there. They are separately picked shots of the same destination, so a
caller that needs the tall one cannot get it by cropping the wide one.

## Query parameters

- `city` string, required
- `country` string, nullable
- `lat` number, nullable
- `lng` number, nullable

## Response `200`

Successful Response

- CityHeroOut
  - `photo_url` string, nullable
  - `portrait_photo_url` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/stardrift/apis/fastapi.md) · [All operations](https://skmtc.dev/stardrift/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stardrift/fastapi/revisions/00746572572a/schema)
