ወደ ይዘቱ ይዝለሉ
ወደ Nymbot ተመልከት

የእውቀት መሠረት ልማት

መለያዎች, Top-ups እና Keys

የእርስዎን አግኝተዋል ነገር ይመልከቱ, Lightning በላይ ይመልከቱ, የእርስዎን የግል ፎቶ ከ ይመልከቱ, እያንዳንዱ ፍላጎት ወጪን ይመልከቱ, እና ኮድ ከ መለያዎች መቆጣጠሪያ.

ቫልቭ መቆጣጠሪያ

ሁለቱም የእርስዎን ክፍያዎች, እና በዚህ ክወናው ቁጥጥር መጠን ይጠቀማል.

GET https://nymbot.ai/api/v1/credits/balance እርስዎ አንድ API Key ያስፈልጋል. POST ያግኙን ያግኙን ያግኙን ያግኙን.

balance በአሁኑ ጊዜ Bitcoin ዋጋ ላይ በዩናይትድ ስቴትስ (null ከሌሎች kredits እና sats ውስጥ ነው, ይህም በክፍያዎች በእርግጥ የተጠበቀ ነው. 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);

የክፍያ ዘዴዎች

እንዴት ማግኘት ይችላሉ, እና መስፈርቶች. Lightning ብቻ መንገድ ነው.

GET https://nymbot.ai/api/v1/topup/payment-methods ምንም ቁልፍ አያስፈልግም.

አንድ Top-up 10 እስከ 1,000,000 Sats ነው; አንድ Pro Top-up ቢያንስ አንድ Pro ክሬዲት ለመግዛት አለባቸው, ስለዚህ 100 Sats ላይ ይጀምራል. bulk_bonus ከ 500, 1,000 ወይም 5,000 ክፍሎች ከ መደበኛ ክፍሎች ከ 10%, 15% ወይም 20% በላይ, እና ከ 5,000, 10,000 ወይም 50,000 ክፍሎች ከ Pro ክፍሎች ላይ.

መልስ

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

ከባድ ከባድ ከባድ

እርስዎ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ከሌሎች ገጽታዎች ውስጥ ያካትታል. ይመልከቱ የክሬዲት አግኝቷል.

POST https://nymbot.ai/api/v1/topup/create/btc-lightning እርስዎ አንድ API Key ያስፈልጋል.

ፎቶዓይነትፍላጎትዝርዝር
amountቁጥርአዎእንዴት ነው, በ currencyአንድ ሙሉ ቁጥር ለ sats.
currencyየ StringምንምSATS (እውነተኛ አግኝቷል) USD ወይም BTCዶላር በአሁኑ Bitcoin ዋጋ ላይ መተግበሪያ ነው.
tierየ Stringምንምpro (አንድ ጊዜ) ወይም standardየክሬዲት ምን ይሆናል?

አንድ መደበኛ ክሬዲት 10 sats እና አንድ Pro ክሬዲት 100 sats, ተጨማሪ ማንኛውም ብዛት ጉርሻ ነው; credits ይህ መለያ ምን ይሰጣል.

መልስ

