Guest API для AI-агентов
Публичный API menio.ru, через который AI-ассистенты и агенты действуют от имени гостя: читают меню ресторана, собирают и оформляют заказ, бронируют столик. Авторизация не нужна — это те же операции, что доступны гостю на сайте меню.
Управление своими данными ресторатора (редактирование меню, цены, статистика) — отдельный MCP-сервер с API-ключами: см. MCP Server Guide.
Адресация ресторана
Ресторан адресуется кодом локации — это сегмент URL меню в верхнем регистре. Если меню открывается по menio.ru/MYCAFE, код — MYCAFE. Тот же код зашит в QR-коды столиков.
Быстрый старт (REST)
# Что умеет API
curl https://api.menio.ru/llm/v1
# Меню ресторана на русском
curl "https://api.menio.ru/llm/v1/locations/MYCAFE/menu?lang=ru"
# Оформить заказ навынос
curl -X POST https://api.menio.ru/llm/v1/locations/MYCAFE/orders \
-H 'Content-Type: application/json' \
-d '{
"items": [{"itemId": "abc123", "quantity": 2}],
"orderType": "pickup",
"customer": {"name": "Гость", "phone": "+995555123456"},
"language": "ru"
}'
# → {"accepted": true, "orderId": "…", "total": 24, "statusUrl": "…"}
# Статус заказа (orderId — секретный токен доступа)
curl https://api.menio.ru/llm/v1/locations/MYCAFE/orders/{orderId}
Полная спецификация: OpenAPI 3.1.
Эндпоинты
| Метод | Путь | Что делает |
|---|---|---|
| GET | /llm/v1/locations/{DOMAIN}/menu?lang=xx |
Меню: категории, блюда, цены, варианты и допы, валюта, способы получения |
| GET | /llm/v1/locations/{DOMAIN}/items/{itemId} |
Одно блюдо с опциями |
| POST | /llm/v1/locations/{DOMAIN}/orders |
Оформить заказ (сервер валидирует состав и считает суммы) |
| GET | /llm/v1/locations/{DOMAIN}/orders/{orderId} |
Статус заказа, номер, позиции |
| GET | /llm/v1/locations/{DOMAIN}/reservations/availability?start=&durationMinutes= |
Свободные/занятые столики по схеме зала |
| POST | /llm/v1/locations/{DOMAIN}/reservations |
Заявка на бронь (pending до подтверждения рестораном) |
| GET / DELETE | /llm/v1/locations/{DOMAIN}/reservations/{id} |
Статус / отмена брони |
Подключение по MCP
Сервер: https://api.menio.ru/llm/mcp — Model Context Protocol, streamable HTTP, stateless, без авторизации.
Конфигурация для Claude Desktop / Claude Code и совместимых клиентов:
{
"mcpServers": {
"meni-guest": {
"type": "http",
"url": "https://api.menio.ru/llm/mcp"
}
}
}
Инструменты: get_menu, get_item, create_order, get_order_status, check_table_availability, create_reservation, get_reservation_status, cancel_reservation.
Типовые сценарии:
- Заказ:
get_menu→create_order→get_order_status(4-значный номер появляется через пару секунд). - Бронь столика:
check_table_availability(столы со схемы зала, свободен/занят на выбранное время) →create_reservationсtableId→get_reservation_status(ресторан подтверждает заявку) → при необходимостиcancel_reservation.
Правила и гарантии
- Заказ валидируется по живому меню: несуществующее блюдо, вариант или доп — ошибка 400 со списком проблем; цены и итог считает сервер, у агента нет способа «назначить» цену.
- Для самовывоза и доставки обязательны имя и телефон гостя; для доставки — адрес.
orderId/reservationId— секретные токены: по ним проверяется статус и отменяется бронь. Не публикуйте их.- Заказы и брони попадают ресторану в реальном времени — в админку, на кухонный экран и в уведомления, как обычные заказы с сайта.
- Брони гостя имеют статус
pending, пока ресторан не подтвердит их в админке.
Машиночитаемое обнаружение
https://menio.ru/llms.txt— краткая карта API для LLM;https://menio.ru/.well-known/mcp.json— манифест MCP-серверов;GET https://api.menio.ru/llm/v1— discovery-документ с примерами.