公开 API

以编程方式访问目录与订单。密钥由客户端机器人签发;所有请求均走 HTTPS。

快速开始

  1. 在 @nordiinsta_bot 领取密钥,同时会发放用于签名的 secret。
  2. 验证密钥:GET /health 应返回 {"status":"ok"}。
  3. 查找商品:GET /products?min_qty=10&max_price=1——需要响应中的 sku 与 min_quantity。
  4. 为密钥充值:POST /balance/topup,然后把确切金额转到返回的地址。
  5. 下单:POST /orders,payment_method 用 "balance",需要时附上 webhook_url。随后轮询 GET /orders/{id},直到状态变为 completed。

基础地址

https://nordi.site/api/v1

没有单独的 api 子域名:任何 api.* 地址都不是我们的,切勿把密钥发往那里。

鉴权

每个请求都需携带密钥请求头:

X-Api-Key: <ваш ключ>

启用签名的密钥还需要时间戳与请求体签名:

X-Timestamp: <unix epoch, секунды>
X-Signature: hmac_sha256(secret, f"{ts}\n{body}").hex()
  • 与服务器的时间偏差不得超过 300 秒。
  • 签名字符串为「时间戳、换行、请求体」;GET 请求体为空。
  • 重复使用同一签名会被拒绝——防重放保护。
  • POST /orders 与 POST /balance/topup 必须签名:没有 secret 的密钥无法调用,返回 401。读取(GET)无需签名。

接口

GET/health可用性检查
GET/products商品目录(支持筛选与分页)
GET/products/{id}按公开编号 (sku) 查询商品
GET/instant仅即时发货商品
GET/categories分类及数量
GET/balance密钥余额
POST/balance/topup为密钥充值
POST/orders创建订单
GET/orders该密钥的订单列表
GET/orders/{id}按编号查询订单
GET/usage密钥限额用量
GET/health

可用性检查

curl -s "https://nordi.site/api/v1/health" -H "X-Api-Key: $KEY"

响应

{"status": "ok", "timestamp": 1786000000}
GET/products

商品目录(支持筛选与分页)

参数

category分类 slug,见 /categories
sku商品的确切公开编号
min_price单价(USDT)下限
max_price单价(USDT)上限
min_qty库存不少于该值,默认 1
page页码,从 1 开始
page_size每页数量,1…200,默认 50
curl -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}
]}
GET/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}
GET/instant

仅即时发货商品

参数

category分类 slug,见 /categories
min_price单价(USDT)下限
max_price单价(USDT)上限
page页码,从 1 开始
page_size每页数量,1…200,默认 50
curl -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}
]}
GET/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}]
GET/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"}
POST/balance/topupHMAC

为密钥充值

参数

amount_usdt充值金额(USDT),1…100000
network下列转账网络之一
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}
POST/ordersHMAC

创建订单

参数

product_id商品公开编号(sku)
quantity数量,1…10000,且不低于 min_quantity
payment_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}
GET/orders

该密钥的订单列表

参数

statusprocessing、completed、failed、expired、cancelled、refunded
page页码,从 1 开始
page_size每页数量,1…200,默认 50
curl -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}
]}
GET/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}
GET/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已全部发货,账号在 items 中
failed未能配货;不会自动退款——请联系客服,我们会人工退款
expired未在期限内付款,订单已关闭
cancelled已取消;不会自动退款——如已扣款,请联系客服,我们会人工退款
refunded退款已完成

充值网络

usdt_trc_20、usdt_bep_20、usdt_polygon、usdt_arbitrum、usdt_ton、usdt_solana。转账金额会被保留为唯一值——请精确到分转账,否则需要人工查找该笔付款。

限流

每个密钥每分钟 60 次请求;目录与分类另有每个 IP 每分钟 120 次的限制。超出会返回 429,错误文本中含等待时间——请延迟后重试。

回调(Webhooks)

在 POST /orders 中传入 webhook_url:当订单进入终态(completed、partial、failed、expired、cancelled 或 refunded)时,我们会向该地址发送带 JSON 的 POST。

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}
  • 若该密钥启用了签名,请求会带上 X-Webhook-Timestamp、X-Webhook-Signature(hmac_sha256(secret, "时间戳 \n 请求体"))以及 X-Webhook-Algorithm: HMAC-SHA256。
  • 重试:遇 5xx 与超时最多重试 5 次,间隔递增;成功投递会被记录且不再重复。地址必须是公网地址,本地与内网主机会被拒绝。
  • 任何渠道都没有自动退款,包括 API 订单:失败订单(failed、expired、cancelled)如已扣款,款项不会自动退回余额——refunded 字段保持为 false。请带上订单号联系客服——我们核实后会人工退款。终态回调照常发送。

响应码

401未提供密钥或密钥已吊销
403签名错误或已过期
404不存在该商品或订单
409密钥余额不足
422参数校验未通过
429超出请求限额——请延迟后重试

Postman 集合

包含全部方法的现成集合:把基础地址和密钥填入环境变量即可。

下载 · postman.json

如何获取密钥

密钥由商店客户端机器人 @nordiinsta_bot 签发。密钥仅显示一次,无法找回。