ବିଷୟବସ୍ତୁକୁ ଯାଆନ୍ତୁ |
କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

ଜ୍ଞାନ ଆଧାର ପଢନ୍ତୁ

Straight to the Point କାମ ଦେଉନି ସଚେତନତା

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

GET https://nymbot.ai/api/v1/credits/balance Straight to the Point କାମ ଦେଉନି ସଚେତନତା! POST କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

balance ବର୍ତ୍ତମାନର ବିଟ୍କଏନ୍ ମୂଲ୍ଯ଼ରେ ଡଲାରରେ ଦୁଇଟି ସନ୍ତୁଳନ କ'ଣ, ସେହି ଉପକରଣଗୁଡ଼ିକ ପାଇଁ ଯାହା ଗୋଟିଏ ସଂଖ୍ଯ଼ା ଆଶା କରେ (null ଯଦି ମୂଲ୍ଯ଼କୁ ପଢ଼ାଯାଇପାରିବ ନାହିଁ)। ବାକି କ୍ରେଡିଟ୍ ଏବଂ ସାଟ୍ ରେ ଅଛି, ଯାହା ପ୍ରକୃତରେ ବାଲାନ୍ସ ରଖାଯାଏ | key କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ପଢନ୍ତୁ

{
  "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କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

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);

ଦେଯ଼ ପଦ୍ଧତି

ଆପଣ କିପରି ଟପ୍ ଅପ୍ କରିପାରିବେ, ଏବଂ ସୀମା। ବିଜୁଳି ହେଉଛି ଏକମାତ୍ର ଉପାଯ଼ |

GET https://nymbot.ai/api/v1/topup/payment-methods - କୌଣସି ଚାବି ଦରକାର ନାହିଁ।

A top-up is 10 to 1,000,000 sats; A Pro top-up has to buy at least one Pro credit, so it starts at 100 sats. bulk_bonus କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

ପଢନ୍ତୁ

