Skip to main content

Get cities

GET /api/cities?includeUnlisted=false
Returns cities with full data including counts. Respects user authorization when includeUnlisted=true.

Query parameters

includeUnlisted
boolean
default:"false"
When true, includes unlisted cities the user can administer. Requires authentication.

Response

Returns an array of CityWithCounts objects.
id
string
Unique city identifier
name
string
City name in local language
name_en
string
City name in English
name_municipality
string
Municipality name in local language
name_municipality_en
string
Municipality name in English
logoImage
string | null
URL to city logo image
supportsNotifications
boolean
Whether the city supports notification features
status
string
City status: pending, unlisted, or listed
officialSupport
boolean
Whether the city has official support
authorityType
string
Type of authority: municipality or region
timezone
string
IANA timezone identifier (e.g., “Europe/Athens”)
wikipediaId
string | null
Wikipedia page identifier
_count
object
Aggregated counts for this city

Error responses

400
ValidationError
Invalid query parameters
401
Error
Not authorized to view unlisted cities
500
Error
Failed to fetch cities

Get all cities (minimal)

GET /api/cities/all
Returns all non-pending cities in minimal format. No authentication required. Ideal for dropdowns and selectors.

Response

Returns an array of CityMinimal objects with basic city information without counts or timestamps.

Get a specific city

GET /api/cities/{cityId}
Returns detailed information for a specific city by ID.

Path parameters

cityId
string
required
Unique city identifier

Response

Returns a CityWithCounts object with complete city information.

Error responses

404
Error
City not found
500
Error
Failed to fetch city

Build docs developers (and LLMs) love