{
  "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) ወይም ከባድ ቦርሳ (amount_out_of_range).
429ከ 60 ሰዓታት ውስጥ በዚህ የኒም, ወይም 120 በዚህ አድራሻ ከ, (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 አንድ መውሰድ ያስፈልጋል.

status አላቸው pending (በአሁኑ ጊዜ ምንም ክፍያ አላቸው) paid (በአሁኑ ጊዜ መግዛት አይችልም, ነገር ግን ይመልከቱ) credited (እርስዎ መለያዎች ላይ) ወይም 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 የ 64-ኮምፒውተር ID አይሆንም.
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);

ታሪክ ይፈልጋል

አንድ መስመር እያንዳንዱ ትዕዛዞች ላይ ነው: ይህ ምን ነው, ምን ሞዴል ነው, कितने ቶኮን እና ምን ዋጋ ነው. ምንም ትዕዛዞች ወይም መልስ ይጠበቃል, ስለዚህ ምንም ይቀበላሉ. መስመሮች 90 ቀናት ይቀበላሉ, የመጀመሪያው የቅርብ ጊዜ ነው. አንድ ቁልፍ, እያንዳንዱ መጨረሻው መጨረሻው መጨረሻው መጨረሻው መጨረሻው መጨረሻው መጨረሻው ማየት ይችላሉ.

GET https://nymbot.ai/api/v1/queries/history — አንድ API ቁልፍ ያስፈልጋል, ይህም የእርስዎን መስፈርቶች ይመልከቱ, ወይም አንድ ትዕዛዞች እርስዎ ማንኛውም መግቢያ መግቢያ ይመልከቱ.

ፎቶዓይነትፍላጎትዝርዝር
pageአግኙን (Query)ምንምበ 1 ከ 1,000 በላይ; ከፍተኛ ገጽ 400 invalid_value.
page_countአግኙን (Query)ምንምከ 20 ከ 100 ከ 20 ከ 100 ከ 20 ከ 100 ከ 100 ከ 20 ከ 100 ከ 100 ከ 100 ከ 100 ከ 100 ከ
start_date
end_date
አግኙን (Query)ምንምISO 8601 ቀን ወይም ሰዓት.
modelአግኙን (Query)ምንምይህ ሞዴል ብቻ ነው.
typeአግኙን (Query)ምንምchat, responses, messages, image, video, speech, transcription ወይም embedding.
all_keysጓደኛ ( ጓደኛ)ምንምአንድ መውሰድ: true እያንዳንዱ መሣሪያው የተወሰነ ነው.Default false.
key_idአግኙን (Query)ምንምከባድ ትዕዛዝ ወይም ከባድ all_keys=trueብቻ ይህ ቁልፍ ነው.

መልስ

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

አግኙን መስፈርቶች

መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል, መለያ ጥቅል,

መተግበሪያው ለእርስዎ ይህ ያደርጋል: ሁሉም ነገር ውስጥ አግኝቷል ይህ ክፍል ብቻ የእርስዎን የኮድ መለያዎች ለመቆጣጠር ያስፈልጋቸዋል.

የምስክር ወረቀት በ 27235 (NIP-98) አይነት አንድ Nostr እንቅስቃሴ ነው, በ base64-coded ውስጥ ተንቀሳቃሽ. Authorization Header በ Word 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 በይነገጽ ላይ, በይነገጽ በይነገጽ በይነገጽ በይነገጽ በይነገጽ ነው. is the full URL of the request, query string included, exactly as sent.
  • method ይህ HTTP ስርዓት ነው.
  • payload ይህ SHA-256 ነው, በ hex. POST እና PATCHእባክዎን ያውቃሉ, እባክዎን ያውቃሉ, እባክዎን ያውቃሉ.
  • created_at ከ 60 ሰከንዶች ውስጥ የ Server ሰከንዶች ሊሆን ይችላል.
  • እያንዳንዱ እንቅስቃሴ አንድ ጊዜ ይሰራል, a GET አንድ አግኝቷል, አንድ አግኝቷል, አንድ አግኝቷል, አንድ አግኝቷል, አንድ አግኝቷል. nonce ከሁለት ሰከንዶች ውስጥ ከሁለት ሰከንዶች ውስጥ ከሁለት ሰከንዶች ውስጥ ከሁለት ሰከንዶች ውስጥ ከሁለት ሰከንዶች ውስጥ ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁለት ሰከንዶች ከሁሉም.
  • የተመሠረተ ፍላጎት ከ 64 KB በላይ ሊሆን ይችላል, እና ከ 64 KB በላይ ሊሆን ይችላል Content-Type: application/json.

የቅርብ ስሜት ተመልካች 401 missing_nostr_auth; አንድ ከባድ የተቋቋመ, ከባድ የተመሠረተ, ከባድ, ወይም የተለያዩ URL, method ወይም body returns invalid_nostr_authበይነገጽ ላይ የተመሠረተ ነው; አንድ የተመሠረተ አንድ ተንቀሳቃሽ nostr_auth_replayedበ IPv6 መዳረሻ (የ IPv6 መዳረሻ) ከ 30 ደቂቃዎች (የ IPv6 መዳረሻ (የ IPv6 መዳረሻ) ከ 60 ደቂቃዎች (የ IPv6 መዳረሻ) ከ 30 ደቂቃዎች (የ IPv6 መዳረሻ) ከ 30 ደቂቃዎች (የ IPv6 መዳረሻ ከ 64 ደቂቃዎች) ከ 30 ደቂቃዎች (የ IPv6 መዳረሻ) ከ 30 ደቂቃዎች (የ IPv6 መዳረሻ ከ 64 ደቂቃዎች) ከ 30 ደቂቃዎች (የ IPv6 መዳረሻ ከ 64 ደቂቃዎች) ከ 30 ደቂቃዎች (የ IPv6 መዳረሻ ከ 64 ደቂቃዎች) ከ 30 ደቂቃዎች (የ IPv6 መዳረሻ ከ 60 ደቂ 429 ጋር Retry-After.

የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር (https://nymbot.ai, https://nymchat.app ማንኛውም ሌሎች ጣቢያ ላይ አንድ ገጽ CORS አግኝተዋል አይችሉም, ስለዚህ እነርሱ ምን ይመልከቱ አይችሉም. Originእነርሱም ተጽዕኖ አይደለም.

የእርስዎ secret key

አግኝቷል የ NIMS secret key (የ NIMS secret key) nsec), ይህም ሁሉም ነገር መቆጣጠሪያ ነው: የእርስዎን መታወቂያ, የእርስዎን ታሪክ እና የእርስዎን ስኬት. ብቻ እባክዎን ማሽን ላይ አንድ ስኬት ውስጥ ያውቃል, በመስመር ላይ በመስመር ላይ በመስመር ላይ በመስመር ላይ በመስመር ላይ ለመውሰድ, እና እርስዎ የሚፈልጉት ጊዜ መተግበሪያን ይወዳሉ.

በዚህ ገጽ ላይ የሚከተሉት ምሳሌዎች እነዚህን አጠቃቀም ይጠቀማሉ. እነርሱ በ hex ውስጥ የግል ቁልፍ ያውቃሉ NOSTR_SECRET_HEXየ CURL One ይጠቀማል አግኙን ይህ መሣሪያ የ nsec ወይም hex ቁልፍ ይጠቀማል. 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");
}

የኮምፒውተር ዝርዝር

መተግበሪያው የ API ወረቀት ከላይ ምን ይመልከቱ: የእርስዎ የግል ቁልፍ, ሁለቱም ቁሳቁሶች, ብዙ ቁሳቁሶች አጠቃቀም ናቸው (ወይም መውሰድ ወይም መጨረሻው አይደለም) እና የኦሪጂናል Top-Up መኖሪያ ቤት, ወይም null የ Server መጠቀም አይችልም.

GET https://nymbot.ai/api/v1/account አግኝቷል ትዕዛዞች.

መልስ

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

መለያዎች

መተግበሪያው የክብደት ዝርዝር ላይ የሚከተሉትን መጨረሻዎች. ሁሉም እነርሱ አንድ ትዕዛዞችእያንዳንዱ ቁልፍ በ ISO 8601 ውስጥ ጊዜዎች እና sats ውስጥ መጠን ጋር በዚህ ቅርጽ ላይ ይመዝገቡ:

ቁልፍ ጥያቄዎች

{
  "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 አንድ መውሰድ መውሰድ ብቻ ነው, ነገር ግን መጠቀም አይችልም. የ መውሰድ መውሰድ መውሰድ መውሰድ ጊዜ አንድ ጊዜ ብቻ ነው.

መለያዎች

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 ያግኙን 201.

ፎቶዓይነትፍላጎትዝርዝር
nameየ Stringአዎ1 እስከ 40 ሰራተኞች, የእርስዎ ሌሎች የኃይል መለያዎች ከሌሎች ናቸው (የእውነተኛ ሁኔታ).
limit_satsመኖሪያ ቤትምንምየክፍያ ገደብ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 2 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 2 ሳምንታት ውስጥ በ 1 ሳምንታት ውስጥ በ 1 ሳምንታት
reset_periodየ Stringምንምdaily, weekly ወይም monthlyፍላጎቶች limit_satsእርስዎ አንድ አግኝቷል, አንድ አግኝቷል, አንድ አግኝቷል.
expire_atስሪት ወይም integerምንምከ ISO 8601 ጊዜ, ወይም ከ 1970 ጀምሮ ሚሊስ ሰከንዶች.

ግምገማዎች (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(በአንድ ጊዜ, አንድ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስተኛ አነስunknown_parameter); ወይም 25 የሥራ መለያዎች አሁን (too_many_keys).
429ከ 60 መኪናዎች ከ 120 መኪናዎች ከ 120 መኪናዎች ከ 1 ሰዓታት ውስጥ (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);

አንድ መውሰድ

GET https://nymbot.ai/api/v1/keys/{id} ያግኙን

ተንቀሳቃሽ {"data": {…}} በኩባንያው ላይ, ወይም 404 key_not_found አንዳንዶቹ ይህን መታወቂያ አላቸው.

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

የኩባንያ መለያዎች

PATCH https://nymbot.ai/api/v1/keys/{id} ያግኙን

እርስዎ ማንኛውም name, limit_sats, reset_period እና expire_atእንደ መውሰድ እንደ መውሰድ እንደ መውሰድ. null የፕላስቲክ መሣሪያዎች, የፕላስቲክ መሣሪያዎች, የፕላስቲክ መሣሪያዎች, የፕላስቲክ መሣሪያዎች, የፕላስቲክ መሣሪያዎች, የፕላስቲክ መሣሪያዎች እና የፕላስቲክ መሣሪያዎች (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);

አንድ ቁልፍ መውሰድ

DELETE https://nymbot.ai/api/v1/keys/{id} ያግኙን

መጨረሻው ጊዜ, ለስላሳ ነው. እርስዎ ጋር የመስመር ላይ ይሆናል. revoked_at አግኝቷል, እና መመልከት ይችላሉ include_revoked=trueየ 50 ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘመናዊ ዘ

መልስ

{ "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 አጠቃቀም

Nostr Wallet Connect እና Nymbot ጋር አንድ Lightning Wallet ይገናኙ እና መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያው መተግበሪያ ነው. ትዕዛዞች.

ይህ እንዴት ይሰራል: አንድ API ፍላጎት ለመጎብኘት የሚፈልጉት ክፍያ ወደ ይሸፍናል በኋላ, ይህ ክፍያ የእርስዎን መስኮት ዝቅተኛ ነው ከሆነ, Nymbot የእርስዎን ከፍተኛ ክፍያ ክፍያ ለ ክፍያ ይሸፍናል, የእርስዎን ክፍያ ክፍያ ይሸፍናል, እና የክሬዲት ይሸፍናል. እያንዳንዱ 5 ደቂቃዎች እና ክፍያ እያንዳንዱ ክፍያ ለ ከፍተኛው ጊዜ ይሸፍናል, ስለዚህ ክፍያ ክፍያዎች መውሰድ ይችላሉ. መተግበሪያዎች ውስጥ ይሸፍናል. የቅርብ ክፍያ ክፍያዎች እና የቅርብ ክፍያ ክፍያዎች መጠን ጊዜ እና መጠን ውስጥ ናቸው; አንድ ክፍያ ስህተት በኋላ ይሸፍናል ከሆነ, የእርስዎ ክፍያ ክፍያዎችን ይመልከቱ የ Top-Up Status ያግኙን

የእርስዎ Wallet ጋር መገናኘት በፊት

የ Nymbot ያግኙ እና ብቻ በእርግጥ በእርስዎ የእርስዎን የክፍያ መለያዎችን ለማግኘት ይጠቀማል, ነገር ግን የእርስዎን የክፍያ መለያዎችን ለመስጠት, የእርስዎ የክፍያ መለያዎች ውስጥ የክፍያ መለያዎችን ለማግኘት ይጠቀማል. pay_invoice.

የ Wallet ያግኙን

POST https://nymbot.ai/api/v1/nwc-auto-topup/connect ያግኙን

ፎቶዓይነትፍላጎትዝርዝር
nwc_urlየ Stringአዎየኮንክሪት መስመር, ይጀምራል nostr+walletconnect://Nymbot ወደ የ Wallet ይፈልጋል get_info በመጀመሪያው ጊዜ, እርስዎ ያግኙን, እና ያግኙን.
threshold_satsመኖሪያ ቤትአዎከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ
topup_satsመኖሪያ ቤትአዎአጠቃላይ ምን ያህል ይሆናል? 1000 ወደ 1,000,000 ክፍሎች.
tierየ Stringምንምpro (አንድ ጊዜ) ወይም 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የኮምፒውተር የኮምፒውተር የኮምፒውተር (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());

መተግበሪያዎች ያንብቡ

GET https://nymbot.ai/api/v1/nwc-auto-topup ያግኙን

ተኳሃኝ እንደ ተኳሃኝ ተኳሃኝ, በ 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());

መቁረጥ

DELETE https://nymbot.ai/api/v1/nwc-auto-topup/connection ያግኙን

የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር

መልስ

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

መግቢያ መግቢያ መግቢያ መግቢያ መግቢያ

የ fixed-price endpoints በ Lightning ላይ አንድ ትዕዛዞች በዚያ ጊዜ ሊከፈል ይችላል, ምንም ቁልፍ, ምንም መለያ እና ምንም ክፍያ: POST /images/generations, POST /images/edits, POST /videos, POST /audio/speech, POST /audio/transcriptions, POST /audio/translations እና POST /embeddingsቻት, መልስ እና አስተያየቶች ሁልጊዜ አንድ ቁልፍ ያስፈልጋል. አንድ ቁልፍ ያካትታሉ ማንኛውም ጥያቄ እንደመሠረተ እንደመሠረተ ክፍያ ክፍያዎች ይሸፍናል; የክፍያ ፍጥነት ብቻ ይጀምራል ጊዜ ምንም ቁልፍ ይሰጣል.

Nymbot ከሁለት ስሪት ተመሳሳይ ስሜት, አንድ backend: Lightning Labs ' አግኝቷል 402 (እነርሱም ከባድ ስሜት ውስጥ ይሰጣል) LSATየ IETF ፕሮጀክቶች ክፍያ የ HTTP ማረጋገጫ ስርዓት lightning ዘዴ እና charge እርስዎ ደንበኞች ያውቃሉ ማንኛውም ነገር ይጠቀሙ.

የእርስዎን የ Server ይሰራል

የክፍያ መግዛት ብቻ ጊዜ ነው API_L402_SECRET አነስተኛ 32 ሳጥኖች, እንደ hex (64 ንጥሎች) ወይም base64 (44) ያካትታል. openssl rand -hex 32አንድ አነስተኛ ወይም አግኝቷል መጠን ባህሪያት ይቀበላሉ እና ምን ያህል መለያ ይቀበላሉ. ለመርዳት, የቀድሞው ዋጋ ወደ API_L402_SECRET_PREVIOUS ለ 1 ቀን: ማረጋገጫዎች, የ Status URLs እና በዚያ ላይ የተወሰነ ፍላጎቶች መጨረሻው ጊዜ ድረስ ይሰራሉ.

ግምገማ

እባክዎን ይደውሉ No Authorization አግኝቷል ከሆነ, ምንም ነገር ይሰራል, እና እርስዎ 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 እርስዎ base64url JSON ያግኙ: {"amount":"237","currency":"sat","methodDetails":{"invoice":"lnbc...","network":"mainnet","paymentHash":"..."}}.

መጨረሻው መጨረሻው መጨረሻው መጨረሻው መጨረሻው መጨረሻው መጨረሻው መጨረሻው Content-Type (የዲዲኤስ አይነት እና, ከብዙ ክፍሎች, ከብዙ ክፍሎች, ከብዙ ክፍሎች) እና በ SHA-256 ወደ ትክክለኛ የኮርፖሬሽን ቢትስ እና 15 ደቂቃዎች ይሰጣል. ተመሳሳይ አግኝቷል: ተመሳሳይ Content-Type የ JSON bytes እና የ multipart endpoints (/images/edits, /audio/transcriptions, /audio/translationsአብዛኞቹ HTTP libraries እያንዳንዱ ጊዜ አንድ ቅርጽ መክተቻ አንድ አዲስ መክተቻ ይምረጡ, ስለዚህ አንድ ጊዜ መክተቻ እና እነዚህ የቢትስ ሁለት ጊዜ ይሰጣሉ.

እያንዳንዱ አድራሻ እያንዳንዱ ደቂቃ ላይ 30 ፍለጋዎችን ይጠይቃል (የ IPv6 አድራሻ ሙሉ /64 ነው). በይነገጽ ላይ የሚታወቀው አድራሻዎች እያንዳንዱ ደቂቃ ላይ ከ 10 ይወዳሉ, እና ሁሉንም አድራሻዎች ላይ Nymbot ፍለጋዎች ላይ በአጠቃላይ ጥቅል አሉ; አንድ ፍለጋ (እን.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ 429 ጋር Retry-Afterየኮርፖሬሽኖች እና የኮርፖሬሽኖች እና የኮርፖሬሽኖች በኮርፖሬሽኖች እና የኮርፖሬሽኖች በኮርፖሬሽኖች እና የኮርፖሬሽኖች በኮርፖሬሽኖች እና የኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች እና የኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች እና የኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮርፖሬሽኖች በኮ Content-Type አይሆንም application/json ወይም multipart/form-data ከባድ ከባድ ከባድ ከባድ 415 እናም በእርግጥ በእርግጥ አንድ መለያ ማግኘት አይችሉም.

መተግበሪያዎች በይነገጽ ውስጥ የቶኪን መጠን ላይ የተመሠረተ ናቸው, ከ 1.5 ጊዜ መጠን ጋር, ምክንያቱም እውነተኛ መጠን በኋላ ብቻ ይታወቃል. በይነገጽ ላይ በይነገጽ ላይ የተጠቃሚ የቶኪን ለክፍያ ይሆናል, እና የክፍያ አጠቃቀም ክፍሎች በይነገጽ ይሆናል. መግቢያ መግቢያ.

የክፍያ መልዕክት

ማንኛውም Lightning የክፍያ ጋር የክፍያ ይክፈታል. የክፍያ በ 64 ኬብሎች, 64 ኬብሎች, የክፍያ ምስል ይሰጣል. ከዚያም እነዚህን አንዱ ጋር ተመሳሳይ ፍላጎት ይሰጣል:

ፕሮግራምየ Header
አግኝቷል 402Authorization: L402 <macaroon>:<preimage> (LSAT ይሰራል)
ክፍያAuthorization: Payment <base64url JSON>በ JSON ውስጥ {"challenge": {every parameter of the challenge, as sent}, "payload": {"preimage": "<hex>"}}

አንድ ተስማሚ ፍላጎት ተመሳሳይ ነው እንደ አንድ ቁልፍ ጋር ተስማሚ ነው, ነገር ግን nymbot የኦሪጂናል አጠቃቀም አጠቃቀም አላቸው: {"payment": "l402", "tier": "pro", "paid_sats": 237, "charged_sats": 237}ነገር ግን ምንም X-Nymbot-Balance-Sats የክፍያ ስርዓት ጋር የተከናወረ አንድ ጥያቄ ደግሞ ይሰጣል Payment-Receipt የ JSON header (base64url JSON with the challenge id), የ Payment hash as reference, status እና timestampየክፍያ ጥያቄዎች ማንኛውም nym ጋር የተያያዙ አይደለም, ስለዚህ እነርሱ በክፍያ ታሪክ ውስጥ ይመልከቱ አይደለም.

ሁኔታጊዜ
402 payment_already_usedእያንዳንዱ ክፍያ እያንዳንዱ ትዕዛዞች ላይ ይሸፍናል. መልስ ይህ ትዕዛዞች ለ አዲስ ትዕዛዞች ነው, ስለዚህ አንድ ደንበኞች የቅርብ ትዕዛዞች (እንደ lnget (በአንድ ጊዜ ብቻ ይሆናል) ይሆናል.
402 payment_mismatchየፕሮግራም መጨረሻው መጨረሻው መጨረሻው መጨረሻው መጨረሻው, Content-Type አንድ አዲስ ፍላጎት በዚህ ፍላጎት ጋር ይመጣል; የክፍያ በጣም ዝቅተኛ ከሆነ, እርስዎ የተመሠረተ ነገር እንደ ተንቀሳቃሽ ይሆናል መግቢያ መግቢያ (refund_token እና refund_sats በሽታ ውስጥ)
402 payment_expiredከ 15 ደቂቃዎች በኋላ ከፈለጉ ከፈለጉ ከፈለጉ ከፈለጉ ከፈለጉ ከፈለጉ ከፈለጉ ከፈለጉ ከፈለጉ ከፈለጉ ከፈለጉ ከፈለጉ ነው. መግቢያ መግቢያ (refund_token እና refund_sats አንድ ጊዜ, አንድ ጊዜ, አንድ ጊዜ, አንድ ጊዜ, አንድ ጊዜ, አንድ ጊዜ, አንድ ጊዜ, አንድ ጊዜ, አንድ ጊዜ, አንድ ጊዜ.
401 invalid_preimageየክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ
401 invalid_payment_credentialየምስክር ወረቀት በ Nymbot የተመሠረተ በኋላ የተመሠረተ ነው, ወይም በ Nymbot የተመሠረተ የክፍያ ኡሁ ስም Nymbot ምንም የክፍያ አግኝቷል. በ Nymbot የተመሠረተ የክፍያ አግኝቷል ወይም የክፍያ አግኝቷል.
429 rate_limit_exceededከ 30 በላይ መታወቂያዎች ወይም መለያዎች በ 1 ደቂቃ ውስጥ በዚህ አድራሻ ከፈጠራ አይደለም, ወይም ከ 60 ጊዜ በ 1 ደቂቃ ውስጥ አንድ ተቀማጭ ትክክለኛነት ተንቀሳቃሽ ነበር. 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 የፕላስቲክ መሣሪያ ጋር, የፕላስቲክ ፍላጎት በእርግጥ ይጠቀማሉ; ወደ መጨረሻ ደረጃ ላይ እነርሱን ይሰጣሉ እና እነርሱን ይሰጣሉ.

ቪዲዮዎች

የክፍያ POST /videos መልስ 202 እንደ አንድ ቁልፍ አንድ, plus a status_url: GET እርስዎ በ 24 ሰዓታት ውስጥ ይሰራል, እርስዎ በ 24 ሰዓታት ውስጥ ይሰራል, እርስዎ በ 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 ከዚህ መልስ: ይህ ብቻ እዚህ ተሳታፊ ነው. የቪዲዮ ተጫዋቾች (GET /api/v1/l402/refunds መልስ "status": "pending"(በአውስትራሊያ ውስጥ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ነው) refund_sats የክፍያ ገጽ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ መለያ

ክፍያዎች

አንድ ተስማሚ ፍላጎት ተስማሚ ከሆነ እና አቅራቢ Nymbot ለ ተስማሚ ፍላጎት ተስማሚ ነው, የክፍያ ይጠበቃል እና ስህተት እንዲህ ይላል, 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"
  }
}

የማይዝግ ክፍሎች ተመሳሳይ መንገድ ተንቀሳቃሽ ይሆናል: ሁለት ፎቶዎችን የሚፈልጉት ከሆነ እና አንድ ፎቶ ተንቀሳቃሽ አይደለም, ውጤታማ መልስ nymbot የኦሪጂናል የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ የክፍያ 413 የሙዚቃ ግምገማዎች እና የሙዚቃ ግምገማዎች እና የሙዚቃ ግምገማዎች እና የሙዚቃ ግምገማዎች እና የሙዚቃ ግምገማዎች እና የሙዚቃ ግምገማዎች እና የሙዚቃ ግምገማዎች ያቀርባል.

አንድ ተንቀሳቃሽ ትክክለኛነት 256-bit ኮድ ነው. Nymbot ብቻ በውስጡ hash መክፈት, እና 30 ቀናት በኋላ መክፈት ይሆናል. ይህ አንድ sat መክፈት ያካትታል, እና እርስዎ ይችላሉ:

  • ጋር ይግዙ. አግኙን Authorization: Bearer REFUND-… ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ ከባድ (refund_token_sats ውስጥ nymbot አንድ ትክክለኛ ጥንካሬ ጥንካሬ ጥንካሬ ጥንካሬ ጥንካሬ ጥንካሬ ነው 402 refund_insufficientአንድ አግኝቷል አግኝቷል አግኝቷል አግኝቷል አግኝቷል.
  • ያግኙን GET /api/v1/l402/refunds ተመሳሳይ header ተንቀሳቃሽ {"sats": 237, "status": "open", "expires_at": "..."}.
  • አንድ ቶኮን በ 60 ጊዜ በ 1 ደቂቃ ውስጥ ሊጠቀሙ ይችላሉ.
  • እርስዎ አንድ NIM ያግኙ. ያግኙን አንድ ጉርሻ ያግኙ በ Nymbot መተግበሪያ ውስጥ ወይም ይደውሉ POST /api/v1/l402/refunds/redeem በ A ትዕዛዞች እና {"refund_token": "REFUND-...", "balance": "standard"} ወይም "pro"የክሬዲት አጠቃላይ ክፍያዎች (የተመሠረቱ 10 ክፍያዎች, በ Pro 100 ክፍያዎች) ወደ ክፍያ ይሆናል; የ API መስፈርቶች ለ የክሬዲት አጠቃላይ ክፍያዎች አይሆንም.

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