{
  "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);

Straight to the Point କାମ ଦେଉନି ସଚେତନତା

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! ପଢନ୍ତୁ କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

POST https://nymbot.ai/api/v1/topup/create/btc-lightning Straight to the Point କାମ ଦେଉନି ସଚେତନତା!

ପଢନ୍ତୁପଢନ୍ତୁଆବଶ୍ଯ଼କ।ପଢନ୍ତୁ
amountସଂଖ୍ଯ଼ାହଁସେ କହନ୍ତି, “ଏହା ଆମ ଟୋଡ଼ା ମହିଳାମାନଙ୍କ ପାଇଁ ଚିନ୍ତାର ବିଷୟ ! currencyକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
currencyପଢନ୍ତୁପଢନ୍ତୁSATS (ପୂର୍ବନିର୍ଦ୍ଧାରିତ), USD କିମ୍ବା BTCଡଲାରକୁ ବର୍ତ୍ତମାନର ବିଟ୍କଏନ୍ ମୂଲ୍ଯ଼ରେ ରୂପାନ୍ତରିତ କରାଯାଇଥାଏ।
tierପଢନ୍ତୁପଢନ୍ତୁpro (ପୂର୍ବନିର୍ଦ୍ଧାରିତ) କିମ୍ବା standard: କ୍ରେଡିଟ କେଉଁ ବାଲାନ୍ସକୁ ଯାଉଛି।

A standard credit is 10 sats and a Pro credit 100 sats, plus any bulk bonus; credits କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions

ପଢନ୍ତୁ

{
  "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), ଉପରେ 1,000,000 ସାଟ୍ସ (amount_too_largeକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions (amount_out_of_range).
429ଏହି ଏନ୍. ଆଇ. ଏମ୍. ପାଇଁ 60 ରୁ ଅଧିକ ଇନଭଏସ୍, କିମ୍ବା ଏହି ଠିକଣାରୁ 120, ଏକ ଘଣ୍ଟା ମଧ୍ଯ଼ରେ (rate_limit_exceededପଢନ୍ତୁ Retry-After).
502କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions (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);

କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! creditedପରେ ପୁନର୍ବାର ଯାଞ୍ଚ କରିବା ନିରାପଦଃ କ୍ରେଡିଟ୍ ଥରେ ଅବତରଣ କରେ, ଯଦିଓ ଆପଣ ଅନେକ ଥର ପଚାରନ୍ତି |

GET https://nymbot.ai/api/v1/topup/status/{invoice_id} କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

status ପଢନ୍ତୁ pending (ଏପର୍ଯ୍ଯ଼ନ୍ତ ପଇଠ ହୋଇନାହିଁ), paid (ଦେଯ଼, କିନ୍ତୁ ଏପର୍ଯ୍ଯ଼ନ୍ତ ଜମା ହୋଇନାହିଁ; ପୁନର୍ବାର ଯାଞ୍ଚ କରନ୍ତୁ), credited (ଆପଣଙ୍କ ବଳକା ଉପରେ) କିମ୍ବା expired କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ପଢନ୍ତୁ

{
  "invoice_id": "b7d41e0c95a2f38e6c1d0e9a4b7f2c61d3e8a05f9b2c4d7e1a6f3b8c0d5e2a9f4",
  "status": "credited",
  "amount_sats": 10000,
  "credits": 115,
  "tier": "pro",
  "expires_at": null,
  "balance_credits": 523.33,
  "balance_sats": 52333
}
ପଢନ୍ତୁପଢନ୍ତୁ
400ଆଇଡିଟି'କ୍ରିଏଟ କଲ'ର 64 ଅକ୍ଷର ବିଶିଷ୍ଟ ଆଇଡି ନୁହେଁ।
404ଆପଣଙ୍କ ଏନ୍. ଆଇ. ଏମ୍. ପାଇଁ ସେହି ଆଇ. ଡି. ଦ୍ୱାରା କୌଣସି ଇନଭଏସ୍ ନାହିଁ (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);

Straight to the Point କାମ ଦେଉଛି

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

GET https://nymbot.ai/api/v1/queries/history - ଏକ ଏ. ପି. ଆଇ. କି ଦରକାର, ଯାହା ନିଜର ଅନୁରୋଧ ଦେଖେ, କିମ୍ବା ସ୍ୱାକ୍ଷରିତ ଅନୁରୋଧ କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ପଢନ୍ତୁପଢନ୍ତୁଆବଶ୍ଯ଼କ।ପଢନ୍ତୁ
pageପଢନ୍ତୁ ।ପଢନ୍ତୁକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. 400 invalid_value.
page_countପଢନ୍ତୁ ।ପଢନ୍ତୁକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
start_date
end_date
Straight to the Point କାମ ଦେଉଛନ୍ତି କି ?ପଢନ୍ତୁISO 8601 ପଢନ୍ତୁ.
modelStraight to the Point କାମ ଦେଉଛନ୍ତି କି ?ପଢନ୍ତୁକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
typeStraight to the Point କାମ ଦେଉଛନ୍ତି କି ?ପଢନ୍ତୁchat, responses, messages, image, video, speech, transcription କିମ୍ବା embedding.
all_keysପଢନ୍ତୁ (ପଢନ୍ତୁକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. true ସମାନ ନାମର ପ୍ରତ୍ଯ଼େକ କି ଅନ୍ତର୍ଭୁକ୍ତ କରେ। ପୂର୍ବନିର୍ଦ୍ଧାରିତ false.
key_idStraight to the Point କାମ ଦେଉଛନ୍ତି କି ?ପଢନ୍ତୁକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions all_keys=trueକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

ପଢନ୍ତୁ

{
  "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);

ଆକାଉଣ୍ଟ ଅନୁରୋଧଗୁଡ଼ିକ ସାଇନ୍ କରୁଛନ୍ତି

କି ତିଆରି କରିବା, ବଦଳାଇବା ଏବଂ ପ୍ରତ୍ଯ଼ାହାର କରିବା, ଆକାଉଣ୍ଟ ସାରାଂଶ ଏବଂ ସ୍ୱଯ଼ଂକ୍ରିଯ଼ ଟପ୍-ଅପ୍ଗୁଡ଼ିକ ଏକ ଏ. ପି. ଆଇ. କି ନିଅନ୍ତି ନାହିଁ। ସେମାନେ ଆପଣଙ୍କ ଏନ୍. ଆଇ. ଏମ୍. ରୁ ଏକ ଦସ୍ତଖତ ନିଅନ୍ତି, ତେଣୁ ଏକ ଲିକ୍ ହୋଇଥିବା କି ଏହାର କ୍ଯ଼ାପ୍ ପର୍ଯ୍ଯ଼ନ୍ତ ଖର୍ଚ୍ଚ କରିପାରିବ କିନ୍ତୁ ଅନ୍ଯ଼ ଏକ କି ତିଆରି କରିପାରିବ ନାହିଁ କିମ୍ବା ନିଜର କ୍ଯ଼ାପ୍ ଉଠାଇପାରିବ ନାହିଁ।

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions ପଢନ୍ତୁ ପତ୍ରଟି ଏହି ଶେଷ ବିନ୍ଦୁଗୁଡ଼ିକୁ ବ୍ଯ଼ବହାର କରିଥାଏ। ଆପଣଙ୍କୁ କେବଳ ନିଜ କୋଡ଼ରୁ କିଗୁଡ଼ିକୁ ପରିଚାଳନା କରିବା ପାଇଁ ଏହି ବିଭାଗର ଆବଶ୍ଯ଼କତା ରହିଛି।

ସ୍ୱାକ୍ଷରଟି ହେଉଛି 27235 (ଏନ୍. ଆଇ. ପି.-98) ପ୍ରକାରର ଏକ ନୋଷ୍ଟର୍ ଘଟଣା, ଯେଉଁଥିରେ ବେସ୍64-ଏନ୍କୋଡ୍ ପଠାଯାଇଛି Authorization ଶବ୍ଦ ସହିତ ଶୀର୍ଷକ Nostr ଆଗରେଃ

ଘଟଣାଟି

{
  "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, ଅନୁସନ୍ଧାନ ଷ୍ଟ୍ରିଙ୍ଗ ଅନ୍ତର୍ଭୁକ୍ତ, ଠିକ୍ ପଠାଯାଇଥିବା ପରି |
  • method କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
  • payload କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. POST ଏବଂ PATCHକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!
  • created_at କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
  • କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. GET କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! nonce କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
  • ଏକ ସ୍ୱାକ୍ଷରିତ ଅନୁରୋଧର ମୁଖ୍ଯ଼ ଅଂଶ ସର୍ବାଧିକ 64 କେବି ହୋଇପାରେ, ଏବଂ ଏକ ଶରୀର ଆବଶ୍ଯ଼କ କରେ | Content-Type: application/json.

Straight to the Point କାମ ଦେଉନି ସଚେତନତା 401 missing_nostr_authଏକ ଯାହା ଖରାପ ଭାବରେ ଗଠିତ, ଖରାପ ଭାବରେ ଦସ୍ତଖତ ହୋଇଛି, ବହୁତ ପୁରୁଣା, କିମ୍ବା ଏକ ଭିନ୍ନ URL, ପଦ୍ଧତି କିମ୍ବା ବଡି ରିଟର୍ଣ୍ଣ ପାଇଁ _ invalid_nostr_authସେ କହନ୍ତି, “ଏହା ଆମ ଟୋଡ଼ା ମହିଳାମାନଙ୍କ ପାଇଁ ଚିନ୍ତାର ବିଷୟ ! nostr_auth_replayed(ସ୍ତ୍ରୀ) ଲକ୍ଷ୍ମୀ ନାମ୍ନୀ ସ୍ତ୍ରୀର ଡାକ ନାମ —A name for calling a woman named Lakshmī. 429 ପଢନ୍ତୁ Retry-After.

ବ୍ରାଉଜର୍ମାନେ କେବଳ ନିମ୍ବଟ୍ର ନିଜସ୍ୱ ସାଇଟ୍ଗୁଡ଼ିକରୁ ଏହି ଶେଷ ପଏଣ୍ଟଗୁଡ଼ିକୁ କଲ୍ କରିପାରିବେ (https://nymbot.ai, https://nymchat.app କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! Origin, ପ୍ରଭାବିତ ହୁଅନ୍ତି ନାହିଁ।

ଆପଣଙ୍କ ଗୁପ୍ତ ଚାବି

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! nsecକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! NOSTR_SECRET_HEXକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. ପଢନ୍ତୁ କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! sha256sum (ସ୍ତ୍ରୀ) ଲକ୍ଷ୍ମୀ ନାମ୍ନୀ ସ୍ତ୍ରୀ 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");
}

Straight to the Point କାମ ଦେଉନି ସଚେତନତା

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions? କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. ପଢନ୍ତୁ, ପଢନ୍ତୁ null ଯେତେବେଳେ ସର୍ଭର ସେମାନଙ୍କୁ ପ୍ରଦାନ କରେ ନାହିଁ।

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());

Straight to the Point କାମ ଦେଉନି ସଚେତନତା

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions Straight to the Point କାମ ଦେଉଛନ୍ତି କି ?କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ପଢନ୍ତୁ

{
  "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 ଗୋଟିଏ ଚାବି ଚିହ୍ନିବା ପାଇଁ ଏହା ଯଥେଷ୍ଟ, କିନ୍ତୁ ଏହାକୁ ବ୍ଯ଼ବହାର କରିବା ପାଇଁ ନୁହେଁ। ଚାବି ନିଜେ ଥରେ ହିଁ ଫେରସ୍ତ ହୋଇଥାଏ, ଯେତେବେଳେ ଏହା ତିଆରି ହୋଇଥାଏ।

INGREDIENTS ଆବଶ୍ୟକ ସାମଗ୍ରୀ

GET https://nymbot.ai/api/v1/keys ପଢନ୍ତୁ ।

ପଢନ୍ତୁପଢନ୍ତୁଆବଶ୍ଯ଼କ।ପଢନ୍ତୁ
include_revokedପଢନ୍ତୁ (ପଢନ୍ତୁପ୍ରତ୍ଯ଼ାହାର କରାଯାଇଥିବା କିଗୁଡ଼ିକୁ ସାମିଲ କରନ୍ତୁ। ପୂର୍ବନିର୍ଦ୍ଧାରିତ 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);

ଏକ ଚାବି ତିଆରି କରିବା

POST https://nymbot.ai/api/v1/keys କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. 201.

ପଢନ୍ତୁପଢନ୍ତୁଆବଶ୍ଯ଼କ।ପଢନ୍ତୁ
nameପଢନ୍ତୁହଁ1 ରୁ 40 ଅକ୍ଷର, ଆପଣଙ୍କ ଅନ୍ଯ଼ ସକ୍ରିଯ଼ କିଗୁଡ଼ିକ ଠାରୁ ଭିନ୍ନ (କେସ୍ କୁ ଅଣଦେଖା କରି)।
limit_satsପୂର୍ଣ୍ଣ ସଂଖ୍ଯ଼ାପଢନ୍ତୁସଟ୍ ରେ ଖର୍ଚ୍ଚ ସୀମା, ଅତିକମ୍ରେ 1. ଏହାକୁ କୌଣସି ସୀମା ବିନା ଛାଡି ଦିଅନ୍ତୁ |
reset_periodପଢନ୍ତୁପଢନ୍ତୁdaily, weekly କିମ୍ବା monthlyପଢନ୍ତୁ limit_satsକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!
expire_atStraight to the Point କାମ ଦେଉନି ସଚେତନତାପଢନ୍ତୁକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

ପଢନ୍ତୁ (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କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions (duplicate_name); ଏକ କ୍ଯ଼ାପ୍ ଯାହା ଅତିକମରେ 1 ର ସମ୍ପୂର୍ଣ୍ଣ ସଂଖ୍ଯ଼ା ନୁହେଁ; କ୍ଯ଼ାପ୍ ବିନା ଏକ ରିସେଟ ଅବଧି; ଅତୀତରେ ଏକ ସମାପ୍ତି; ଏକ ଅଜ୍ଞାତ କ୍ଷେତ୍ର (unknown_parameter); କିମ୍ବା ପୂର୍ବରୁ ସକ୍ରିଯ଼ ଥିବା 25ଟି କି (too_many_keys).
429(ସ୍ତ୍ରୀ) ଲକ୍ଷ୍ମୀ ନାମ୍ନୀ ସ୍ତ୍ରୀର ଡାକ ନାମ —A name for calling a woman named Lakshmī.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);

କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

GET https://nymbot.ai/api/v1/keys/{id} ପଢନ୍ତୁ ।

ପ୍ରତ୍ଯ଼ାବର୍ତ୍ତନ {"data": {…}} ମୁଖ୍ଯ଼ ବସ୍ତୁ ସହିତ, କିମ୍ବା 404 key_not_found କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions

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);

କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

PATCH https://nymbot.ai/api/v1/keys/{id} ପଢନ୍ତୁ ।

କେଉଁ ଲୋକମାନେ ଅଦା name, limit_sats, reset_period ଏବଂ expire_atକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! null (ସ୍ତ୍ରୀ) ଲକ୍ଷ୍ମୀ ନାମ୍ନୀ ସ୍ତ୍ରୀର ଡାକ ନାମ —A name for calling a woman named Lakshmī.400 key_revoked)। ପ୍ରତ୍ଯ଼ାବର୍ତ୍ତନ {"data": {…}} ଅଦ୍ଯ଼ତନ କରାଯାଇଥିବା ମୁଖ୍ଯ଼ ବସ୍ତୁ ସହିତ।

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);

Straight to the Point କାମ ଦେଉନି ସଚେତନତା

DELETE https://nymbot.ai/api/v1/keys/{id} ପଢନ୍ତୁ ।

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions revoked_at କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions include_revoked=trueକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ପଢନ୍ତୁ

{ "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());

Straight to the Point କାମ ଦେଉନି ସଚେତନତା

ଏକ ଲାଇଟନିଂ ୱାଲେଟକୁ ନୋଷ୍ଟର ୱାଲେଟ କନେକ୍ଟ ସହିତ ସଂଯୋଗ କରନ୍ତୁ ଏବଂ ଯେତେବେଳେ ଏ. ପି. ଆଇ. ଖର୍ଚ୍ଚ କମ୍ ହୁଏ, ନିମ୍ବଟ ନିଜେ ହିଁ ଏକ ସନ୍ତୁଳନକୁ ଶୀର୍ଷରେ ରଖିଥାଏ। ଆପର ଏ. ପି. ଆଇ. ଶୀଟର ସମାନ ସେଟିଂ ରହିଛି; ଏଗୁଡ଼ିକ ହେଉଛି ଏହା ପଛର ଶେଷ ପଏଣ୍ଟ। ସେ ସବୁର ଆବଶ୍ଯ଼କତା ହେଉଛି ଏକ ସନ୍ତୁଳନ। ସ୍ୱାକ୍ଷରିତ ଅନୁରୋଧ.

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions Don’t Use Ginger If You Have Any of These Conditions Don’t Use Ginger If You Have Any of These Conditions କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. ଏହାକୁ ଶ୍ରେଯ଼ ଦିଅନ୍ତୁ।

ଆପଣ ଏକ ୱାଲେଟ ସଂଯୋଗ କରିବା ପୂର୍ବରୁ

ଏକ ସଂଯୋଗ ଷ୍ଟ୍ରିଙ୍ଗ୍ ଯେକୌଣସି ବ୍ଯ଼କ୍ତିଙ୍କୁ ଆପଣଙ୍କ ୱାଲେଟ୍ ଧରିଥିବା ବ୍ଯ଼କ୍ତିଙ୍କୁ ଦେଯ଼ ଦେବାକୁ ଅନୁମତି ଦେଇଥାଏ। ନିମ୍ବଟ୍ ଏହାକୁ ଏନକ୍ରିପ୍ଟେଡ୍ କରି ରଖିଥାଏ ଏବଂ କେବଳ ନିଜ ଟପ୍-ଅପ୍ ଇନଭଏସ୍ ପଇଠ କରିବା ପାଇଁ ଏହାକୁ ବ୍ଯ଼ବହାର କରିଥାଏ, କିନ୍ତୁ କେବଳ ଏଥିପାଇଁ ଆପଣଙ୍କ ୱାଲେଟରେ ଏକ ଖର୍ଚ୍ଚ ବଜେଟ୍ ସହିତ ସଂଯୋଗ କରିଥାଏ, ଯାହା ଦ୍ୱାରା ଆପଣ ବାଛିଥିବା ଏକ ନମ୍ବର ହିଁ ସର୍ବାଧିକ ଦେଯ଼ ଦେଇପାରିବ। ୱାଲେଟ୍କୁ ସମର୍ଥନ କରିବାକୁ ପଡ଼ିବ। pay_invoice.

Straight to the Point କାମ ଦେଉନି ସଚେତନତା

POST https://nymbot.ai/api/v1/nwc-auto-topup/connect ପଢନ୍ତୁ ।

ପଢନ୍ତୁପଢନ୍ତୁଆବଶ୍ଯ଼କ।ପଢନ୍ତୁ
nwc_urlପଢନ୍ତୁହଁStraight to the Point କାମ ଦେଉନି ସଚେତନତା nostr+walletconnect://ନିମ୍ବଟ୍ ୱାଲେଟ୍କୁ ପଚାରିଲା get_info କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
threshold_satsପୂର୍ଣ୍ଣ ସଂଖ୍ଯ଼ାହଁକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
topup_satsପୂର୍ଣ୍ଣ ସଂଖ୍ଯ଼ାହଁକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
tierପଢନ୍ତୁପଢନ୍ତୁpro (ପୂର୍ବନିର୍ଦ୍ଧାରିତ) କିମ୍ବା standard: ଦେଖିବା ଏବଂ ଟପ୍ ଅପ୍ କରିବା ପାଇଁ ସନ୍ତୁଳନ।

ପଢନ୍ତୁ

{
  "data": {
    "connected": true,
    "threshold_sats": 5000,
    "topup_sats": 20000,
    "tier": "pro",
    "last_topup_at": null,
    "last_topup_sats": null,
    "last_error": null
  }
}
ପଢନ୍ତୁପଢନ୍ତୁ
400Straight to the Point କାମ ଦେଉନି ସଚେତନତା (invalid_nwc_url); ୱାଲେଟ୍ ଏହାର ରିଲେ ଉପରେ ଉତ୍ତର ଦେଇନଥିଲା (nwc_unreachable(ସ୍ତ୍ରୀ) ଲକ୍ଷ୍ମୀ ନାମ୍ନୀ ସ୍ତ୍ରୀର ଡାକ ନାମ —A name for calling a woman named Lakshmī.nwc_rejectedକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions (nwc_missing_permissionକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions?
501କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions (nwc_unavailableକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

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());

କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

GET https://nymbot.ai/api/v1/nwc-auto-topup ପଢନ୍ତୁ ।

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions connected: false ସେ କହନ୍ତି, “ଏହା ଆମ ଟୋଡ଼ା ମହିଳାମାନଙ୍କ ପାଇଁ ଚିନ୍ତାର ବିଷୟ ! null କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

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());

ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରାଯାଉଛି

DELETE https://nymbot.ai/api/v1/nwc-auto-topup/connection ପଢନ୍ତୁ ।

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ପଢନ୍ତୁ

{ "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());

Straight to the Point କାମ ଦେଉନି ସଚେତନତା

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! POST /images/generations, POST /images/edits, POST /videos, POST /audio/speech, POST /audio/transcriptions, POST /audio/translations ଏବଂ POST /embeddingsଚାଟ୍, ପ୍ରତିକ୍ରିଯ଼ା ଏବଂ ବାର୍ତ୍ତା ସର୍ବଦା ଏକ ଚାବି ଆବଶ୍ଯ଼କ କରେ | ଏକ ଅନୁରୋଧ ଯାହା ଏକ ଚାବି ବହନ କରେ ତାହା ପୂର୍ବପରି ବାଲାନ୍ସକୁ ବିଲ୍ କରାଯାଏ; ଦେଯ଼ ପ୍ରବାହ କେବଳ ସେତେବେଳେ ଆରମ୍ଭ ହୁଏ ଯେତେବେଳେ କୌଣସି ଚାବି ପଠାଯାଏ ନାହିଁ |

ନିମ୍ବଟ୍ ସମାନ ଧାରଣାର ଦୁଇଟି ସଂସ୍କରଣ କୁହନ୍ତି, ଗୋଟିଏ ପୃଷ୍ଠଭାଗରୁଃ ଲାଇଟନିଂ ଲ୍ଯ଼ାବ୍ସ୍ ' ପଢନ୍ତୁ 402 (ଏହାର ପୁରୁଣା ନାମରେ ମଧ୍ଯ଼ ଗ୍ରହଣ କରାଯାଇଛି, LSAT(ସ୍ତ୍ରୀ) ଲକ୍ଷ୍ମୀ ନାମ୍ନୀ ସ୍ତ୍ରୀର ଡାକ ନାମ —A name for calling a woman named Lakshmī ପଢନ୍ତୁ HTTP authentication scheme ପଢନ୍ତୁ lightning ପଦ୍ଧତି ଏବଂ charge କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ନିଜସ୍ୱ ସର୍ଭର ଚଳାନ୍ତୁ

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions API_L402_SECRET କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. openssl rand -hex 32କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! API_L402_SECRET_PREVIOUS କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.

ପଢନ୍ତୁ

Straight to the Point କାମ ଦେଉନି ସଚେତନତା Authorization କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions 402 Payment Required ପଢନ୍ତୁ, “ଏହା ଆମ ଟୋଡ଼ା ମହିଳାମାନଙ୍କ ପାଇଁ ଚିନ୍ତାର ବିଷୟ !” 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 }
}

ଦେଯ଼ ପ୍ରଦାନ request ପାରାମିଟର ହେଉଛି ବେସ୍64ଆର୍. ଏଲ୍. ଜେ. ଏସ୍. ଓ. ଏନ୍.: {"amount":"237","currency":"sat","methodDetails":{"invoice":"lnbc...","network":"mainnet","paymentHash":"..."}}.

ଏକ ଆହ୍ୱାନ ଶେଷ ବିନ୍ଦୁରେ ଆବଦ୍ଧ, Content-Type (ଏହାର ମିଡିଆ ଟାଇପ୍ ଏବଂ, ମଲ୍ଟିପାର୍ଟ ପାଇଁ, ଏହାର ସୀମା) ଏବଂ ଆପଣ ପଠାଇଥିବା ସଠିକ୍ ବଡି ବାଇଟ୍ର SHA-256 କୁ, ଏବଂ 15 ମିନିଟ୍ ପର୍ଯ୍ଯ଼ନ୍ତ ଚାଲିଥାଏ। ଦେଯ଼ ଦେବା ପରେ, ପଠାନ୍ତୁ ପଢନ୍ତୁ କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. Content-Type ଏବଂ ସମାନ ଜେ. ଏସ୍. ଓ. ଏନ୍. ବାଇଟ୍, କିମ୍ବା ବହୁପକ୍ଷୀଯ଼ ଶେଷ ବିନ୍ଦୁଗୁଡ଼ିକ ପାଇଁ (/images/edits, /audio/transcriptions, /audio/translationsକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ପ୍ରତ୍ଯ଼େକ ଠିକଣା ମିନିଟକୁ 30ଟି ଆହ୍ୱାନ ମାଗିପାରେ (ଗୋଟିଏ ଆଇପିଭି6 ଠିକଣା ଏହାର ସମ୍ପୂର୍ଣ୍ଣ/64 ଭାବରେ ଗଣନା ହୁଏ)। ଯେଉଁ ଅନୁରୋଧଗୁଡ଼ିକର ଠିକଣା ଜଣା ନାହିଁ, ସେମାନେ ମିନିଟକୁ 10ଟି କଠୋର ଅଂଶୀଦାର କରନ୍ତି, ଏବଂ ସମସ୍ତ ଠିକଣାରେ ନିମ୍ବଟ୍ ସମସ୍ଯ଼ା ଉପରେ ଏକ ସାମଗ୍ରିକ କ୍ଯ଼ାପ୍ ଥାଏ; ଏକ ଆହ୍ୱାନ ଦେବା ପୂର୍ବରୁ ପ୍ରତ୍ଯ଼ାଖ୍ଯ଼ାନ ହୋଇଥିବା ଅନୁରୋଧ (ଉଦାହରଣ ସ୍ୱରୂପ ଏକ ବଡି ସହିତ ଯାହା ବୈଧ ଜେଏସ୍ଓଏନ୍ ନୁହେଁ) ଏହା ଆଡକୁ ଗଣନା କରେ ନାହିଁ | ଏହା ବ୍ଯ଼ତୀତ ଉତ୍ତର ହେଉଛି 429 ପଢନ୍ତୁ Retry-Afterକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! Content-Type ଆଉ କ’ଣ application/json (ସ୍ତ୍ରୀ) multipart/form-data ଅପଲୋଡ ପାଇଁ) ସହିତ ପ୍ରତ୍ଯ଼ାଖ୍ଯ଼ାନ କରାଯାଇଛି 415 ଏବଂ କେବେ ବି ଏକ ଇନଭଏସ ପାଆନ୍ତି ନାହିଁ।

ଏମବେଡିଂ ଗୁଡ଼ିକର ମୂଲ୍ଯ଼ ଇନ୍ପୁଟରେ ଥିବା ଟୋକେନର ଏକ ଆକଳନରୁ, ଏକ 1.5× ମାର୍ଜିନ ସହିତ, ଯେହେତୁ ପ୍ରକୃତ ଗଣନା କେବଳ ପରେ ଜଣା ପଡ଼େ | ଆପଣ ପ୍ରକୃତରେ ବ୍ଯ଼ବହୃତ ଟୋକେନ୍ ପାଇଁ ଦେଯ଼ ଦିଅନ୍ତି, ଏବଂ ଦେଯ଼ର ଅବ୍ଯ଼ବହୃତ ଅଂଶ ଏକ ଆକଳନ ଭାବରେ ଫେରିଆସେ | ଫେରସ୍ତ ଟୋକେନ୍.

Straight to the Payment କାମ ଦେଉନି ସଚେତନତା

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ପଢନ୍ତୁଶୀର୍ଷକ
ପଢନ୍ତୁ 402Authorization: L402 <macaroon>:<preimage> (LSAT ମଧ୍ଯ଼ କାମ କରେ)
ପଢନ୍ତୁAuthorization: Payment <base64url JSON>, ଯେଉଁଠାରେ ଜେ. ଏସ୍. ଓ. ଏନ୍. ରହିଛି। {"challenge": {every parameter of the challenge, as sent}, "payload": {"preimage": "<hex>"}}

ଏକ ଦେଯ଼ଯୁକ୍ତ ଅନୁରୋଧ ଠିକ୍ ଏକ ଚାବି ଦ୍ୱାରା କରାଯାଇଥିବା ଉତ୍ତର ପରି ଉତ୍ତର ଦିଏ, କେବଳ ଏହା ବ୍ଯ଼ତୀତ nymbot Straight to the Point କାମ ଦେଉନି ସଚେତନତା: {"payment": "l402", "tier": "pro", "paid_sats": 237, "charged_sats": 237}, ଏବଂ ସେଠାରେ ନାହିଁ X-Nymbot-Balance-Sats ଶୀର୍ଷକ। ଦେଯ଼ ଯୋଜନା ସହିତ ପ୍ରଦାନ କରାଯାଇଥିବା ଅନୁରୋଧ ମଧ୍ଯ଼ ଏକ ପାଇଥାଏ Payment-Receipt (base64url JSON with the challenge id, ବକିଙ୍ଗହାମ୍ ପଢନ୍ତୁ) reference, status ଏବଂ timestamp(ସ୍ତ୍ରୀ) ଲକ୍ଷ୍ମୀ ନାମ୍ନୀ ସ୍ତ୍ରୀର ଡାକ ନାମ —A name for calling a woman named Lakshmī

ପଢନ୍ତୁପଢନ୍ତୁ
402 payment_already_usedକେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! lnget କରେ) କେବଳ ପୁନର୍ବାର ଦେଯ଼ କରେ |
402 payment_mismatchକିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. Content-Type କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! ଫେରସ୍ତ ଟୋକେନ୍ (refund_token ଏବଂ refund_sats କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
402 payment_expiredଆହ୍ୱାନର 15 ମିନିଟରୁ ଅଧିକ ସମଯ଼ ବିତିଗଲାଣି। ଏହା ସହିତ ଏକ ନୂଆ ଆହ୍ୱାନ ଆସିଛି। ଯଦି ପ୍ରିମେଜ୍ ଦର୍ଶାଏ ଯେ ଆପଣ ଦେଯ଼ ଦେଇଛନ୍ତି, ତେବେ ଆପଣ ଯାହା ପ୍ରଦାନ କରିଛନ୍ତି ତାହା ଫେରସ୍ତ ଆସେ। ଫେରସ୍ତ ଟୋକେନ୍ (refund_token ଏବଂ refund_sats ଶରୀରରେ), ଥରେ; ତା'ପରେ ପରିଚଯ଼ପତ୍ର ବ୍ଯ଼ବହୃତ ହୁଏ |
401 invalid_preimageପ୍ରିମେଜ୍ ଇନଭଏସ୍ର ପେମେଣ୍ଟ ହ୍ଯ଼ାସ୍କୁ ହ୍ଯ଼ାଶ୍ କରିନଥାଏ। ପେମେଣ୍ଟ ବ୍ଯ଼ବହାର ହୋଇନଥାଏ।
401 invalid_payment_credential(ସ୍ତ୍ରୀ) ଲକ୍ଷ୍ମୀ ନାମ୍ନୀ ସ୍ତ୍ରୀର ଡାକ ନାମ —A name for calling a woman named Lakshmī.
429 rate_limit_exceeded30 ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ, ପଢନ୍ତୁ 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"));

Straight to the Point କାମ ଦେଉନି ସଚେତନତା mppx କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ଭିଡିଓ...

ପଢନ୍ତୁ POST /videos ପଢନ୍ତୁ 202 ଏକ ଚାବି ପରି, ଅଧିକ a status_url: GET ଚାକିରିକୁ ଅନୁସରଣ କରିବା ପାଇଁ ଏଥିରେ କୌଣସି ଚାବି ନଥାଏ। ଏହା ସ୍ୱାକ୍ଷରିତ ହୋଇଥାଏ ଏବଂ 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..."
  }
}

ପଢନ୍ତୁ refund_token କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions (GET /api/v1/l402/refunds ପଢନ୍ତୁ "status": "pending"କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions refund_sats କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ଫେରସ୍ତ

ଯଦି ଏକ ଦେଯ଼ଯୁକ୍ତ ଅନୁରୋଧ ବିଫଳ ହୁଏ ଏବଂ ପ୍ରଦାନକାରୀ ଏହି ପ୍ରଯ଼ାସ ପାଇଁ ନିମ୍ବଟକୁ ବିଲ୍ କରନ୍ତି, ତେବେ ଦେଯ଼ ରଖାଯାଏ ଏବଂ ତ୍ରୁଟି ଏହିପରି କୁହେ, charged_sats, ଠିକ୍ ଯେପରି ଏକ କି ଅନୁରୋଧ ପାଇଁ। ଯଦି ଏହା ବିଲ୍ ନକରି ବିଫଳ ହୁଏ, ତେବେ ତ୍ରୁଟି ଏକ ବହନ କରେ ଫେରସ୍ତ ଟୋକେନ୍ ଆପଣ ଯାହା ପ୍ରଦାନ କରିଛନ୍ତି ତାହା ମୂଲ୍ଯ଼ବାନଃ

{
  "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"
  }
}

କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions! nymbot ମୋର କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ କ’ଣ । 413 କେଉଁ ଲୋକମାନେ ଅଦା ଖାଇବା କଥା ନୁହେଁ Don’t Use Ginger If You Have Any of These Conditions!

ଏକ ରିଫଣ୍ଡ ଟୋକେନ୍ ହେଉଛି ଏକ ଯାଦୃଚ୍ଛିକ 256-ବିଟ୍ କୋଡ୍। ନିମ୍ବଟ୍ କେବଳ ଏହାର ହ୍ଯ଼ାଶ୍ ଷ୍ଟୋର୍ କରେ, ଏବଂ ଏହା 30 ଦିନ ପରେ ସମାପ୍ତ ହୁଏ | ଏହା ଏକ ସାଟ୍ ବାଲାନ୍ସ ଧାରଣ କରେ, ଏବଂ ଆପଣ କରିପାରିବେଃ

  • ସେ କହନ୍ତି, “ଏହା ଆମ ଟୋଡ଼ା ମହିଳାମାନଙ୍କ ପାଇଁ ଚିନ୍ତାର ବିଷୟ ! ପଢନ୍ତୁ Authorization: Bearer REFUND-… ଉପରୋକ୍ତ ଯେକୌଣସି ଶେଷ ବିନ୍ଦୁରେ (ଏକ ଓପନଏଆଇ ଏସଡିକେ ଏହାକୁ ଏହାର ଏପିଆଇ କି ଭାବରେ ଗ୍ରହଣ କରେ)। ମୂଲ୍ଯ଼ ଟୋକନ୍ ରୁ ଆସେ ଏବଂ ଯାହା ବାକି ଅଛି ତାହା ଏହା ଉପରେ ରହିଥାଏ (refund_token_sats ଭିତରେ nymbot ବସ୍ତୁ)। ଅନୁରୋଧର ଉତ୍ତର ଠାରୁ କମ୍ ମୂଲ୍ଯ଼ର ଏକ ଟୋକେନ୍ 402 refund_insufficient; ଏକ ବିଲ୍ ହୋଇନଥିବା ବିଫଳତା ସାଟ୍ସକୁ ସମାନ ଟୋକେନ୍ ଉପରେ ରଖିଥାଏ |
  • ଯାଞ୍ଚ କରନ୍ତୁ। GET /api/v1/l402/refunds କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st. {"sats": 237, "status": "open", "expires_at": "..."}.
  • କିନ୍ତୁ ସେ କହିଲେ yemiti huye 1st 1st.
  • ଏହାକୁ ଏକ ନିମ୍ କୁ ଘୁଞ୍ଚାନ୍ତୁ। ଏଥିରେ ପେଷ୍ଟ କରନ୍ତୁ ଉପହାରଟିଏ ଉଦ୍ଧାର କରନ୍ତୁ in the Nymbot app, ପଢନ୍ତୁ POST /api/v1/l402/refunds/redeem ପଢନ୍ତୁ A ସ୍ୱାକ୍ଷରିତ ଅନୁରୋଧ ଏବଂ {"refund_token": "REFUND-...", "balance": "standard"} (ସ୍ତ୍ରୀ) "pro"(ସ୍ତ୍ରୀ) ଲକ୍ଷ୍ମୀ ନାମ୍ନୀ ସ୍ତ୍ରୀର ଡାକ ନାମ —A name for calling a woman named Lakshmī.

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 } }