---
title: "Search Cities"
method: GET
path: "/cities/search"
tags: ["Cities"]
---

# Search Cities

`GET /cities/search`

Searches for cities based on the provided search term.

## Query parameters

- `q` string, required — The name to search for in the city fields.

## Response `200`

A list of cities that match the search text.

- PaginatedGeoEntitiesResponse — Paginated response for geographical entities.
  - `items` GeoEntitiesRead[], required — The list of items returned in the response following given criteria.
    - `geo_id` string, required — Geolocation ID
    - `name` string, required — Formatted entity name
    - `state` string, required — State abbreviation
  - `size` integer, required — The number of items returned in the response.
  - `next_cursor` string, nullable, required — The cursor for retrieving the next page of results.
  - `total_count` TotalCount — Capped result count with Elasticsearch-style {value, relation} shape. When the exact count is known and within the cap, relation is "eq" and value is that exact count. When the count exceeds the cap, relation is "gte" and value is the cap the count was probed against, meaning "the actual count is at least value". The cap is COUNT_CAP for every wire-facing endpoint; internal guard paths probe against their own cap, so value carries whatever cap produced it.
    - `value` integer, required — The count value; capped at the probe's cap (10,000 on the wire).
    - `relation` 'eq' | 'gte', required — "eq" means value is the exact count. "gte" means the actual count is at least value (the cap).

## Other responses

- `404` — The specified search query didn't match any cities
- `422` — Validation Error

---

[API](https://skmtc.net/shovels/apis/the-shovels-api-v2.md) · [All operations](https://skmtc.net/shovels/apis/the-shovels-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shovels/the-shovels-api-v2/revisions/d3f0e1f3afa8/schema)
