Programmatic access to the catalog and orders. The key is issued in the client bot; all requests go over HTTPS.
https://nordi.site/api/v1
There is no separate api subdomain: any api.* address is not ours — never send your key there.
Every request carries the key header:
X-Api-Key: <ваш ключ>
Keys with signing enabled additionally require a timestamp and a body signature:
X-Timestamp: <unix epoch, секунды>
X-Signature: hmac_sha256(secret, f"{ts}\n{body}").hex()/healthAvailability check/productsProduct catalog with filters and pagination/products/{id}Product by public number (sku)/instantInstant-delivery items only/categoriesCategories with counters/balanceKey balance/balance/topupTop up the key balance/ordersCreate an order/ordersOrders of the key/orders/{id}Order by id/usageKey rate-limit usage/healthAvailability check
curl -s "https://nordi.site/api/v1/health" -H "X-Api-Key: $KEY"
Response
{"status": "ok", "timestamp": 1786000000}/productsProduct catalog with filters and pagination
Parameters
categorycategory slug, as in /categoriesskuexact public item numbermin_priceprice per unit in USDT, not lowermax_priceprice per unit in USDT, not highermin_qtystock not below the given number, 1 by defaultpagepage, from 1page_sizeitems per page, 1…200, 50 by defaultcurl -s "https://nordi.site/api/v1/products?category=autoreg_aged&min_qty=10&page_size=50" \ -H "X-Api-Key: $KEY"
Response
{"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}Product by public number (sku)
curl -s "https://nordi.site/api/v1/products/732110" -H "X-Api-Key: $KEY"
Response
{"id": 388448, "sku": 732110, "quantity": 493, "min_quantity": 10,
"price_usdt": 0.3991, "is_available": true, "instant_stock": 410}/instantInstant-delivery items only
Parameters
categorycategory slug, as in /categoriesmin_priceprice per unit in USDT, not lowermax_priceprice per unit in USDT, not higherpagepage, from 1page_sizeitems per page, 1…200, 50 by defaultcurl -s "https://nordi.site/api/v1/instant?max_price=1" -H "X-Api-Key: $KEY"
Response
{"total": 18, "page": 1, "page_size": 50, "items": [
{"sku": 732110, "instant_delivery": true, "instant_stock": 410, "price_usdt": 0.3991}
]}/categoriesCategories with counters
curl -s "https://nordi.site/api/v1/categories" -H "X-Api-Key: $KEY"
Response
[{"category": "autoreg_aged", "count": 38, "min_price_usdt": 0.2183},
{"category": "account_2fa", "count": 20, "min_price_usdt": 0.2903}]/balanceKey balance
curl -s "https://nordi.site/api/v1/balance" -H "X-Api-Key: $KEY"
Response
{"balance_usdt": 50.0, "total_spent_usdt": 12.5,
"total_topup_usdt": 62.5, "total_refunded_usdt": 0.0, "currency": "USDT"}/balance/topupHMACTop up the key balance
Parameters
amount_usdttop-up amount in USDT, 1…100000networktransfer network from the list belowTS=$(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"Response
{"topup_id": "9f1c…", "payment_address": "T…", "payment_network": "usdt_trc_20",
"amount_usdt": 100.07, "expires_at": 1786003600}/ordersHMACCreate an order
Parameters
product_idpublic item number (sku)quantityhow many units, 1…10000 and not below min_quantitypayment_method«balance» — from the key balance, or a transfer network from the list belowwebhook_urla public HTTPS URL for the final-status notificationTS=$(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"Response
{"order_id": "ND-104512", "status": "processing", "price_usdt": 3.99,
"quantity": 10, "items": null, "refunded": false,
"created_at": 1786000000, "updated_at": 1786000000}/ordersOrders of the key
Parameters
statusprocessing, completed, failed, expired, cancelled, refundedpagepage, from 1page_sizeitems per page, 1…200, 50 by defaultcurl -s "https://nordi.site/api/v1/orders?status=completed&page_size=20" -H "X-Api-Key: $KEY"
Response
{"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}Order by id
curl -s "https://nordi.site/api/v1/orders/ND-104512" -H "X-Api-Key: $KEY"
Response
{"order_id": "ND-104512", "status": "completed", "quantity": 10,
"items": [{"login": "…", "password": "…", "cookies": "…"}],
"error_message": null, "refunded": false}/usageKey rate-limit usage
curl -s "https://nordi.site/api/v1/usage" -H "X-Api-Key: $KEY"
Response
{"request_count": 1284, "last_used_at": 1786000000,
"first_used_at": 1785000000, "last_endpoint": "/v1/products",
"total_spent_usdt": 12.5}sku — the public number; the product page and the order use it too. quantity — stock left; min_quantity — the minimum lot, the backend rejects less; instant_delivery and instant_stock — how many units ship from stock right after the payment; is_available — whether the item is on sale now; tags — the categories it belongs to; title_en and title_zh — the title in other locales, may be empty.
processingaccepted, being paid or assembledcompleteddelivered in full, accounts are in itemsfailednot assembled; there is no automatic refund — contact support and we will refund you manuallyexpiredpayment did not arrive in time, the order is closedcancelledcancelled; there is no automatic refund — if money was charged, contact support and we will refund you manuallyrefundedthe refund is doneusdt_trc_20, usdt_bep_20, usdt_polygon, usdt_arbitrum, usdt_ton, usdt_solana. The amount to transfer is reserved as unique — send it to the cent, otherwise the payment has to be found manually.
60 requests per minute per key; the catalog and categories are additionally limited to 120 requests per minute per address. Exceeding it returns 429 with the waiting time in the error text — retry with a delay.
Pass webhook_url in POST /orders — a POST with JSON is sent to it when the order reaches a final state: completed, partial, failed, expired, cancelled or refunded.
POST https://nordi.site/api/v1/orders
{"product_id": 732110, "quantity": 10, "payment_method": "balance",
"webhook_url": "https://your.site/nordi-hook"}Body: order_id, status, price_usdt, quantity, product_id, items (the delivery), 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}401the key is missing or revoked403the signature is wrong or expired404no item or order with this number409not enough funds on the key balance422parameters failed validation429rate limit exceeded — retry with a delayA ready collection with every method: put the base URL and the key into environment variables.
The key is issued by the shop client bot — @nordiinsta_bot. The secret is shown once and cannot be recovered.