REST API для автоматизации покупок через франшизные боты. JSON, Bearer-токен.
👤 Профиль → 🔑 API ключи➕ Сгенерировать ключpad_live_…) — он показывается один разAuthorization: Bearer pad_live_…https://api.padington.com/v1application/json. Кодировка UTF-8.
/llms.txt — короткое описание API для LLM/llms-full.txt — полная Markdown-версия документации/openapi.json — OpenAPI 3.1 спецификация
Каждый запрос требует заголовок:
Authorization: Bearer pad_live_AbCd...XyZ
Ключ привязан к твоему профилю в боте. Все списания идут с твоего баланса в этом боте — как обычная покупка.
| Код | Значение |
|---|---|
401 | Нет/неверный/отозванный ключ |
402 | Недостаточно средств на балансе |
400 | Невалидные параметры (см. detail) |
404 | Заказ не найден / не твой |
500 | Внутренняя ошибка |
Возвращает текущий баланс в рублях:
{
"balance_rub": 5432.10
}
Возвращает каталог всех доступных товаров с актуальными ценами в рублях.
{
"stars": {
"min_quantity": 50,
"max_quantity": 1000000,
"price_per_star_rub": 1.27
},
"premium": [
{"duration_months": 3, "price_rub": 1500.00},
{"duration_months": 6, "price_rub": 2200.00},
{"duration_months": 12, "price_rub": 3499.00}
],
"chatgpt": [
{"id": "plus_1m", "name": "Chat GPT Plus 1 мес", "price_rub": 1499},
{"id": "plus_12m", "name": "Chat GPT Plus 12 мес", "price_rub": 14999},
{"id": "pro_1m", "name": "Chat GPT Pro 1 мес", "price_rub": 8999}
],
"claude": [
{"id": "pro", "name": "Claude Pro", "price_rub": 1299},
{"id": "max5", "name": "Claude Max 5", "price_rub": 4999},
{"id": "max20", "name": "Claude Max 20", "price_rub": 9999}
],
"robux": [
{"pack": "r80", "robux": 80, "name": "80 R$", "price_rub": 88.00},
{"pack": "r500","robux": 500,"name": "500 R$", "price_rub": 410.00}
]
}
Тело запроса зависит от category. Деньги списываются с баланса атомарно при создании заказа (если баланс недостаточен — 402, заказ не создаётся).
{
"category": "chatgpt",
"item": "plus_1m"
}
Авто-выдача через несколько секунд. Коды возвращаются в поле error (legacy-нейминг, см. статус). синхронно
{
"category": "robux",
"pack": "r500",
"roblox_username": "PlayerNickname",
"roblox_password": "secret_password"
}
needs_verification.
В error будет JSON с next_action — что именно требуется.
Подтверждение через будущий POST /v1/order/{code}/verify (в разработке).
{
"category": "stars",
"quantity": 100,
"recipient": "telegram_username"
}
Авто-выдача через Fragment (TON-транзакция). quantity: 50–1,000,000. Время выполнения: 30–120 сек. синхронно
{
"category": "premium",
"duration": 3,
"recipient": "telegram_username"
}
Авто-выдача Telegram Premium через Fragment. duration: 3, 6 или 12 месяцев. Время выполнения: 30–120 сек. синхронно
{
"order_code": "API-1718183020-A3F5C9",
"status": "pending",
"amount_rub": 1499.00,
"detail": {
"category": "chatgpt",
"item": "plus_1m",
"name": "Chat GPT Plus 1 мес"
},
"poll_url": "/v1/order/API-1718183020-A3F5C9"
}
Полинг для проверки статуса. Обычно CDK-заказ обрабатывается за 2-10 секунд.
| status | Описание |
|---|---|
| pending | В очереди на обработку |
| processing | Идёт выдача |
| needs_verification | Roblox требует 2FA — см. error.next_action |
| completed | Готово, см. external_id или error.codes |
| failed | Ошибка, баланс возвращён |
{
"order_code": "API-1718183020-A3F5C9",
"category": "chatgpt",
"item_key": "plus_1m",
"amount_rub": 1499.00,
"cost_rub": 0,
"profit_rub": 1499.00,
"status": "completed",
"external_id": "XXXX-YYYY-ZZZZ",
"error": "{\"codes\":[\"XXXX-YYYY-ZZZZ\"]}",
"created_at": "2026-06-12 10:23:40",
"completed_at": "2026-06-12 10:23:46"
}
Список твоих заказов в обратном хронологическом порядке.
{
"orders": [...],
"limit": 20,
"offset": 0
}
API_KEY="pad_live_..."
# Баланс
curl -H "Authorization: Bearer $API_KEY" \
https://api.padington.com/v1/balance
# Каталог
curl -H "Authorization: Bearer $API_KEY" \
https://api.padington.com/v1/catalog
# Купить ChatGPT Plus
curl -X POST https://api.padington.com/v1/order \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"category":"chatgpt","item":"plus_1m"}'
# Опрос статуса
curl -H "Authorization: Bearer $API_KEY" \
https://api.padington.com/v1/order/API-1718183020-A3F5C9
import requests, time
API_KEY = "pad_live_..."
BASE = "https://api.padington.com/v1"
H = {"Authorization": f"Bearer {API_KEY}"}
# Баланс
print(requests.get(f"{BASE}/balance", headers=H).json())
# Купить Claude Pro
r = requests.post(
f"{BASE}/order",
headers={**H, "Content-Type": "application/json"},
json={"category": "claude", "item": "pro"},
).json()
code = r["order_code"]
print(f"Order: {code}, amount: {r['amount_rub']} RUB")
# Polling до завершения
while True:
o = requests.get(f"{BASE}/order/{code}", headers=H).json()
if o["status"] in ("completed", "failed"):
print(o)
break
time.sleep(2)
const API_KEY = "pad_live_...";
const BASE = "https://api.padington.com/v1";
const H = { "Authorization": `Bearer ${API_KEY}` };
const balance = await fetch(`${BASE}/balance`, { headers: H }).then(r => r.json());
console.log(balance);
const order = await fetch(`${BASE}/order`, {
method: "POST",
headers: { ...H, "Content-Type": "application/json" },
body: JSON.stringify({ category: "chatgpt", item: "plus_1m" }),
}).then(r => r.json());
console.log(order);
POST /order). После этого сумма не пересчитывается, даже если в каталоге она изменилась.GET /catalog, чтобы видеть актуальные значения.POST /order создаёт новый заказ. Повторный запрос с теми же параметрами = новая покупка.GET /order/{code}.По вопросам и багам создавайте тикет через раздел «Поддержка» в боте.
Padington Shop API v1 · build 2026-06-12