အကြောင်းအရာသို့ ကျော်သွားပါ။
နေအိမ် > Nymbot

အသိပညာအခြေခံ ထုတ်လုပ်သူများ

နေအိမ် > 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_date
end_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အဘယ်သူမျှမသက်ဆိုင်ရာဖြစ်ပါသည်.

သင့်ရဲ့ Secret Key ကို

သငျသညျအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမအဘယ်သူမျှမ။ 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_atString သို့မဟုတ် 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

သငျသညျတစ်ဦးက Wallet ကိုဆက်သွယ်ရန်မကြာခဏ

အဆိုပါ 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 ကိုသင်.

သင့်ရဲ့ server ကို run

မူပိုင်ခွင့်မရှိဘဲ 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 အမှတ်တံဆိပ်များ။ ထို့နောက်ဤအတူတူတူညီသောလိုအပ်ချက်ပေးပါ:

စီမံကိန်းနေအိမ်
နေအိမ် 402Authorization: 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 တစ်ဦးကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်းကတည်း 402 refund_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 } }