အသိပညာအခြေခံ ထုတ်လုပ်သူများ
နေအိမ် > Top-ups & Keys
သငျသညျရှိသမျှကိုစစ်ဆေးပါ, Lightning အပေါ်အပေါ်အပေါ်အပေါ်အပေါ်အပေါ်အပေါ်အပေါ်အလိုအလျောက်သင့်ရဲ့အိတ်ကွန်ပျူတာကနေအပေါ်အပေါ်အပေါ်အပေါ်အပေါ်အပေါ်အပေါ်အပေါ်, တစ်ဦးချင်းစီလိုအပ်ချက်၏စျေးနှုန်းကိုကြည့်ပါ, နှင့် code ကိုမှ key ကိုစီမံခန့်ခွဲမှု။
ဤစာမျက်နှာသည် အဆင်ပြေစေရန် စက်ဖြင့်ဘာသာပြန်ထားပါသည်။ အင်္ဂလိပ်မူရင်းသည် အကျုံးဝင်သော ဗားရှင်းဖြစ်သည်။
Balance ကိုစမ်းသပ်ခြင်း
သင့်ရဲ့ Balances နှင့်ဤ Key ကို၏ Cap ကိုအသုံးပြုသည့်အများအပြား.
GET https://nymbot.ai/api/v1/credits/balance အဆိုပါ API ကို Key ကိုလိုအပ်ပါတယ်. POST ထိုကဲ့သို့သော client များအတွက်အလုပ်လုပ်ပါတယ်.
balance အဆိုပါ Bitcoin စျေးနှုန်းအပေါ်အတူဒေါ်လာအပေါ်အတူနှစ်ဦးစလုံးအခြေအနေများဖြစ်ပါသည်, အဆိုပါ tool များအတွက်တစ်ခုတည်းအရေအတွက်ကြည့်ရှုဖို့ (null စျေးနှုန်းကိုကြည့်ရှုနိုင်မဟုတ်လျှင်). အခြားအစိတ်အပိုင်းများအကြံပြုချက်များနှင့်စျေးနှုန်းများတွင်ဖြစ်ကြသည်, ဒါကြောင့်အပြောင်းအလဲများကိုမှန်ကန့်သတ်မှတ်ထားသည်။ key တစ်ဦးကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်း။
ပြန်ကြားချက်
{
"balance": 49.18,
"balance_sats": 42037,
"standard": { "credits": 120.4, "sats": 1204 },
"pro": { "credits": 408.33, "sats": 40833 },
"key": {
"id": "4f0c9a1be27d3856",
"name": "laptop scripts",
"limit_sats": 20000,
"period_used_sats": 3412,
"total_used_sats": 18230,
"reset_period": "monthly",
"reset_at": "2026-10-01T00:00:00Z"
}
}
| အမျိုးအစား | အချိန် |
|---|---|
401 | မူပိုင်ခွင့်မရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမဖြစ်မရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမရှိမ |
cURL
curl https://nymbot.ai/api/v1/credits/balance \
-H "Authorization: Bearer $NYMBOT_API_KEY"
Python
import os
import requests
res = requests.get(
"https://nymbot.ai/api/v1/credits/balance",
headers={"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]},
)
balance = res.json()
print(balance["standard"]["sats"], balance["pro"]["sats"])
JavaScript
const res = await fetch("https://nymbot.ai/api/v1/credits/balance", {
headers: { "Authorization": "Bearer " + process.env.NYMBOT_API_KEY },
});
const balance = await res.json();
console.log(balance.standard.sats, balance.pro.sats);
ငွေပေးချေမှု Methods
သငျသညျအဆင့်မြင့်ဖို့ဘယ်လို, နှင့်အကွာအဝေးကို. Lightning အနည်းဆုံးနည်းလမ်းဖြစ်ပါတယ်။
GET https://nymbot.ai/api/v1/topup/payment-methods အဆိုပါ Key ကိုမလိုအပ်ပါဘူး.
တစ်ဦး top-up ကို 10 သို့မဟုတ် 1,000,000 sats ဖြစ်ပါသည်; တစ်ဦး Pro-top-up ကိုအနည်းဆုံးတစ်ဦး Pro-အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အ bulk_bonus အဆိုပါ app မှာအတူတူအကြီးမားသော top-ups အပေါ်အပိုဆုအခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခ
ပြန်ကြားချက်
{
"supported_methods": [
{
"method": "btc-lightning",
"display_name": "Bitcoin Lightning",
"supported_currencies": ["SATS", "USD", "BTC"],
"limits": {
"SATS": { "min": 10, "max": 1000000 },
"USD": { "min": 0.02, "max": 1170 },
"BTC": { "min": 1e-7, "max": 0.01 }
},
"tiers": ["standard", "pro"],
"default_tier": "pro",
"tier_min_sats": { "standard": 10, "pro": 100 },
"sats_per_credit": { "standard": 10, "pro": 100 },
"bulk_bonus": [
{ "bonus": 0.1, "standard_sats": 500, "pro_sats": 5000 },
{ "bonus": 0.15, "standard_sats": 1000, "pro_sats": 10000 },
{ "bonus": 0.2, "standard_sats": 5000, "pro_sats": 50000 }
]
}
]
}
cURL
curl https://nymbot.ai/api/v1/topup/payment-methods
Python
import requests
methods = requests.get("https://nymbot.ai/api/v1/topup/payment-methods").json()
print(methods["supported_methods"][0]["limits"])
JavaScript
const methods = await (await fetch("https://nymbot.ai/api/v1/topup/payment-methods")).json();
console.log(methods.supported_methods[0].limits);
အဆိုပါ Lightning အပေါ် Topping Up
ဒါကြောင့်သင်တို့အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျ ဒါကြောင့် Check အဆိုပါ Credit ကို Add လုပ်ပါ။
POST https://nymbot.ai/api/v1/topup/create/btc-lightning အဆိုပါ API ကို Key ကိုလိုအပ်ပါတယ်.
| နေအိမ် | အမျိုးအစား | အလိုအလျောက် | နေအိမ် |
|---|---|---|---|
amount | နေအိမ် | ဟုတ်ကဲ့ | အဘယ်သူမျှမ, in currencyအဆိုပါ SATA အတွက်တစ်ဦးကအပြည့်အဝအရေအတွက်။ |
currency | နေအိမ် string | မဟုတ် | SATS အဆိုပါ default ကို, USD အဆိုပါ BTCသငျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျ? |
tier | နေအိမ် string | မဟုတ် | pro (အဆိုပါ default ကို) သို့မဟုတ် standardအဆိုပါအခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွ |
တစ်ဦးက Standard Credit ကို 10 Sats နှင့် Pro Credit ကို 100 Sats ဖြစ်ပါသည်, ထိုအပိုဆုအပိုဆုအပိုဆုအပါအဝင်;
credits ဒီအချက်အလက်ကို add လုပ်ပါလိမ့်မယ်။
ပြန်ကြားချက်
{
"invoice_id": "b7d41e0c95a2f38e6c1d0e9a4b7f2c61d3e8a05f9b2c4d7e1a6f3b8c0d5e2a9f4",
"payment_request": "lnbc100u1p5...",
"amount_sats": 10000,
"credits": 115,
"tier": "pro",
"expires_at": "2026-09-30T09:27:00Z",
"status": "pending"
}
| အမျိုးအစား | အချိန် |
|---|---|
400 | အခြားနည်းလမ်းများအတွက် (unsupported_method(အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်အရာကို)unsupported_currencyသို့မဟုတ်အနိမ့်ဆုံးသို့မဟုတ်အနိမ့်ဆုံး (amount_too_smallအဆိုပါသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအamount_too_large) သို့မဟုတ် Lightning Wallet ကိုဖြည့်သွင်း (amount_out_of_range). |
429 | အဆိုပါနေအိမ်အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ်rate_limit_exceededအတူ Retry-After). |
502 | အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘို့ (invoice_unavailableအတူ Retry-After). |
cURL
curl https://nymbot.ai/api/v1/topup/create/btc-lightning \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount": 10000, "currency": "SATS", "tier": "pro"}'
Python
import os
import requests
res = requests.post(
"https://nymbot.ai/api/v1/topup/create/btc-lightning",
headers={"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]},
json={"amount": 10000, "currency": "SATS", "tier": "pro"},
)
invoice = res.json()
print(invoice["payment_request"])
JavaScript
const res = await fetch("https://nymbot.ai/api/v1/topup/create/btc-lightning", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.NYMBOT_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ amount: 10000, currency: "SATS", tier: "pro" }),
});
const invoice = await res.json();
console.log(invoice.payment_request);
နေအိမ် > Top-up
အဆိုပါသတင်းအချက်အလက်ကိုငွေပေးချေခဲ့သည်မဟုတ်မဟုတ်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ်ပါသည်မဟုတ်မေးခွန်းကိုဆက်သွယ် creditedပြီးနောက်ပြန်လည်ဆန်းစစ်ခြင်းအဘယ်သူမျှမအဘယ်သူမျှမကြာခဏ: သငျသညျမကြာခဏအများအပြားအကြံပြုချက်များအဘယ်သူမျှမအတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျသညျတှငျ
GET https://nymbot.ai/api/v1/topup/status/{invoice_id} - အဆိုပါစာရင်းကိုဖန်တီးသူ၏ nym ၏ key ကိုလိုအပ်ပါသည်။
status နေအိမ် pending (အဘယ်သူမျှမသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကို) paid (အဘယ်သူမျှမသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကို) credited (သင်၏ Balance အပေါ်) သို့မဟုတ် expired အဆိုပါကွောငျးကွောငျးကွောငျးကွောငျးကွောငျးကွောငျးကွောငျးကွောငျးကွောငျးကွောငျးကွောငျးကွောငျး
ပြန်ကြားချက်
{
"invoice_id": "b7d41e0c95a2f38e6c1d0e9a4b7f2c61d3e8a05f9b2c4d7e1a6f3b8c0d5e2a9f4",
"status": "credited",
"amount_sats": 10000,
"credits": 115,
"tier": "pro",
"expires_at": null,
"balance_credits": 523.33,
"balance_sats": 52333
}
| အမျိုးအစား | အချိန် |
|---|---|
400 | အဆိုပါ ID ကို Create Call ၏ 64-အမှတ်တံဆိပ် ID ကိုမဟုတ်ပါဘူး။ |
404 | ဒါကြောင့်သင်၏ NIMM (invoice_not_found). |
cURL
curl https://nymbot.ai/api/v1/topup/status/$INVOICE_ID \
-H "Authorization: Bearer $NYMBOT_API_KEY"
Python
import os, time
import requests
headers = {"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]}
url = "https://nymbot.ai/api/v1/topup/status/" + invoice["invoice_id"]
while True:
status = requests.get(url, headers=headers).json()["status"]
if status in ("credited", "expired"):
break
time.sleep(3)
print(status)
JavaScript
const headers = { "Authorization": "Bearer " + process.env.NYMBOT_API_KEY };
const url = "https://nymbot.ai/api/v1/topup/status/" + invoice.invoice_id;
let status;
do {
await new Promise((r) => setTimeout(r, 3000));
status = (await (await fetch(url, { headers })).json()).status;
} while (status !== "credited" && status !== "expired");
console.log(status);
နေအိမ် > History
တစ်ဦးတည်းလိုင်းတစ်ခုချင်းစီလိုအပ်ချက်: ဒါဟာမဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်မဟုတ်။
GET https://nymbot.ai/api/v1/queries/history - အဆိုပါ API ကို key ကိုလိုအပ်ပါတယ်, သင့်ရဲ့လိုအပ်ချက်များကိုကြည့်ရှုပါတယ်, သို့မဟုတ် အကြံပြုချက် သငျသညျအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။
| နေအိမ် | အမျိုးအစား | အလိုအလျောက် | နေအိမ် |
|---|---|---|---|
page | အင်္ဂါရပ် (Query) | မဟုတ် | မူပိုင်ခွင့် 1, မူပိုင်ခွင့် 1000; မြင့်မားတဲ့စာမျက်နှာ 400 invalid_value. |
page_count | အင်္ဂါရပ် (Query) | မဟုတ် | မူပိုင်ခွင့်ရရှိနိုင်ပါတယ်, အဆိုပါ default ကို 20 အပေါ်, အများဆုံး 100. |
start_dateend_date | နေအိမ် (Query) | မဟုတ် | အဆိုပါ ISO 8601 အချိန်များသို့မဟုတ်အချိန်များ |
model | နေအိမ် (Query) | မဟုတ် | ဒီမော်ဒယ်ကို |
type | နေအိမ် (Query) | မဟုတ် | chat, responses, messages, image, video, speech, transcription အဆိုပါ embedding. |
all_keys | အဆိုပါ Boolean (Query) | မဟုတ် | တစ်ဦးက Key ကို: true တစ်ခုတည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်း။ Default false. |
key_id | နေအိမ် (Query) | မဟုတ် | သို့မဟုတ်မှတ်ထားသောအချက်အလက်များနှင့်အတူ all_keys=trueအဆိုပါ Key ကို |
ပြန်ကြားချက်
{
"data": [
{
"id": "q_71c4e9a0",
"timestamp": "2026-09-30T08:12:00Z",
"model": "anthropic/claude-sonnet-5",
"type": "chat",
"input_tokens": 1240,
"output_tokens": 380,
"cached_tokens": 0,
"cost_sats": 16.2,
"cost_usd": 0.01895,
"balance": "pro",
"key_id": "4f0c9a1be27d3856",
"web_search": false,
"status": "ok"
}
],
"pagination": { "page": 1, "page_count": 20, "total": 311, "total_pages": 16 }
}
cURL
curl "https://nymbot.ai/api/v1/queries/history?page_count=50&type=chat" \
-H "Authorization: Bearer $NYMBOT_API_KEY"
Python
import os
import requests
res = requests.get(
"https://nymbot.ai/api/v1/queries/history",
headers={"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]},
params={"page_count": 50, "type": "chat"},
)
for row in res.json()["data"]:
print(row["timestamp"], row["model"], row["cost_sats"])
JavaScript
const res = await fetch("https://nymbot.ai/api/v1/queries/history?page_count=50&type=chat", {
headers: { "Authorization": "Bearer " + process.env.NYMBOT_API_KEY },
});
for (const row of (await res.json()).data) console.log(row.timestamp, row.model, row.cost_sats);
လက်မှတ်တံဆိပ်စာအကြံပြုချက်များ
အဆိုပါအကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေးကွက်အကွာအဝေး
အဆိုပါ app ကိုသင်တို့အဘို့ဤလုပ်ပါတယ်: အားလုံးကို၎င်း၏ အိမ် သငျသညျအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။
အဆိုပါအမှတ်တံဆိပ်အမျိုးအစား 27235 (NIP-98) အမျိုးအစား၏ Nostr လက်မှတ်ဖြစ်ပါသည်, အတွက် base64-coded လုပ်ထားသည်
Authorization အဆိုပါ Header အဆိုပါ Word ကို Nostr အဆိုပါ Front ကို:
အဆိုပါ event ကို
{
"kind": 27235,
"created_at": 1790726400,
"tags": [
["u", "https://nymbot.ai/api/v1/keys"],
["method", "POST"],
["nonce", "9c4e21f07a3b...16 random bytes in hex"],
["payload", "3f1a0d7c8e2b...sha256 of the exact request body in hex"]
],
"content": "",
"pubkey": "your public key in hex",
"id": "...",
"sig": "..."
}
uအဆိုပါအကြံပြုချက်၏အပြည့်အဝ URL ဖြစ်ပါသည်, အဆိုပါရှာဖွေရေး string ကိုပါဝင်သည်, တစ်ခုတည်းကပေးထားသောဖြစ်ပါတယ်။methodအဆိုပါ HTTP ကိုနည်းလမ်းpayloadအဆိုပါ SHA-256 အဆိုပါကုန်ပစ္စည်းလိုအပ်ချက်အဖွဲ့၏, hex အတွက်ဖြစ်ပါတယ်။ ဒါဟာPOSTနှင့်PATCHသငျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျသညျcreated_atအဆိုပါ server ကိုအချိန်အတွင်း 60 မိနစ်အတွင်းဖြစ်သင့်ပါတယ်။- တစ်ဦးချင်းစီကိုအလုပ်လုပ်ပါတယ်, a
GETဒါကြောင့်သင်တို့အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။nonceအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။ - အဆိုပါ Signed Request ကိုအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိကအဓိက
Content-Type: application/json.
အဆိုပါ Missing Event ပြန်ကြားချက် 401 missing_nostr_authအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘ
invalid_nostr_authဒါကြောင့် တစ်ခုတည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်းနည်း။
nostr_auth_replayedတစ်ဦးက API ကို key ကိုဤ endpoints များအတွက်ပေးခဲ့သည့်ကို reject လုပ်ပါလိမ့်မယ်။ အဆိုပါအမှတ်တံဆိပ်ကိုခေါင်းစဉ်ပါလိမ့်မယ်, အဆိုပါ corpus ကိုခေါင်းစဉ်ပါလိမ့်မယ်, နှင့် တစ်ဦးချင်းစီကို address ကိုတစ်ရက်အတွင်း 30 ရက်အတွင်း (တစ်ဦး IPv6 address ကို၎င်း၏အပြည့်အဝ /64) အဖြစ်အကွာအဝေးပါလိမ့်မယ်။ 429 အတူ
Retry-After.
အဆိုပါ browser ကို Nymbot ၏အသုံးပြုသူများ၏ site များမှသာဤ endpoints များကို Call လုပ်နိုင်ပါသည် (https://nymbot.ai,
https://nymchat.app အဆိုပါ site ကိုအပေါ်တစ်ဦးစာမျက်နှာတစ်ခု CORS အဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါအဆိုပါ အဆိုပါအဆိုပါ အဆိုပါအဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ အဆိုပါ
Originအဘယ်သူမျှမသက်ဆိုင်ရာဖြစ်ပါသည်.
သငျသညျအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။ nsecသင့်ရဲ့ identity ကို, သင့်ရဲ့ history ကို, သင့်ရဲ့ balance ကို, သင့်ရဲ့အဘို့အားလုံးကိုထိန်းချုပ်ပါတယ်, ဒါဟာသင်တို့ကိုခိုင်မာသောစက်ပေါ်တွင် script အတွက်ထားပါတယ်, သင်သည်သင်၏ file အတွက်စာရင်းခြင်းမဟုတ်ပေမယ့်ပတ်ဝန်းကျင်ကလစ်နှိပ်ပါတယ်, နှင့်သင်နိုင်သည့်အခါ app ကိုအကြံပြု.
ဒါကြောင့်သင်တို့အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘ NOSTR_SECRET_HEXအဆိုပါ cURL တစ်ခုကိုအသုံးပြုသည်
နေအိမ် နေအိမ် » နေအိမ် » နေအိမ် » နေအိမ် » နေအိမ် » နေအိမ် » နေအိမ် » နေအိမ် sha256sum အဆိုပါ macOS အတွက်, shasum -a 256).
cURL
nostr_auth() {
method="$1"; url="$2"; body="$3"
nonce=$(openssl rand -hex 16)
if [ -n "$body" ]; then
hash=$(printf '%s' "$body" | sha256sum | cut -d' ' -f1)
event=$(nak event --sec "$NOSTR_SECRET_HEX" -k 27235 -t "u=$url" -t "method=$method" -t "nonce=$nonce" -t "payload=$hash")
else
event=$(nak event --sec "$NOSTR_SECRET_HEX" -k 27235 -t "u=$url" -t "method=$method" -t "nonce=$nonce")
fi
printf 'Nostr %s' "$(printf '%s' "$event" | base64 | tr -d '\n')"
}
Python
# pip install coincurve requests
import base64, hashlib, json, os, time
from coincurve import PrivateKey, PublicKeyXOnly
SECRET = bytes.fromhex(os.environ["NOSTR_SECRET_HEX"])
def nostr_auth(method, url, body=b""):
pubkey = PublicKeyXOnly.from_secret(SECRET).format().hex()
tags = [["u", url], ["method", method], ["nonce", os.urandom(16).hex()]]
if body:
tags.append(["payload", hashlib.sha256(body).hexdigest()])
created_at = int(time.time())
serialized = json.dumps([0, pubkey, created_at, 27235, tags, ""], separators=(",", ":"), ensure_ascii=False)
event_id = hashlib.sha256(serialized.encode()).digest()
event = {
"id": event_id.hex(),
"pubkey": pubkey,
"created_at": created_at,
"kind": 27235,
"tags": tags,
"content": "",
"sig": PrivateKey(SECRET).sign_schnorr(event_id).hex(),
}
return "Nostr " + base64.b64encode(json.dumps(event).encode()).decode()
JavaScript
// npm install nostr-tools
import { createHash, randomBytes } from "node:crypto";
import { finalizeEvent } from "nostr-tools/pure";
const secret = Buffer.from(process.env.NOSTR_SECRET_HEX, "hex");
export function nostrAuth(method, url, body = "") {
const tags = [["u", url], ["method", method], ["nonce", randomBytes(16).toString("hex")]];
if (body) tags.push(["payload", createHash("sha256").update(body).digest("hex")]);
const event = finalizeEvent(
{ kind: 27235, created_at: Math.floor(Date.now() / 1000), tags, content: "" },
secret,
);
return "Nostr " + Buffer.from(JSON.stringify(event)).toString("base64");
}
အဆိုပါ Account ကိုအကြံပြုချက်
အဆိုပါ app ၏ API ကိုစာမျက်နှာအပေါ်သင်၏ပရိုဘိုင်း key ကို, နှစ်ဦးစလုံး Balances, တစ်ခုတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတည်းတ အလိုအလျောက် Top-Up အဆိုပါ settings, သို့မဟုတ်
null အဆိုပါ server ကိုသင်တို့ကိုပြန်လည်ဆန်းစစ်ခြင်းမရှိဘဲ.
GET https://nymbot.ai/api/v1/account အလိုအလျှင် A အကြံပြုချက်.
ပြန်ကြားချက်
{
"data": {
"pubkey": "3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d",
"balances": {
"standard": { "credits": 120.4, "sats": 1204 },
"pro": { "credits": 408.33, "sats": 40833 }
},
"keys_active": 3,
"nwc_auto_topup": {
"connected": true, "threshold_sats": 5000, "topup_sats": 20000, "tier": "pro",
"last_topup_at": null, "last_topup_sats": null, "last_error": null
}
}
}
cURL
URL=https://nymbot.ai/api/v1/account
curl "$URL" -H "Authorization: $(nostr_auth GET "$URL")"
Python
import requests
url = "https://nymbot.ai/api/v1/account"
print(requests.get(url, headers={"Authorization": nostr_auth("GET", url)}).json())
JavaScript
const url = "https://nymbot.ai/api/v1/account";
const res = await fetch(url, { headers: { "Authorization": nostrAuth("GET", url) } });
console.log(await res.json());
Key ကိုစီမံကိန်း
အဆိုပါ app ၏ key ကိုစာရင်း၏အခြေခံ endpoints များ. All of them need a အကြံပြုချက်တစ်ဦးချင်းစီ Key ကိုအဖြစ်အောက်ပါအပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်အပြင်:
Key ကိုပစ္စည်း
{
"id": "4f0c9a1be27d3856",
"name": "laptop scripts",
"hint": "sk-nymbot-Qm7x…c2Lw",
"limit_sats": 20000,
"reset_period": "monthly",
"reset_at": "2026-10-01T00:00:00Z",
"expire_at": null,
"period_used_sats": 3412,
"total_used_sats": 18230,
"created_at": "2026-08-14T09:21:07Z",
"updated_at": "2026-09-02T17:40:55Z",
"last_used_at": "2026-09-30T08:12:00Z",
"revoked_at": null
}
hint သငျသညျသညျအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ
နေအိမ် Key
GET https://nymbot.ai/api/v1/keys အဆိုပါ Sign.
| နေအိမ် | အမျိုးအစား | အလိုအလျောက် | နေအိမ် |
|---|---|---|---|
include_revoked | အဆိုပါ Boolean (Query) | မဟုတ် | နေအိမ် နေအိမ် နေအိမ် နေအိမ် false. |
ပြန်ကြားချက်
{ "data": [ { "id": "4f0c9a1be27d3856", "name": "laptop scripts", "hint": "sk-nymbot-Qm7x…c2Lw", "...": "..." } ] }
cURL
URL=https://nymbot.ai/api/v1/keys
curl "$URL" -H "Authorization: $(nostr_auth GET "$URL")"
Python
import requests
url = "https://nymbot.ai/api/v1/keys"
for key in requests.get(url, headers={"Authorization": nostr_auth("GET", url)}).json()["data"]:
print(key["id"], key["name"], key["period_used_sats"], key["limit_sats"])
JavaScript
const url = "https://nymbot.ai/api/v1/keys";
const { data } = await (await fetch(url, { headers: { "Authorization": nostrAuth("GET", url) } })).json();
for (const key of data) console.log(key.id, key.name, key.period_used_sats, key.limit_sats);
တစ်ဦးက Key ကို
POST https://nymbot.ai/api/v1/keys နေအိမ် - Returns 201.
| နေအိမ် | အမျိုးအစား | အလိုအလျောက် | နေအိမ် |
|---|---|---|---|
name | နေအိမ် string | ဟုတ်ကဲ့ | 1 သို့မဟုတ် 40 အမှတ်တံဆိပ်များ, သင့်ရဲ့အခြား activated keys များကွဲပြားခြားနားသော (အမှတ်တံဆိပ်ကို ignoring) |
limit_sats | အင်ဂျင် | မဟုတ် | အဆိုပါသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအ |
reset_period | နေအိမ် string | မဟုတ် | daily, weekly အဆိုပါ monthlyအလိုအလျောက် limit_satsဒါကြောင့်သင်တို့အဘယ်သူမျှမသင်တို့အဘယ်သူမျှမသင်တို့အဘယ်သူမျှမသင်တို့အဘယ်သူမျှမသင်တို့အဘယ်သူမျှမသင်တို့အဘယ်သူမျှမသင်တို့အဘယ်သူမျှမသင်တို့အဘယ်သူမျှမသင်တို့အဘယ်သူမျှမ။ |
expire_at | String သို့မဟုတ် Integer | မဟုတ် | အဆိုပါ key ကိုအလုပ်လုပ်မက်သည့်အခါ: အဆိုပါ ISO 8601 အချိန်, သို့မဟုတ် 1970 ကတည်းက milliseconds ။ |
ပြန်ကြားချက် (201)
{
"data": {
"id": "4f0c9a1be27d3856",
"name": "laptop scripts",
"hint": "sk-nymbot-Qm7x…c2Lw",
"limit_sats": 20000,
"reset_period": "monthly",
"key": "sk-nymbot-Qm7x...c2Lw",
"...": "the rest of the key object"
}
}
| အမျိုးအစား | အချိန် |
|---|---|
400 | အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ (duplicate_name); တစ်ဦးကတည်းကအနည်းဆုံး 1 ဖြစ်ပါသည်မဟုတ်တည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းက (unknown_parameter); သို့မဟုတ် 25 အလုပ်လုပ်သော key ကိုကြာခဏ (too_many_keys). |
429 | အဆိုပါနေအိမ်အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ် အိမ်rate_limit_exceededအတူ Retry-After). |
cURL
URL=https://nymbot.ai/api/v1/keys
BODY='{"name":"laptop scripts","limit_sats":20000,"reset_period":"monthly"}'
curl "$URL" \
-H "Authorization: $(nostr_auth POST "$URL" "$BODY")" \
-H "Content-Type: application/json" \
-d "$BODY"
Python
import json
import requests
url = "https://nymbot.ai/api/v1/keys"
body = json.dumps({"name": "laptop scripts", "limit_sats": 20000, "reset_period": "monthly"}).encode()
res = requests.post(
url,
data=body,
headers={"Authorization": nostr_auth("POST", url, body), "Content-Type": "application/json"},
)
print(res.json()["data"]["key"])
JavaScript
const url = "https://nymbot.ai/api/v1/keys";
const body = JSON.stringify({ name: "laptop scripts", limit_sats: 20000, reset_period: "monthly" });
const res = await fetch(url, {
method: "POST",
headers: { "Authorization": nostrAuth("POST", url, body), "Content-Type": "application/json" },
body,
});
console.log((await res.json()).data.key);
တဦးတည်း Key ကို
GET https://nymbot.ai/api/v1/keys/{id} အဆိုပါ Sign.
နေအိမ် {"data": {…}} အဆိုပါ Key ကို Object ကို, သို့မဟုတ် 404
key_not_found သငျသညျအဘယ်သူမျှမက ID ကိုရှိပါတယ်ဆိုရင်
cURL
URL=https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856
curl "$URL" -H "Authorization: $(nostr_auth GET "$URL")"
Python
import requests
url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856"
print(requests.get(url, headers={"Authorization": nostr_auth("GET", url)}).json()["data"])
JavaScript
const url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856";
console.log((await (await fetch(url, { headers: { "Authorization": nostrAuth("GET", url) } })).json()).data);
တစ်ဦးက Key ကိုပြောင်းလဲခြင်း
PATCH https://nymbot.ai/api/v1/keys/{id} အဆိုပါ Sign.
တစ်ဦးချင်းစီကို name, limit_sats, reset_period နှင့်
expire_atတစ်ဦးက key ကိုဖန်တီးရန်အဖြစ်အတူတူတူညီသောစည်းမျဉ်းများနှင့်အတူ. null မူပိုင်ခွင့်ရရှိနိုင်ပါတယ်, ဒါကြောင့်သင်တို့အဘယ်သူမျှမအခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွ400 key_revokedအဆိုပါ Returns
{"data": {…}} မူပိုင်ခွင့်ကို Updated Key Object ကို
cURL
URL=https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856
BODY='{"limit_sats":50000,"expire_at":null}'
curl -X PATCH "$URL" \
-H "Authorization: $(nostr_auth PATCH "$URL" "$BODY")" \
-H "Content-Type: application/json" \
-d "$BODY"
Python
import json
import requests
url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856"
body = json.dumps({"limit_sats": 50000, "expire_at": None}).encode()
res = requests.patch(
url,
data=body,
headers={"Authorization": nostr_auth("PATCH", url, body), "Content-Type": "application/json"},
)
print(res.json()["data"])
JavaScript
const url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856";
const body = JSON.stringify({ limit_sats: 50000, expire_at: null });
const res = await fetch(url, {
method: "PATCH",
headers: { "Authorization": nostrAuth("PATCH", url, body), "Content-Type": "application/json" },
body,
});
console.log((await res.json()).data);
တစ်ဦး Key ကို Revoking
DELETE https://nymbot.ai/api/v1/keys/{id} အဆိုပါ Sign.
အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ revoked_at ထိုကဲ့သို့သော, နှင့်အတူကြည့်နိုင်ပါသည် include_revoked=trueမူပိုင်ခွင့်ပြုချက်များကိုဖန်တီးရန်လိုအပ်ပါတယ်, ဒါကြောင့်သင်တို့အဘယ်သူမျှမသတင်းအချက်အလက်များကိုဖန်တီးရန်လိုအပ်ပါတယ်.
ပြန်ကြားချက်
{ "data": { "id": "4f0c9a1be27d3856", "revoked": true } }
cURL
URL=https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856
curl -X DELETE "$URL" -H "Authorization: $(nostr_auth DELETE "$URL")"
Python
import requests
url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856"
print(requests.delete(url, headers={"Authorization": nostr_auth("DELETE", url)}).json())
JavaScript
const url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856";
const res = await fetch(url, { method: "DELETE", headers: { "Authorization": nostrAuth("DELETE", url) } });
console.log(await res.json());
နေအိမ် NWC Auto-Top-Up
တစ်ဦးက Lightning Wallet ကို Nostr Wallet Connect နှင့် Nymbot နှင့်အတူဆက်သွယ်ပါနှင့် API စွမ်းဆောင်ရည်အနိမ့်အခါကိုယ်ပိုင်ခွင့်ကိုထိန်းသိမ်းဆည်းထားသည်။ အဆိုပါ app ၏ API ကိုစာရင်းကိုအတူတူအခြေခံချက်များရှိပါတယ်; ဒါကြောင့်ဤအခြေခံချက်များဖြစ်ပါတယ်။ သူတို့အားလုံးတစ်ဦးက အကြံပြုချက်.
အဆိုပါ API ကိုလိုအပ်ချက်ကိုသင်တို့ကိုကြည့်ရှုဖို့ရွေးချယ်ခဲ့သည့်အခြေခံအပေါ်အကွာအဝေးလျှင်, အဆိုပါအခြေခံသင့်ရဲ့ထိပ်တန်းအောက်ဆုံးရရှိခဲ့လျှင်, Nymbot သင့်ရဲ့ထိပ်တန်းငွေပေးချေမှုအဘို့အစာရင်းလုပ်ပါတယ်, သင့်ရဲ့အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ့်အိမ် နေအိမ် Top-Up Status ဒါကြောင့် Credit
အဆိုပါ Nymbot သငျသညျငွေပေးချေမှုစျေးကွက်ကိုပေးဖို့ခွင့်ပြုပါတယ်. Nymbot သငျသညျငွေပေးချေမှုစျေးကွက်ကိုငွေပေးချေမှုစျေးကွက်ကိုစျေးကွက်ကိုစောင့်ကြည့်ရှုဖို့အသုံးပြုပါတယ်, ဒါပေမယ့်အဘို့တစ်ဦးကဆက်သွယ်ရေးဆက်သွယ်ပါ, ဒါကြောင့်ငွေပေးချေမှုစျေးကွက်ထဲမှာ, ဒါကြောင့်ငွေပေးချေမှုစျေးကွက်၏အများဆုံးတစ်ဦးကသင်၏ရွေးချေမှုဖြစ်ပါတယ်။ အဆိုပါငွေပေးချေမှုစျေးကွက်ကိုထောက်ပံ့ပေးရန်ရှိပါတယ် pay_invoice.
တစ်ဦးက Wallet ကို Connect
POST https://nymbot.ai/api/v1/nwc-auto-topup/connect အဆိုပါ Sign.
| နေအိမ် | အမျိုးအစား | အလိုအလျောက် | နေအိမ် |
|---|---|---|---|
nwc_url | နေအိမ် string | ဟုတ်ကဲ့ | အဆိုပါ connector ကို, စတင်ခြင်း nostr+walletconnect://အဆိုပါ Nymbot တစ်ဦးက Wallet ကိုရှာဖွေနေသည်။ get_info ဒါကြောင့်သင်တို့အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။ |
threshold_sats | အင်ဂျင် | ဟုတ်ကဲ့ | အဆိုပါကောင်းသောအချက်အလက်များကိုသင်တို့အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။ |
topup_sats | အင်ဂျင် | ဟုတ်ကဲ့ | အချိန်အချိန်အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် အချိန် |
tier | နေအိမ် string | မဟုတ် | pro (အဆိုပါ default ကို) သို့မဟုတ် standardအဆင်ပြန်လည်ဆန်းစစ်ခြင်းနှင့်ထိပ်တန်း |
ပြန်ကြားချက်
{
"data": {
"connected": true,
"threshold_sats": 5000,
"topup_sats": 20000,
"tier": "pro",
"last_topup_at": null,
"last_topup_sats": null,
"last_error": null
}
}
| အမျိုးအစား | အချိန် |
|---|---|
400 | နေအိမ် > နေအိမ် > နေအိမ် > နေအိမ်invalid_nwc_urlအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ (nwc_unreachable) သို့မဟုတ်ပြန်လည်ဆန်းစစ်ခြင်း (nwc_rejected); အဆိုပါဆက်သွယ်ခြင်းငွေပေးချေမှုများကိုငွေပေးချေမှုများကိုမရှိနိုင်ပါသည် (nwc_missing_permission) သို့မဟုတ်အကွာအဝေးအထက်အကွာအဝေးအကွာအဝေးအကွာအဝေး။ |
501 | အဆိုပါ server ကိုအတွက်အလိုအလျောက် top-ups တွေကို activated လုပ်ပါဘူး (nwc_unavailableအခြားအပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်းပိုင်း |
cURL
URL=https://nymbot.ai/api/v1/nwc-auto-topup/connect
BODY='{"nwc_url":"nostr+walletconnect://...","threshold_sats":5000,"topup_sats":20000,"tier":"pro"}'
curl "$URL" \
-H "Authorization: $(nostr_auth POST "$URL" "$BODY")" \
-H "Content-Type: application/json" \
-d "$BODY"
Python
import json, os
import requests
url = "https://nymbot.ai/api/v1/nwc-auto-topup/connect"
body = json.dumps({
"nwc_url": os.environ["NWC_URL"],
"threshold_sats": 5000,
"topup_sats": 20000,
"tier": "pro",
}).encode()
res = requests.post(
url,
data=body,
headers={"Authorization": nostr_auth("POST", url, body), "Content-Type": "application/json"},
)
print(res.json())
JavaScript
const url = "https://nymbot.ai/api/v1/nwc-auto-topup/connect";
const body = JSON.stringify({
nwc_url: process.env.NWC_URL,
threshold_sats: 5000,
topup_sats: 20000,
tier: "pro",
});
const res = await fetch(url, {
method: "POST",
headers: { "Authorization": nostrAuth("POST", url, body), "Content-Type": "application/json" },
body,
});
console.log(await res.json());
အဆိုပါ settings များကိုဖတ်ရန်
GET https://nymbot.ai/api/v1/nwc-auto-topup အဆိုပါ Sign.
ပြန်လည်ဆန်းစစ်ခြင်းနှင့်အတူတူတူညီသော Object ကိုပြန်လည်ဆန်းစစ်ခြင်း connected: false အခြားအပိုင်းများ
null အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။
cURL
URL=https://nymbot.ai/api/v1/nwc-auto-topup
curl "$URL" -H "Authorization: $(nostr_auth GET "$URL")"
Python
import requests
url = "https://nymbot.ai/api/v1/nwc-auto-topup"
print(requests.get(url, headers={"Authorization": nostr_auth("GET", url)}).json())
JavaScript
const url = "https://nymbot.ai/api/v1/nwc-auto-topup";
console.log(await (await fetch(url, { headers: { "Authorization": nostrAuth("GET", url) } })).json());
disconnect ကို
DELETE https://nymbot.ai/api/v1/nwc-auto-topup/connection အဆိုပါ Sign.
သငျသညျအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်
ပြန်ကြားချက်
{ "data": { "connected": false, "threshold_sats": null, "topup_sats": null, "tier": null, "last_topup_at": null, "last_topup_sats": null, "last_error": null } }
cURL
URL=https://nymbot.ai/api/v1/nwc-auto-topup/connection
curl -X DELETE "$URL" -H "Authorization: $(nostr_auth DELETE "$URL")"
Python
import requests
url = "https://nymbot.ai/api/v1/nwc-auto-topup/connection"
print(requests.delete(url, headers={"Authorization": nostr_auth("DELETE", url)}).json())
JavaScript
const url = "https://nymbot.ai/api/v1/nwc-auto-topup/connection";
const res = await fetch(url, { method: "DELETE", headers: { "Authorization": nostrAuth("DELETE", url) } });
console.log(await res.json());
မူပိုင်ခွင့်မရှိဘဲ Pay Per Request
အဆိုပါ fixed-price ကို endpoints အဆိုပါ Lightning အပေါ်တစ်ဦးချင်းစီအချိန်အဘို့ငွေပေးချေနိုင်ပါသည်, အဘယ်သူမျှမ key ကို, အဘယ်သူမျှမအကောင့်နှင့်အဘယ်သူမျှမအခြေခံ: POST /images/generations, POST /images/edits,
POST /videos, POST /audio/speech, POST /audio/transcriptions,
POST /audio/translations နှင့် POST /embeddingsအဆိုပါ Chat, ပြန်ကြားချက်များနှင့် Messages တစ်ခုတည်းက key ကိုလိုအပ်ပါတယ်. A request that carries a key is billed to the balance as usual; the payment flow only starts when no key is sent.
အဆိုပါ Nymbot တစ်ခုတည်း backend ကနေတစ်ခုတည်းအကြံပြုချက်၏နှစ်ခုဗားရှင်းပြောပါတယ်: Lightning Labs'
နေအိမ် 402 (ဒီနေရာကို သင်၏အနိမ့်အမှတ်တံဆိပ်အကြံပြုချက်များအောက်မှာအကြံပြုချက်များကိုဖန်တီးနိုင်ပါတယ်) LSATအဆိုပါ IETF အစီအစဉ်
ငွေပေးချေ အဆိုပါ HTTP authentication ကို lightning အဆိုပါ Method နှင့်
charge သငျသညျသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်၏ client ကိုသင်.
မူပိုင်ခွင့်မရှိဘဲ Payment is on only when API_L402_SECRET အနည်းငယ် 32 အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန်အဘိဓါန် openssl rand -hex 32တစ်ဦးကနည်းလမ်းညွှန်ကြည့်ရှုရန်အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။ API_L402_SECRET_PREVIOUS တစ်နေ့အကြာ: အဆိုပါအခွင့်ပြုချက်များ, status URLs နှင့်ပြဿနာများအောက်တွင်အလုပ်လုပ်ထားပြီးသူတို့သည်သတ်မှတ်ချက်များသက်တမ်းအထိအလုပ်လုပ်ပါလိမ့်မယ်။
အဆိုပါ Challenges
အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ Authorization သငျသညျအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ 402 Payment Required စျေးနှုန်းအဘို့အတစ်ဦးစျေးနှုန်းနှင့်အတူ: တစ်ခုတည်းစျေးနှုန်းတစ်ခု key ကိုငွေပေးချေကြလိမ့်မယ်, 10 စျေးနှုန်းတစ်ဦး Standard Credit သို့မဟုတ် 100 စျေးနှုန်းတစ်ဦး Pro Credit သို့မဟုတ်အပြည့်အဝ စျေးနှုန်း (အနည်းဆုံး 1 စျေးနှုန်း, နှင့်အနည်းဆုံး 0.05 စျေးနှုန်းအနည်းငယ်) အပေါ်ပြန်လည်ဆန်းစစ်ခြင်း WWW-Authenticate အဆိုပါသတင်းအချက်အလက်များအတွက်:
HTTP/1.1 402 Payment Required
Content-Type: application/problem+json; charset=utf-8
Cache-Control: no-store
WWW-Authenticate: L402 macaroon="AgJC...", invoice="lnbc2370n1..."
WWW-Authenticate: LSAT macaroon="AgJC...", invoice="lnbc2370n1..."
WWW-Authenticate: Payment id="kM9x...", realm="nymbot", method="lightning", intent="charge",
request="eyJhbW91bnQiOiIyMzciLC...", description="Nymbot API POST /images/generations (237 sats)",
digest="sha-256=:X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=:", expires="2026-09-30T12:15:00.000Z",
opaque="eyJlbmRwb2ludCI6IlBPU1QgL2ltYWdlcy9nZW5lcmF0aW9ucyJ9"
{
"type": "https://paymentauth.org/problems/payment-required",
"title": "Payment Required",
"status": 402,
"detail": "This request costs 237 sats. Pay the Lightning invoice, then send the identical request again ...",
"challengeId": "kM9x...",
"amount_sats": 237,
"invoice": "lnbc2370n1...",
"payment_hash": "9db1370f...",
"expires_at": "2026-09-30T12:15:00.000Z",
"error": { "message": "This request costs 237 sats. ...", "type": "payment_required", "code": "payment_required", "param": null }
}
အဆိုပါ Payment request အဆိုပါ parameter ကို base64url JSON ဖြစ်ပါသည်:
{"amount":"237","currency":"sat","methodDetails":{"invoice":"lnbc...","network":"mainnet","paymentHash":"..."}}.
အဆိုပါပြဿနာကို endpoint ကိုမှတဆင့်ဆက်သွယ်ပါတယ်, အဆိုပါ Content-Type (ဒီယိုကိုအမျိုးအစားနှင့်, multipart အဘို့, ၎င်း၏အကွာအဝေး) နှင့် SHA-256 သငျသညျပေးခဲ့သည့်အတိအကျအခန်းဘက်ထရီ၏ SHA-256 မှာ, နှင့် 15 မိနစ်အချိန်ရှိပါတယ်။ လက်မှတ်တောက်ပြီးနောက်, သငျသညျ identity ကို ပြန်ကြားချက်: အတူတူညီသော
Content-Type အဆိုပါ JSON ကို bytes များသို့မဟုတ် multipart ကို endpoints များအတွက် (/images/edits, /audio/transcriptions, /audio/translationsအဆိုပါ HTTP ပရိုဂရမ်များအများဆုံးတစ်ဦးအသစ်ကိုအခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အ
တစ်ဦးချင်းစီကိုယ်ပိုင်အီးမေးလ်အတွင်း 30 ပြဿနာများကိုမေးခွန်းနိုင်ပါတယ် (အဆိုပါ IPv6 အီးမေးလ်တစ်ခုသည်၎င်း၏အပြည့်အဝ /64 အဖြစ်အကွောငျး). တစ်ဦးချင်းစီကိုယ်ပိုင်အီးမေးလ်အဘို့အမေးခွန်းများကိုမသိအမှန် 10 တစ်ချင်းစီကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေးခွန်းများကိုမေး 429 အတူ Retry-Afterမူပိုင်ခွင့်မရှိဘဲ Called Endpoints အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံပြုချက်မရှိဘဲ Called အကြံ Content-Type မဟုတ်ပါ application/json သို့မဟုတ်
multipart/form-data အဆိုပါအကြံပြုချက်များကိုအကြံပြုချက်များကိုအကြံပြုချက်များကိုအကြံပြုချက်များကို 415 ဒါကြောင့် တစ်ဦးကအကြံပြုချက်မရှိမဟုတ်ပါဘူး။
အဆိုပါ embeddings အဆိုပါ input အတွက် tokens များ၏စျေးနှုန်းအပေါ်စျေးနှုန်းဖြစ်ကြသည်, 1.5 ရက်အတွင်း margin ကိုနှင့်အတူ, အဘယ်သူမျှမအမှန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန်ကန် နေအိမ် Token.
ငွေပေးချေမှု
သငျသညျအဘယ်သူမျှမ Lightning Wallet နှင့်အတူအကောင့်ကိုငွေပေးချေပါ။ အဆိုပါ Wallet သငျသညျ preimage ကိုပေးပါသည်, 64 hex အမှတ်တံဆိပ်များ။ ထို့နောက်ဤအတူတူတူညီသောလိုအပ်ချက်ပေးပါ:
| စီမံကိန်း | နေအိမ် |
|---|---|
| နေအိမ် 402 | Authorization: L402 <macaroon>:<preimage> (LSAT အဘယ်သူမျှမအလုပ်လုပ်) |
| ငွေပေးချေ | Authorization: Payment <base64url JSON>အဘယ်မှာ JSON ကို {"challenge": {every parameter of the challenge, as sent}, "payload": {"preimage": "<hex>"}} |
တစ်ဦးကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းက nymbot
အဆိုပါ Object ကိုအဘယ်သူမျှမ Balance Fields ကိုရှိပါတယ်: {"payment": "l402", "tier": "pro", "paid_sats": 237,
"charged_sats": 237}ဒါကြောင့်အဘယ်သူမျှမ X-Nymbot-Balance-Sats အဆိုပါ Payment Scheme နှင့်အတူငွေပေးချေမှုလိုအပ်ချက်ကိုလည်း Payment-Receipt အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။ reference, status နှင့်
timestampအဆိုပါကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေကြေးငွေ
| အမျိုးအစား | အချိန် |
|---|---|
402 payment_already_used | တစ်ခုတည်းဖြတ်တောက်ခြင်းတစ်ခုတည်းဖြတ်တောက်ခြင်းတစ်ခုတည်းဖြတ်တောက်ခြင်းတစ်ခုတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်းတည်းဖြတ်တောက်ခြင်း lnget ဒါကြောင့် တစ်ခုတည်းဖြတ်တောက်ခြင်းဖြစ်ပါတယ်။ |
402 payment_mismatch | အခြားအပိုင်းအတွင်းအကြံပြုချက်များကိုအကြံပြုချက်များကိုလက်ခံရရှိခဲ့သည်။ Content-Type သငျသညျအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ် နေအိမ် Token (refund_token နှင့် refund_sats အဆိုပါခန္ဓာကိုယ်မှာ) |
402 payment_expired | သငျသညျသညျသညျသညျငွေပေးချေခဲ့လျှင်, သငျသညျငွေပေးချေခဲ့လျှင်, သငျသညျငွေပေးချေခဲ့လျှင်, သငျသညျငွေပေးချေခဲ့လျှင်, သငျသညျငွေပေးချေခဲ့လျှင်, သငျသညျသညျသညျငွေပေးချေခဲ့လျှင်, သငျသညျသညျသညျသညျငွေပေးချေခဲ့လျှင်, သငျသညျသညျငွေပေးချေခဲ့လျှင်, သငျသညျသညျငွေပေးချေခဲ့လျှင်, နေအိမ် Token (refund_token နှင့် refund_sats တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက တစ်ခုတည်းက |
401 invalid_preimage | မူပိုင်ခွင့်ပြုချက်များကိုဖန်တီးရန်လိုအပ်ပါတယ်.The preimage does not hash to the invoice's payment hash.The payment is not used up. |
401 invalid_payment_credential | အဆိုပါအမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ်တံဆိပ်အမှတ် |
429 rate_limit_exceeded | သို့မဟုတ်တစ်ရက်အတွင်းဤအီးမေးလ်ကနေအနေဖြင့် 30 ကျော်အမှတ်တံဆိပ်များသို့မဟုတ်အမှတ်တံဆိပ်များကိုသက်တမ်းနိုင်မဟုတ်, သို့မဟုတ်တစ်ရက်အတွင်း 60 ရက်အတွင်းတစ်ခုတစ်ခုတစ်ဦးကအကြွေးငွေပေးချေမှု token ကိုပေးခဲ့သည်။ Retry-After. |
cURL
BODY='{"model":"nano-banana","prompt":"a lighthouse at dusk","response_format":"b64_json"}'
URL=https://nymbot.ai/api/v1/images/generations
# 1. Get the challenge
CH=$(curl -s -D - -o /dev/null "$URL" -H "Content-Type: application/json" -d "$BODY" | grep -i '^www-authenticate: L402')
MAC=$(echo "$CH" | sed -E 's/.*macaroon="([^"]+)".*/\1/')
INVOICE=$(echo "$CH" | sed -E 's/.*invoice="([^"]+)".*/\1/')
# 2. Pay $INVOICE with your wallet and copy the preimage
PREIMAGE=...
# 3. Send the identical request with the credential
curl "$URL" -H "Content-Type: application/json" -H "Authorization: L402 $MAC:$PREIMAGE" -d "$BODY"
lnget
# lnget (Lightning Labs) pays L402 challenges from your own lnd node and retries for you
lnget -X POST -H "Content-Type: application/json" \
-d '{"model":"nano-banana","prompt":"a lighthouse at dusk","response_format":"b64_json"}' \
https://nymbot.ai/api/v1/images/generations
Python
import base64, json, re
import requests
url = "https://nymbot.ai/api/v1/images/generations"
body = json.dumps({"model": "nano-banana", "prompt": "a lighthouse at dusk", "response_format": "b64_json"}).encode()
headers = {"Content-Type": "application/json"}
challenge = requests.post(url, data=body, headers=headers)
assert challenge.status_code == 402
info = challenge.json()
print("Pay", info["amount_sats"], "sats:", info["invoice"])
preimage = pay_with_your_wallet(info["invoice"]) # 64 hex characters
# L402
mac = re.search(r'L402 macaroon="([^"]+)"', challenge.headers["WWW-Authenticate"]).group(1)
res = requests.post(url, data=body, headers={**headers, "Authorization": f"L402 {mac}:{preimage}"})
print(res.json()["nymbot"])
JavaScript
const url = "https://nymbot.ai/api/v1/images/generations";
const body = JSON.stringify({ model: "nano-banana", prompt: "a lighthouse at dusk", response_format: "b64_json" });
const headers = { "Content-Type": "application/json" };
const challenge = await fetch(url, { method: "POST", headers, body });
const www = challenge.headers.get("www-authenticate");
// The Payment scheme: echo every challenge parameter back with the preimage
const start = www.indexOf("Payment ");
const params = Object.fromEntries([...www.slice(start + 8).matchAll(/(\w+)="((?:[^"\\]|\\.)*)"/g)].map((m) => [m[1], m[2]]));
const { invoice } = JSON.parse(Buffer.from(params.request, "base64url").toString()).methodDetails;
const preimage = await payWithYourWallet(invoice);
const credential = Buffer.from(JSON.stringify({ challenge: params, payload: { preimage } })).toString("base64url");
const res = await fetch(url, { method: "POST", headers: { ...headers, Authorization: `Payment ${credential}` }, body });
console.log((await res.json()).nymbot, res.headers.get("payment-receipt"));
ဖောက်သည်အပေါ်တည်ဆောက် mppx အဆိုပါ Lightning စည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်းစည်းမျဉ်း
ဗီဒီယို
ငွေကြေး POST /videos ပြန်ကြားချက်များ 202 တစ်ဦးတည်းအဖြစ်, တစ်ဦးတည်းအဖြစ်, plus a
status_url: GET ဒါဟာအလုပ်ကိုကြည့်ရှုဖို့မဆို key ကိုမရှိဘဲဖြစ်ပါတယ်။ ဒါဟာအလုပ်ကိုကြည့်ရှုဖို့အချိန်အချိန်အချိန်အချိန် 24 နာရီအတွင်းအာမခံနှင့်အလုပ်လုပ်ပါသည်။
{
"id": "vid_...",
"status": "in_progress",
"status_url": "https://nymbot.ai/api/v1/videos/vid_...?exp=1790000000&sig=...",
"nymbot": {
"payment": "l402", "tier": "pro", "paid_sats": 4800, "charged_sats": 4800,
"refund_token": "REFUND-5E0B..."
}
}
အဆိုပါ Keep refund_token ဒါကြောင့်သင်တို့အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ (GET /api/v1/l402/refunds ပြန်ကြားချက်များ "status": "pending"အဆိုပါသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်အလက်များကိုသတင်းအချက်
refund_sats အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘ
ပြန်ကြားချက်များ
သငျသညျငွေပေးချေမှုအကြံပြုချက်အဘယ်သူမျှမတက်ရောက်ရှိပါတယ်နှင့်ပေးသွင်း Nymbot ကိုအကြံပြုချက်အဘယ်သူမျှမအကြံပြုချက်အဘယ်သူမျှမအကြံပြုချက်အဘယ်သူမျှမအကြံပြုချက်အဘယ်သူမျှမအကြံပြုချက်အဘယ်သူမျှမအကြံပြုချက်အဘယ်သူမျှမအကြံပြုချက်အဘယ်သူမျှမအကြံပြုချက်အဘယ်သူမျှမအကြံပြုချက်အဘယ်သူမျှမအကြံပြုချက် charged_satsဒါကြောင့်သင်တို့အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျ နေအိမ် Token သငျသညျငွေပေးချေမှုအဘယ်သူမျှမ:
{
"error": {
"message": "The image generator failed. Nothing was charged. Please try again. The 237 sats you paid are on refund token REFUND-...",
"type": "api_error",
"code": "upstream_error",
"refund_token": "REFUND-0C15DBED145D59131BA70298A413ADEB3D9B9AB082C476EA70A5BD38FCA5DE6D",
"refund_sats": 237,
"refund_expires_at": "2026-10-30T12:00:00.000Z"
}
}
အဘယ်သူမျှမအသုံးပြုသောအစိတ်အပိုင်းများကိုအတူတူပြန်လည်ဆန်းစစ်ခြင်း: သငျသညျနှစ်ခုအဓါတ်ပုံများကိုမေးခွင့်ပြုခဲ့သည့်အခါတစ်ခုတစ်ခုကိုပျံသတ်မှတ်ထားခဲ့သည်မဟုတ်လျှင်, ပြန်လည်ဆန်းစစ်ခြင်း nymbot အဆိုပါပစ္စည်းအဘို့အပြောင်းအလဲအမှတ်တံဆိပ်ကိုခေါ်ပါတယ်; အဆိုပါပတ်လည်ပတ်ဝန်းကျင်ပြန်လည်ဆန်းစစ်နိုင်မယ့်အရှည်အဘို့အပြောင်းအလဲအမှတ်တံဆိပ်ကိုအများဆုံးအရှည်အဘို့စျေးနှုန်း (မကြာအချိန် 30 မိနစ်ထက်ပိုပြီး) နှင့်အမှန်အရှည်အဘို့အပြောင်းအလဲအဖြစ်ပြောင်းအလဲအမှတ်တံဆိပ်အဖြစ်ပြန်လည်ဆန်းစစ်ပါလိမ့်မယ်; သငျသညျ 30 မိနစ်ထက်ပိုပြီးအပြောင်းအလဲအဘို့အပြောင်းအလဲအမှတ်တံဆိပ်ကိုပြန်လည်ဆန်းစစ် 413
ဒါကြောင့် အဆိုပါအကြံပြုချက်အပေါ်သတင်းအချက်အလက်များကိုပြန်လည်ဆန်းစစ်ခြင်းနှင့်သတင်းအချက်အလက်များကိုပြန်လည်ဆန်းစစ်ခြင်းနှင့်သတင်းအချက်အလက်များကိုပြန်လည်ဆန်းစစ်ခြင်းနှင့်သတင်းအချက်အလက်များကိုပြန်လည်ဆန်းစစ်ခြင်း။
တစ်ဦးကပြန်လည်ဆန်းစစ်ခြင်း token တစ်ဦး 256-bit code ကိုဖြစ်ပါတယ်။ Nymbot ကို၎င်း၏ hash ကိုကိုသုံးပါတယ်, ဒါကြောင့် 30 ရက်အတွင်းသက်တမ်းရှိသည်။ ဒါဟာတစ်ဦး sat balance ကိုရှိပါတယ်, သင်သည်:
- အတူငွေပေးချေ အဆောက်အဦး
Authorization: Bearer REFUND-…မူပိုင်ခွင့်ပြုချက်များကိုဖန်တီးရန်အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအrefund_token_satsအဆိုပါnymbotတစ်ဦးကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်း402refund_insufficientဒါပေမယ့် အဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။ - ဒါကြောင့် Check
GET /api/v1/l402/refundsအဆိုပါ header ကိုအတူအပြောင်းအလဲနဲ့{"sats": 237, "status": "open", "expires_at": "..."}. - တစ်ခုတည်း token တစ်နေ့တွင်အများဆုံး 60 ရက်အသုံးပြုနိုင်ပါသည်။
- အဆိုပါ NIM အတွက်ပြောင်းလဲပါ။ အဆင်ပြောပါ တစ်ဦးကအခွင့်အခွင့်အခွင့်အခွင့် အဆိုပါ Nymbot app ကို, သို့မဟုတ် Call
POST /api/v1/l402/refunds/redeemအဆိုပါ A အကြံပြုချက် နှင့်{"refund_token": "REFUND-...", "balance": "standard"}သို့မဟုတ်"pro"အပြည့်အဝအခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အခွင့်အ
cURL
URL=https://nymbot.ai/api/v1/l402/refunds/redeem
BODY='{"refund_token":"REFUND-...","balance":"standard"}'
curl "$URL" \
-H "Authorization: $(nostr_auth POST "$URL" "$BODY")" \
-H "Content-Type: application/json" \
-d "$BODY"
ပြန်ကြားချက်
{ "data": { "credited": 23, "tier": "standard", "balance_credits": 123, "remaining_sats": 7 } }