# Search map places

Returns organizations and addresses from Yandex Maps — rating, phone numbers, websites, opening hours, categories, amenities and coordinates. Requires `query`; send `latitude` and `longitude` together to place the search. Up to 25 rows per page.

- Platform: Yandex
- Request: `GET https://api.toolzerhub.com/v1/yandex/maps/search`
- Auth: `x-api-key` header
- Cost: 1 credit per successful request. Failed requests are not billed.
- Page: https://docs.toolzerhub.com/reference/yandex/get-yandex-maps-search

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `query` | query | yes | string | A business name, a category, or an address. An address returns a row with type: "toponym" rather than an organization. |
| `latitude` | query | no | number | Centre latitude. Send latitude and longitude together or neither — one without the other is rejected here, because Yandex silently ignores it and answers from its own default region instead. With neither, the query coffee measured as returning a cafe in a small town in Krasnodar Krai. |
| `longitude` | query | no | number | Centre longitude. Sent upstream in Yandex's longitude-first ll order by the worker; a caller never assembles that string. |
| `span` | query | no | number | Half-width of the viewport in degrees, applied to both axes. 0.05 is roughly a city centre. |
| `bounds` | query | no | enum: widen, restrict | What to do with results outside span. widen — the default, and Yandex's own behaviour — searches beyond it; restrict refuses them and requires span. Measured: Красная площадь with a New York span returns Moscow's Red Square under widen and nothing under restrict. Default: widen. |
| `results` | query | no | integer | Results per page, up to 25. Yandex answers anything above that with a 500. Default: 25. |
| `page` | query | no | integer | Zero-based page. Sent upstream as skip = page results, which is the only arithmetic Yandex accepts — any other offset is a 500. Deeper pages repeat rows, so de-duplicate on id. Default: 0. |
| `language` | query | no | enum: en_US, ru_RU, tr_TR, uk_UA | Response language for titles, addresses and opening hours. An unlisted locale is a 500 upstream, not a fallback. Default: en_US. |

## Example request

```bash
curl "https://api.toolzerhub.com/v1/yandex/maps/search?query=<query>" \
  -H "x-api-key: $TOOLZERHUB_API_KEY"
```

Success responses are wrapped as `{ "data": ... }`. Errors return `{ "error": { "code", "status", "message", "retryable", "details" } }`. See https://docs.toolzerhub.com/docs/responses-and-errors.
