# Search businesses

Returns organisations matching a query in one 2GIS city — name, address, coordinates, categories, opening hours and ratings. Requires `query` and `city`.

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

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `query` | query | yes | string | What to search for, in the city's own language — кафе, pharmacy, kavárna. A query 2GIS cannot match does not come back empty: it returns unrelated real businesses at near-zero relevance under a healthy 200. Check is_partial_match before trusting the rows. |
| `city` | query | yes | string | A 2GIS city slug — the segment in its own URL, e.g. moscow, spb, dubai, almaty, praha. /v1/2gis/cities lists all 206, and the value is not guessable from a country: 2GIS is organised by city, not by nation. |
| `page` | query | no | integer | Page of results; pages run to ceil(total / page_size). De-duplicate on id when combining pages. Default: 1. |
| `page_size` | query | no | integer | How many places per page, at most 50. This is a closed set upstream rather than a ceiling that clamps: 2GIS answers a larger value with paramIsOutsideSet and returns nothing at all. Default: 20. |
| `locale` | query | no | string | One of the city's own locales, e.g. ru_RU or en_AE. Defaults to the city's default. Not a translation layer: a locale the region does not offer is rejected by 2GIS outright — Dubai serves en_AE and refuses en_US. /v1/2gis/cities lists each city's set. |

## Example request

```bash
curl "https://api.toolzerhub.com/v1/2gis/search?query=<query>&city=<city>" \
  -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.
