Программный доступ к каталогу и заказам. Ключ выдаётся в клиентском боте; все запросы идут по HTTPS.
https://nordi.site/api/v1
Отдельного api-поддомена нет: любой адрес вида api.* — не наш, ключ туда не отправляйте.
Каждый запрос несёт заголовок с ключом:
X-Api-Key: <ваш ключ>
Для ключей с включённой подписью дополнительно нужны отметка времени и подпись тела:
X-Timestamp: <unix epoch, секунды>
X-Signature: hmac_sha256(secret, f"{ts}\n{body}").hex()/healthПроверка доступности/productsКаталог товаров с фильтрами и пагинацией/products/{id}Товар по публичному номеру (sku)/instantТолько позиции с мгновенной выдачей/categoriesКатегории со счётчиками/balanceБаланс ключа/balance/topupПополнение баланса ключа/ordersСоздать заказ/ordersСписок заказов ключа/orders/{id}Заказ по номеру/usageРасход лимитов ключа/healthПроверка доступности
curl -s "https://nordi.site/api/v1/health" -H "X-Api-Key: $KEY"
Ответ
{"status": "ok", "timestamp": 1786000000}/productsКаталог товаров с фильтрами и пагинацией
Параметры
categoryслаг категории, как в /categoriesskuточный публичный номер позицииmin_priceцена за штуку в USDT, не нижеmax_priceцена за штуку в USDT, не вышеmin_qtyостаток не меньше указанного, по умолчанию 1pageстраница, с 1page_sizeпозиций на странице, 1…200, по умолчанию 50curl -s "https://nordi.site/api/v1/products?category=autoreg_aged&min_qty=10&page_size=50" \ -H "X-Api-Key: $KEY"
Ответ
{"total": 72, "page": 1, "page_size": 50, "items": [
{"id": 388448, "sku": 732110,
"title": "Instagram | Авторег API | Отлежка 7+ мес.",
"category": "autoreg_aged", "price_usdt": 0.3991,
"quantity": 493, "min_quantity": 10, "is_available": true,
"has_real_device": false, "followers_count": null, "account_age_days": 255,
"tags": ["autoreg_aged", "account_2fa"],
"instant_delivery": true, "instant_stock": 410}
]}/products/{sku}Товар по публичному номеру (sku)
curl -s "https://nordi.site/api/v1/products/732110" -H "X-Api-Key: $KEY"
Ответ
{"id": 388448, "sku": 732110, "quantity": 493, "min_quantity": 10,
"price_usdt": 0.3991, "is_available": true, "instant_stock": 410}/instantТолько позиции с мгновенной выдачей
Параметры
categoryслаг категории, как в /categoriesmin_priceцена за штуку в USDT, не нижеmax_priceцена за штуку в USDT, не вышеpageстраница, с 1page_sizeпозиций на странице, 1…200, по умолчанию 50curl -s "https://nordi.site/api/v1/instant?max_price=1" -H "X-Api-Key: $KEY"
Ответ
{"total": 18, "page": 1, "page_size": 50, "items": [
{"sku": 732110, "instant_delivery": true, "instant_stock": 410, "price_usdt": 0.3991}
]}/categoriesКатегории со счётчиками
curl -s "https://nordi.site/api/v1/categories" -H "X-Api-Key: $KEY"
Ответ
[{"category": "autoreg_aged", "count": 38, "min_price_usdt": 0.2183},
{"category": "account_2fa", "count": 20, "min_price_usdt": 0.2903}]/balanceБаланс ключа
curl -s "https://nordi.site/api/v1/balance" -H "X-Api-Key: $KEY"
Ответ
{"balance_usdt": 50.0, "total_spent_usdt": 12.5,
"total_topup_usdt": 62.5, "total_refunded_usdt": 0.0, "currency": "USDT"}/balance/topupHMACПополнение баланса ключа
Параметры
amount_usdtсумма пополнения в USDT, 1…100000networkсеть перевода из списка нижеTS=$(date +%s)
BODY='{"amount_usdt":100,"network":"usdt_trc_20"}'
SIG=$(printf "$TS\n$BODY" | openssl dgst -sha256 -hmac "$SECRET" -r | cut -d" " -f1)
curl -s -X POST "https://nordi.site/api/v1/balance/topup" \
-H "X-Api-Key: $KEY" -H "X-Timestamp: $TS" -H "X-Signature: $SIG" \
-H "Content-Type: application/json" -d "$BODY"Ответ
{"topup_id": "9f1c…", "payment_address": "T…", "payment_network": "usdt_trc_20",
"amount_usdt": 100.07, "expires_at": 1786003600}/ordersHMACСоздать заказ
Параметры
product_idпубличный номер позиции (sku)quantityсколько штук, 1…10000 и не меньше min_quantitypayment_method«balance» — с баланса ключа, либо сеть перевода из списка нижеwebhook_urlпубличный HTTPS-адрес для уведомления о конечном статусеTS=$(date +%s)
BODY='{"product_id":732110,"quantity":10,"payment_method":"balance"}'
SIG=$(printf "$TS\n$BODY" | openssl dgst -sha256 -hmac "$SECRET" -r | cut -d" " -f1)
curl -s -X POST "https://nordi.site/api/v1/orders" \
-H "X-Api-Key: $KEY" -H "X-Timestamp: $TS" -H "X-Signature: $SIG" \
-H "Content-Type: application/json" -d "$BODY"Ответ
{"order_id": "ND-104512", "status": "processing", "price_usdt": 3.99,
"quantity": 10, "items": null, "refunded": false,
"created_at": 1786000000, "updated_at": 1786000000}/ordersСписок заказов ключа
Параметры
statusprocessing, completed, failed, expired, cancelled, refundedpageстраница, с 1page_sizeпозиций на странице, 1…200, по умолчанию 50curl -s "https://nordi.site/api/v1/orders?status=completed&page_size=20" -H "X-Api-Key: $KEY"
Ответ
{"total": 4, "page": 1, "page_size": 20, "items": [
{"order_id": "ND-104512", "status": "completed", "sku": 732110,
"quantity": 10, "price_usdt": 3.99, "refunded": false}
]}/orders/{order_id}Заказ по номеру
curl -s "https://nordi.site/api/v1/orders/ND-104512" -H "X-Api-Key: $KEY"
Ответ
{"order_id": "ND-104512", "status": "completed", "quantity": 10,
"items": [{"login": "…", "password": "…", "cookies": "…"}],
"error_message": null, "refunded": false}/usageРасход лимитов ключа
curl -s "https://nordi.site/api/v1/usage" -H "X-Api-Key: $KEY"
Ответ
{"request_count": 1284, "last_used_at": 1786000000,
"first_used_at": 1785000000, "last_endpoint": "/v1/products",
"total_spent_usdt": 12.5}sku — публичный номер, по нему же открывается карточка и создаётся заказ; quantity — остаток; min_quantity — минимальная партия, меньше бэкенд не принимает; instant_delivery и instant_stock — сколько единиц уходит из готового склада сразу после оплаты; is_available — продаётся ли позиция сейчас; tags — категории, к которым она отнесена; title_en и title_zh — название на других локалях, может быть пустым.
processingпринят и оплачивается или собираетсяcompletedвыдан целиком, аккаунты в itemsfailedне собрался; автоматического возврата нет — напишите в поддержку, вернём вручнуюexpiredоплата не пришла в срок, заказ закрытcancelledотменён; автоматического возврата нет — если деньги списаны, напишите в поддержку, вернём вручнуюrefundedвозврат проведёнusdt_trc_20, usdt_bep_20, usdt_polygon, usdt_arbitrum, usdt_ton, usdt_solana. Сумма к переводу резервируется уникальной — переводите её до копейки, иначе платёж придётся искать руками.
60 запросов в минуту на ключ; каталог и категории дополнительно ограничены 120 запросами в минуту на адрес. Превышение отдаёт 429 с временем ожидания в тексте ошибки — повторяйте с задержкой.
Передайте webhook_url в POST /orders — на него уйдёт POST с JSON, когда заказ дойдёт до конечного состояния: completed, partial, failed, expired, cancelled или refunded.
POST https://nordi.site/api/v1/orders
{"product_id": 732110, "quantity": 10, "payment_method": "balance",
"webhook_url": "https://your.site/nordi-hook"}Тело: order_id, status, price_usdt, quantity, product_id, items (выдача), error_message, refunded, fired_at.
{"order_id": "ND-104512", "status": "completed", "price_usdt": 3.99,
"quantity": 10, "product_id": 732110,
"items": [{"login": "…", "password": "…"}],
"error_message": null, "refunded": false, "fired_at": 1786000000}401ключ не передан или отозван403подпись неверна либо просрочена404позиции или заказа с таким номером нет409на балансе ключа не хватает средств422параметры не прошли проверку429превышен лимит запросов — повторите с задержкойГотовая коллекция со всеми методами: подставьте базу и ключ в переменные окружения.
Ключ выдаёт клиентский бот магазина — @nordiinsta_bot. Секрет показывается один раз, повторно его не восстановить.