---
title: "Каталог мест, маршрутов и туров с поиском и фильтрами"
method: GET
path: "/api/routes"
tags: ["catalog"]
---

# Каталог мест, маршрутов и туров с поиском и фильтрами

`GET /api/routes`

## Request

- Base URL: `https://vedarai.ru`
- URL: `https://vedarai.ru/api/routes`
- Auth: none declared

Поиск q — подстрока по названию и описанию. Фильтр по радиусу работает только при трёх параметрах near_lat, near_lng, radius_km сразу. Неизвестные параметры отбрасываются.

## Query parameters

- `q` string
- `kind` 'place' | 'route' | 'tour'
- `category` string
- `location_type` string
- `activity_type` string
- `page` integer
- `limit` integer
- `hasCoords` 'true' | 'false'
- `sort` 'title' | 'recent' | 'price_asc' | 'price_desc' | 'recommended' | 'navigable'
- `difficulty` 'easy' | 'medium' | 'hard'
- `price_min` number
- `price_max` number
- `near_lat` number
- `near_lng` number
- `radius_km` number
- `has_waypoints` 'true'
- `brief` '1'

## Response `200`

Страница каталога

- CatalogResponse
  - `success` unknown, required
  - `data` CatalogItem[], required
    - `id` string, required
    - `slug` string, nullable: Ключ дедупликации, не адрес страницы
    - `urlSlug` string, nullable
    - `kind` 'place' | 'route' | 'tour', required
    - `category` string, nullable
    - `locationType` string, nullable
    - `activityType` string, nullable
    - `title` string, required
    - `description` string, required
    - `imageUrl` string: Относительный путь; ключа нет, если картинки нет
    - `lat` number, nullable
    - `lng` number, nullable
    - `sourceUrl` string, nullable
    - `sourceName` string, nullable
    - `priceFrom` number, nullable
    - `season` string, nullable
    - `difficulty` string, nullable
    - `durationDays` number, nullable
    - `bestMonths` integer[], nullable
    - `geometry` object, nullable
      - `type` string
      - `coordinates` array[]
        - number[]
    - `volcanoStatus` string, nullable
    - `hasRealImage` boolean, required
    - `hazards` string[], required
    - `isOpen` boolean, nullable: false — место закрыто администратором. true — значение по умолчанию у всех мест («никто не закрыл»), не проверка, что место открыто
    - `lineGrade` 'surveyed' | 'sketch' | 'unknown' | 'points_only' | 'none' | 'null', nullable: Только у kind=route: откуда линия
    - `onRoute` boolean, nullable: Только у kind=place
  - `meta` object, required
    - `total` integer, required
    - `page` integer, required
    - `limit` integer, required
    - `pages` integer, required

## Other responses

- `400`: Неверные параметры запроса
- `503`: Каталог не прочитался

---

[API](https://skmtc.dev/vedarai/apis/vedar-kamchatka-travel.md) · [All operations](https://skmtc.dev/vedarai/apis/vedar-kamchatka-travel/llms.txt) · [OpenAPI document](https://skmtc.dev/vedarai/apis/vedar-kamchatka-travel/revisions/75789f39b9a3?raw)
