Buyer API — документация
API для покупателей: реселлеров, MCP-клиентов и B2B-партнёров. Интегрируйте каталог Gaming Goods в свои приложения — REST с JSON-ответами, JWT-аутентификацией и предсказуемой структурой ошибок. Продавцам — Seller API.
Base URL
https://gaming-goods.ru/api/v1Все эндпоинты начинаются с этого базового URL. Ответы возвращаются в формате JSON.
Аутентификация
Есть несколько схем доступа — выбирайте по сценарию:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Authorization: Bearer gg_live_xxxxxxxxxxxxxxxxxxxxПубличные эндпоинты (каталог, поиск, категории, бренды) доступны без токена. За получением gg_live_-ключа обращайтесь на ceo@vvv.cash.
Каталог товаров
Возвращает список товаров с пагинацией и фильтрами.
{
"data": {
"products": [
{
"id": "a1b2c3d4-...",
"name": "Cyberpunk 2077",
"slug": "cyberpunk-2077-steam-key",
"category": "Steam",
"brand": "CD Projekt",
"price": 19.99,
"currency": "EUR",
"stock_quantity": 12,
"image_url": "https://gaming-goods.ru/...",
"is_active": true
}
],
"total": 1542,
"page": 1,
"page_size": 20
}
}Детали товара
Возвращает полную информацию о товаре по его slug.
{
"data": {
"id": "a1b2c3d4-...",
"name": "Cyberpunk 2077",
"slug": "cyberpunk-2077-steam-key",
"category": "Steam",
"brand": "CD Projekt",
"description": "Открытый мир в жанре...",
"price": 19.99,
"currency": "EUR",
"stock_quantity": 12,
"image_url": "https://gaming-goods.ru/...",
"is_active": true,
"meta": { "activation_details": "..." }
}
}Поиск
Полнотекстовый поиск по каталогу товаров.
{
"data": {
"products": [
{
"id": "a1b2c3d4-...",
"name": "Cyberpunk 2077",
"slug": "cyberpunk-2077-steam-key",
"price": 19.99,
"stock_quantity": 12,
"is_active": true
}
],
"total": 3,
"page": 1,
"page_size": 20
}
}Категории
Возвращает список всех категорий с количеством товаров в каждой.
{
"data": [
{ "name": "Steam", "product_count": 842 },
{ "name": "Xbox", "product_count": 215 },
{ "name": "PlayStation", "product_count": 187 },
{ "name": "Nintendo", "product_count": 94 }
]
}Бренды
Возвращает список всех брендов с количеством товаров.
{
"data": [
{ "name": "Microsoft", "product_count": 312 },
{ "name": "Electronic Arts", "product_count": 198 },
{ "name": "Ubisoft", "product_count": 156 }
]
}Создание заказа
Создаёт новый заказ. Требуется аутентификация. Заголовок Idempotency-Key ОБЯЗАТЕЛЕН (с GG-278) — без него вернётся 400 MISSING_IDEMPOTENCY_KEY.
{
"items": [
{
"product_id": "a1b2c3d4-...",
"quantity": 1
}
],
"payment_method": "balance",
"promo_code": "SALE10"
}{
"data": {
"id": "e5f6a7b8-...",
"status": "pending_payment",
"items": [
{
"product_id": "a1b2c3d4-...",
"product_name": "Cyberpunk 2077",
"price": 1999,
"quantity": 1
}
],
"total": 1799,
"currency": "EUR",
"payment_url": "https://...",
"created_at": "2026-07-13T12:00:00Z"
}
}Статус заказа
Возвращает детали заказа включая ключи активации (после оплаты). Требуется аутентификация.
{
"data": {
"id": "e5f6a7b8-...",
"status": "completed",
"items": [
{
"product_id": "a1b2c3d4-...",
"product_name": "Cyberpunk 2077",
"price": 1999,
"quantity": 1,
"keys": ["XXXXX-XXXXX-XXXXX-XXXXX"]
}
],
"total": 1999,
"currency": "EUR",
"created_at": "2026-07-13T12:00:00Z",
"completed_at": "2026-07-13T12:00:05Z"
}
}Public API (Pub) — B2B
Платный B2B-канал с ключом Authorization: Bearer gg_live_…. Отдаёт «полный-но-маскированный» каталог (без раскрытия поставщика) и позволяет создавать заказы. Base URL: https://gaming-goods.ru/api/v1/pub.
KEY="gg_live_xxxxxxxxxxxxxxxxxxxx"
# 1) Список каталога
curl -sS -H "Authorization: Bearer $KEY" \
"https://gaming-goods.ru/api/v1/pub/products?q=cyberpunk&page_size=1"
# 2) Детали товара
curl -sS -H "Authorization: Bearer $KEY" \
"https://gaming-goods.ru/api/v1/pub/products/cyberpunk-2077-steam-key"
# 3) Создание заказа (recipient_data — для recipient-товаров)
curl -sS -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"items":[{"gg_product_id":"a1b2c3d4-...","quantity":1}],"idempotency_key":"550e8400-e29b-41d4-a716-446655440000"}' \
"https://gaming-goods.ru/api/v1/pub/orders"
# 4) Детали заказа
curl -sS -H "Authorization: Bearer $KEY" \
"https://gaming-goods.ru/api/v1/pub/orders/e5f6a7b8-..."Pub: Каталог
Список товаров с фильтрами и пагинацией. Требует Bearer gg_live_. provider_type маскируется как "marketplace".
{
"products": [
{
"gg_product_id": "a1b2c3d4-...",
"slug": "cyberpunk-2077-steam-key",
"name": "Cyberpunk 2077",
"provider_type": "marketplace",
"price": 19.99,
"currency": "EUR",
"stock_quantity": 12,
"delivery_type": "playwallet",
"moderation_status": "approved",
"is_active": true,
"steam_app_id": 1091500,
"steam_url": "https://store.steampowered.com/app/1091500/"
}
],
"total": 1542,
"page": 1,
"page_size": 100
}Pub: Детали товара
Полная карточка товара по slug. Требует Bearer gg_live_.
{ "product": { "gg_product_id": "...", "slug": "...", "steam_app_id": 1091500, "steam_url": "https://store.steampowered.com/app/1091500/" } }Pub: Создание заказа
Создаёт заказ по каталогу. Для recipient-товаров обязателен recipient_data (см. раздел). idempotency_key — поле тела (если не задано, генерируется автоматически; для защиты от дублей при ретраях задавайте свой).
{
"items": [{ "gg_product_id": "a1b2c3d4-...", "quantity": 1 }],
"idempotency_key": "550e8400-e29b-41d4-a716-446655440000",
"recipient_data": { "steam_login": "user123" }
}{ "data": { "id": "e5f6a7b8-...", "status": "pending_payment", "total": 1999, "currency": "EUR" } }Pub: Детали заказа
Статус и содержимое заказа, включая ключи после выполнения. Требует Bearer gg_live_.
{ "data": { "id": "e5f6a7b8-...", "status": "completed", "delivery": { "codes": ["XXXXX-XXXXX"] } } }Pub: Баланс (в review)
Текущий баланс партнёра. Эндпоинт в review (GG-393) — уточните доступность перед использованием.
{ "data": { "balance": 125000, "currency": "EUR" } }Контракт recipient_data
Для товаров с доставкой на получателя нужно передавать объект recipient_data при создании заказа (POST /pub/orders и POST /buyer/checkout/virtual). Какое поле нужно — определяется по delivery_type товара (REST-каталог не отдаёт отдельного recipient_requirement — ориентируйтесь на delivery_type).
"recipient_data": {
"telegram_username": "@durov" // fragment
// "steam_login": "user123" // playwallet
// "recipient_email": "u@mail.com" // manual_gift
} Ошибки валидации: recipient_required (поле не передано), recipient_invalid (формат неверный) — HTTP 422.
MCP-канал (для AI-агентов)
MCP-сервер по адресу https://gaming-goods.ru/mcp — для интеграции с AI-клиентами (Claude Desktop, ChatGPT Custom Connector и др.) поверх OAuth 2.1. Транспорт — JSON-RPC поверх HTTP/SSE.
Доступные MCP-инструменты: search, get_product, add_to_cart, view_cart, remove_from_cart, clear_cart, create_checkout_link. Scope mcp. Инструменты search/get_product отдают requires_recipient + recipient_schema.
Partner API
Partner API предназначен для интеграции сторонних площадок. Аутентификация через заголовок X-API-Key. Для получения ключа обратитесь на ceo@vvv.cash.
https://gaming-goods.ru/api/partner/v1Partner: Бренды
Возвращает список брендов с количеством доступных товаров.
{
"items": [
{ "brand": "Steam", "product_count": 842 },
{ "brand": "Xbox", "product_count": 215 }
],
"limit": 20,
"offset": 0,
"total": 156
}Partner: Категории бренда
Возвращает категории товаров для указанного бренда.
{
"brand": "Steam",
"categories": [
{ "category": "Game Keys", "product_count": 650 },
{ "category": "Gift Card", "product_count": 42 }
]
}Partner: Каталог товаров
Возвращает товары с пагинацией. Цены в евроцентах. product_type=KINGUIN — маркер поставщика.
{
"items": [
{
"id": "a1b2c3d4-...",
"title": "Cyberpunk 2077 Steam Key",
"brand": "CD Projekt",
"category": "Game Keys",
"genres": ["RPG"],
"platform": "Steam",
"activation_type": "steam",
"region": "GLOBAL",
"price": 1999,
"currency": "EUR",
"quantity": 12,
"is_available": true,
"delivery_type": "EXTERNAL",
"product_type": "KINGUIN",
"images": ["https://gaming-goods.ru/..."],
"short_description": "",
"steam_app_id": 1091500,
"steam_url": "https://store.steampowered.com/app/1091500/"
}
],
"total": 1542,
"limit": 20,
"offset": 0
}Partner: Детали товара
Полная информация о товаре по его UUID. steam_discount_percent, steam_app_id, steam_url, activation_instructions — присутствуют только при наличии данных (для Kinguin с verified-матчем).
{
"id": "a1b2c3d4-...",
"title": "Cyberpunk 2077 Steam Key",
"brand": "CD Projekt",
"category": "Game Keys",
"genres": ["RPG"],
"platform": "Steam",
"activation_type": "steam",
"region": "GLOBAL",
"price": 1999,
"currency": "EUR",
"quantity": 12,
"is_available": true,
"delivery_type": "EXTERNAL",
"product_type": "KINGUIN",
"images": ["https://gaming-goods.ru/..."],
"description": "Открытый мир в жанре...",
"short_description": "",
"specifications": [ { "key": "platform", "value": "Steam" } ],
"steam_discount_percent": 42,
"steam_app_id": 1091500,
"steam_url": "https://store.steampowered.com/app/1091500/",
"activation_instructions": "..."
}Partner: Оформление заказа
Создаёт заказ. Источник: "cart" (из корзины) или "lines" (товары в запросе). Требуется X-API-Key.
// Из корзины:
{ "source": "cart" }
// Или с указанием товаров:
{
"source": "lines",
"lines": [
{ "product_id": "a1b2c3d4-...", "quantity": 1 }
]
}{
"orders": [
{
"id": "e5f6a7b8-...",
"status": "created",
"total": 1999,
"currency": "EUR"
}
]
}Partner: Список заказов
Возвращает список заказов партнёра с пагинацией. Требуется X-API-Key.
{
"items": [
{
"id": "e5f6a7b8-...",
"status": "completed",
"total": 1999,
"currency": "EUR",
"created_at": "2026-07-13T12:00:00Z"
}
],
"limit": 20,
"offset": 0,
"total": 47
}Partner: Детали заказа
Детали заказа. Ключи доступны в delivery.codes после выполнения. Требуется X-API-Key.
{
"id": "e5f6a7b8-...",
"buyer_id": "c3d4e5f6-...",
"status": "completed",
"items": [
{
"product_id": "a1b2c3d4-...",
"title": "Cyberpunk 2077 Steam Key",
"unit_price": 1999,
"quantity": 1
}
],
"amounts": {
"buyer_total": 1999,
"platform_fee": 0
},
"payment": {
"method": "balance",
"state": "paid"
},
"delivery": {
"type": "EXTERNAL",
"codes": ["XXXXX-XXXXX-XXXXX"]
},
"created_at": "2026-07-13T12:00:00Z",
"updated_at": "2026-07-13T12:00:05Z"
}Rate Limiting
Лимиты зависят от типа доступа. При превышении сервер вернёт 429 Too Many Requests с заголовком Retry-After. Рекомендуем экспоненциальный backoff.
Заголовки ответа для лимитируемых эндпоинтов (имена регистронезависимы; по HTTP/2 передаются в нижнем регистре). X-RateLimit-Reset — Unix-время сброса окна.
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 1784617860
X-Request-ID: 500c767f-6e64-4d35-b2bd-1c7698befae7Формат ошибок
Все ошибки возвращаются в едином конверте { "error": { "code", "message" } }. На REST-поверхностях (публичный API, Public API, Partner API, Seller API) коды в стиле UPPER_SNAKE (напр. VALIDATION_ERROR). Исключение — слой MCP OAuth 2.1: там коды в нижнем регистре по спецификации OAuth (invalid_request, invalid_grant, invalid_token).
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Parameter 'page' must be a positive integer"
}
}Изменения (Changelog)
Последняя правка: 13 июля 2026.
Получить доступ к API
Для получения API-токена и обсуждения интеграции обратитесь к нам по электронной почте.