SilentShop Public API v1.1
Программный интерфейс SilentShop позволяет интегрировать покупку Telegram аккаунтов прямо в ваши скрипты, боты и системы автоматизации. Заказы обрабатываются в реальном времени с персистентным хранением состояния — статус заказа сохраняется даже после перезапуска сервера.
9
эндпоинтов
60s
кэш каталога
2/s
rate limit
Base URL: https://lk.silentshop.shop
Авторизация
Все запросы (кроме /status) требуют заголовок X-API-Key. Сгенерировать ключ можно в Mini App → Профиль → Настройки → API ключ.
// Пример заголовка
X-API-Key: sl_9a8f273d4b6c81e9f2a3...
Не передавайте API-ключ на клиентской стороне. Используйте только в серверных скриптах.
Формат product_id
Каждый товар имеет уникальный product_id. Его можно получить из ответа GET /api/public/v1/products. Существует два типа:
Тип 1: Динамические товары (с внешних маркетов)
dyn_{id}
Например: dyn_1, dyn_42
Число — внутренний ID группы товаров (неизменный).
Тип 2: Локальные товары (из базы аккаунтов)
local_{CC}_{age}_{premium}_{price}
Например: local_US_3months_0_1.5
| Поле | Пример | Описание |
|---|---|---|
| CC | US | Код страны ISO 3166-1 |
| age | 3months | Возраст аккаунта |
| premium | 0 / 1 | 0 — обычный, 1 — Premium |
| price | 1.5 | Цена в USDT |
Используйте GET /api/public/v1/products?country=US для быстрого поиска нужного товара с фильтрацией по стране.
Rate Limiting
- Максимум 2 запроса в секунду на один API-ключ.
- При превышении —
429 Too Many Requests. - Кэш каталога товаров обновляется раз в 60 секунд — не нужно опрашивать чаще.
Коды ошибок
Все ошибки возвращаются в едином формате:
{ "status": "error", "message": "Описание ошибки", "code": 400 }
| Код | Значение |
|---|---|
| 200 | Успех |
| 400 | Неверные параметры запроса |
| 401 | Отсутствует или неверный X-API-Key |
| 402 | Недостаточно средств на балансе |
| 403 | Нет доступа к ресурсу (чужой заказ) |
| 404 | Ресурс не найден |
| 429 | Превышен rate limit (2 req/s) |
| 500 | Внутренняя ошибка сервера |
Статус API
Не требует авторизации/api/public/v1/status
Health-check: версия API, статус базы данных, аптайм. Используйте для мониторинга доступности сервиса.
cURL
curl https://lk.silentshop.shop/api/public/v1/status
Ответ 200 OK
{
"status": "ok",
"version": "1.1.0",
"database": "ok",
"uptime_seconds": 3600,
"cache_ttl_seconds": 60
}
Профиль пользователя
/api/public/v1/profile
Возвращает Telegram ID и текущий баланс счёта в USDT.
curl -H "X-API-Key: YOUR_KEY" \ https://lk.silentshop.shop/api/public/v1/profile
import requests
r = requests.get(
"https://lk.silentshop.shop/api/public/v1/profile",
headers={"X-API-Key": "YOUR_KEY"}
)
print(r.json())const r = await fetch(
"https://lk.silentshop.shop/api/public/v1/profile",
{ headers: { "X-API-Key": "YOUR_KEY" } }
);
console.log(await r.json());Ответ 200 OK
{
"status": "success",
"telegram_id": 161451219,
"balance": 150.45,
"currency": "USDT"
}
Баланс и история транзакций
NEW/api/public/v1/balance
Возвращает текущий баланс и последние 20 транзакций (пополнения и списания).
cURL
curl -H "X-API-Key: YOUR_KEY" \ https://lk.silentshop.shop/api/public/v1/balance
Ответ 200 OK
{
"status": "success",
"balance": 150.45,
"currency": "USDT",
"history": [
{
"amount": -1.50,
"operation": "purchase",
"description": "API Purchase: US 3months",
"timestamp": "2026-07-30T10:22:00"
}
]
}
Каталог товаров
/api/public/v1/products
Полный каталог доступных товаров. Результат кэшируется на 60 секунд.
Query параметры (опциональные):
| Параметр | Тип | Пример | Описание |
|---|---|---|---|
| country | string | US | Фильтр по коду страны ISO |
| premium | boolean | false | Фильтр по типу аккаунта |
# Все товары curl -H "X-API-Key: YOUR_KEY" \ "https://lk.silentshop.shop/api/public/v1/products" # Только США curl -H "X-API-Key: YOUR_KEY" \ "https://lk.silentshop.shop/api/public/v1/products?country=US"
import requests
H = {"X-API-Key": "YOUR_KEY"}
# Все товары
products = requests.get(
"https://lk.silentshop.shop/api/public/v1/products",
headers=H
).json()["products"]
# Только обычные аккаунты США
us = requests.get(
"https://lk.silentshop.shop/api/public/v1/products",
headers=H,
params={"country": "US", "premium": False}
).json()["products"]Ответ 200 OK
{
"status": "success",
"count": 2,
"products": [
{
"product_id": "dyn_1",
"name": "США Новорег",
"country": "US",
"price": 1.0,
"currency": "USDT",
"premium": false,
"description": "Качественные аккаунты",
"stock": 3026
},
{
"product_id": "local_PL_3months_0_1.5",
"name": "3months",
"country": "PL",
"price": 1.5,
"currency": "USDT",
"premium": false,
"description": "",
"stock": 12
}
]
}
Товар по ID
NEW/api/public/v1/product/{product_id}
Возвращает детали одного товара. Использует тот же кэш 60 секунд, что и каталог.
cURL
curl -H "X-API-Key: YOUR_KEY" \ "https://lk.silentshop.shop/api/public/v1/product/dyn_1"
Ответ 200 OK
{
"status": "success",
"product": {
"product_id": "dyn_1",
"name": "США Новорег",
"country": "US",
"price": 1.0,
"currency": "USDT",
"premium": false,
"description": "...",
"stock": 3026
}
}
Покупка аккаунтов
/api/public/v1/buy
Инициирует покупку. Баланс резервируется мгновенно, покупка происходит асинхронно. Максимум 50 штук за раз. Сразу возвращается order_id для опроса статуса.
Тело запроса (JSON):
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| product_id | string | Да | ID товара из каталога |
| quantity | integer | Нет (1) | Кол-во (1–50) |
curl -X POST \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id":"dyn_1","quantity":1}' \
https://lk.silentshop.shop/api/public/v1/buyimport requests, time
H = {"X-API-Key": "YOUR_KEY"}
r = requests.post(
"https://lk.silentshop.shop/api/public/v1/buy",
headers=H,
json={"product_id": "dyn_1", "quantity": 1}
).json()
order_id = r["order_id"]
# Polling статуса
while True:
s = requests.get(
f"https://lk.silentshop.shop/api/public/v1/order/{order_id}",
headers=H
).json()
if s["status"] != "processing":
break
time.sleep(3)
print(s)Ответ 200 (processing)
{
"status": "processing",
"order_id": "550e8400-e29b-41d4-...",
"total_cost": 1.0,
"currency": "USDT"
}
Статус заказа
/api/public/v1/order/{order_id}
Опрашивайте с интервалом 3–5 секунд. Статус заказа хранится в базе данных и не теряется при перезапуске сервера.
cURL
curl -H "X-API-Key: YOUR_KEY" \ "https://lk.silentshop.shop/api/public/v1/order/550e8400-..."
Статус: processing
{ "status": "processing", "message": "🔍 Ищу аккаунт 1 из 1..." }
Статус: success
{
"status": "success",
"accounts": [
{
"id": 1284,
"phone": "+1234567890",
"has_2fa": true,
"password_2fa": "mypass123",
"tdata_download_url": "https://lk.silentshop.shop/api/download/tdata/1284",
"session_download_url": "https://lk.silentshop.shop/api/download/session/1284",
"session_string": "1BJWap1wBu..."
}
]
}
Статус: error
{ "status": "error", "message": "❌ Нет подходящих аккаунтов." }
История заказов
NEW/api/public/v1/orders?limit=20
Список последних API-заказов пользователя. Максимум 50 записей. Параметр limit (по умолчанию 20).
cURL
curl -H "X-API-Key: YOUR_KEY" \ "https://lk.silentshop.shop/api/public/v1/orders?limit=5"
Ответ 200 OK
{
"status": "success",
"count": 1,
"orders": [
{
"order_id": "550e8400-e29b-...",
"status": "success",
"message": "Успешно!",
"purchased_ids": [1284],
"created_at": "2026-07-30T10:22:00"
}
]
}
Подписка на уведомление
NEW/api/public/v1/notify/{product_id}
Подписывает пользователя на уведомление в боте когда товар появится в наличии. Полезно для товаров со статусом stock: 0.
cURL
curl -X POST \ -H "X-API-Key: YOUR_KEY" \ "https://lk.silentshop.shop/api/public/v1/notify/dyn_1"
Ответ 200 OK
{
"status": "success",
"message": "Вы будете уведомлены когда товар 'dyn_1' появится в наличии."
}
Changelog
- 🆕 Новый эндпоинт
GET /balance— баланс + история транзакций - 🆕 Новый эндпоинт
GET /product/{id}— детали товара по ID - 🆕 Новый эндпоинт
GET /orders— история заказов - 🆕 Новый эндпоинт
POST /notify/{id}— подписка на уведомление - 🆕 Новый эндпоинт
GET /status— health-check - 🔧
GET /products— добавлены параметры?countryи?premium - 🔧 Кэш каталога 60 секунд — снижение нагрузки на внешние API
- 🔧 Заказы теперь хранятся в БД — статус не теряется при рестарте
- 🔧 Поле
currency: "USDT"добавлено во все ответы с ценами - 🔧 Унифицированный формат ошибок во всех эндпоинтах
- 🔧 Лимит на покупку — не более 50 штук за один запрос
Первый релиз: profile, products, buy, order status.