---
title: "Search Zipcodes"
method: GET
path: "/zipcodes/search"
tags: ["Zipcodes"]
---

# Search Zipcodes

`GET /zipcodes/search`

Searches for zipcodes based on the provided search term.

## Query parameters

- `q` string, required — The code to search for in the zipcodes fields.
- `cursor` string, nullable — Cursor for pagination
- `size` integer

## Response `200`

A list of zipcodes that match the search code.

- PaginatedZipcodesResponse — Paginated response for zipcodes.
  - `items` Zipcodes[], required — The list of items returned in the response following given criteria.
    - `geo_id` string, required — The 5-digit ZIP code with optional 4-digit extension separated by -.
    - `state` string, required — The state of the ZIP code.
  - `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 zipcodes
- `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)
