የእውቀት መሠረት ልማት
መለያዎች, 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_dateend_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እነርሱም ተጽዕኖ አይደለም.
አግኝቷል የ 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 ያግኙን
የ 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 እርስዎ ደንበኞች ያውቃሉ ማንኛውም ነገር ይጠቀሙ.
የክፍያ መግዛት ብቻ ጊዜ ነው 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 |
|---|---|
| አግኝቷል 402 | Authorization: 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አንድ ትክክለኛ ጥንካሬ ጥንካሬ ጥንካሬ ጥንካሬ ጥንካሬ ጥንካሬ ነው402refund_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 } }