Sylfaen wybodaeth Ymchwiliad
Pwysau, Top-ups a Keys
Ychwanegwch y mae gennych, top up o Lightning, top up yn awtomatig o'ch wallet, gwelwch sut mae'r cyswllt pob yn cost, a rheoli sleigiau o cod.
Mae'r dudalen hon wedi'i chyfieithu â pheiriant er hwylustod. Y fersiwn Saesneg wreiddiol yw'r fersiwn berthnasol.
Chwilio'r balansiad
Mae'r ddau o'ch sylfaennau, ac o'r nifer o'r cap hwn yn cael ei ddefnyddio.
GET https://nymbot.ai/api/v1/credits/balance Ydych chi'n rhaid i'r API Key. POST Mae'n gweithio hefyd, ar gyfer cwsmeriaid sy'n chwilio am.
balance is the two balances together in dollars at the current Bitcoin price, for tools that expect a single number (null Os yw'r rest yn credyd a sats, sy'n hyn y mae'r balances yn cael eu hysbysebu. key Mae'r cyswllt sy'n dod â'r cyswllt sy'n dod â'r cyswllt sy'n dod â'r cyswllt sy'n dod â'r cyswllt.
Ymchwiliad
{
"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"
}
}
| statws | Ymladd |
|---|---|
401 | Mae'r cofnodion yn falch, unknown, revoked, or expired. |
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);
Metodau Pecynnu
Ydych chi'n canolbwyntio, ac y llinellau. Lightning yw'r un metel.
GET https://nymbot.ai/api/v1/topup/payment-methods Mae'n cael ei angen i chi.
Mae top-up yn 10 i 1,000,000 sats; Mae top-up Pro yn rhaid i chi brynu ychydig o credyd Pro, felly mae'n dechrau ar 100 sats. bulk_bonus Mae'r credyd ychwanegol ar y top-ups mawr, yn unol â'r app: 10%, 15% neu 20% mwy ar y top-ups standard o 500, 1,000 neu 5,000 sats, a ar y top-ups Pro o 5,000, 10,000 neu 50,000 sats.
Ymchwiliad
{
"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);
Ymchwiliad ar y Lightning
Mae'n gwneud ffatri Lightning sy'n ychwanegu credyd i'r nym sy'n hoffi. Ychwanegu Yn cael y credyd ychwanegwyd.
POST https://nymbot.ai/api/v1/topup/create/btc-lightning Ydych chi'n rhaid i'r API Key.
| Ymchwiliad | Ymchwiliad | Ymchwiliad | Disgrifiad |
|---|---|---|---|
amount | cyfres | Oes | Mae'n fwy, yn currencyMae'r cyfres yn llawn ar gyfer sats. |
currency | Ymchwiliad | yn | SATS (Ydych chi'n cael y defnyddiadau), USD Yn BTCMae doler yn cael ei convertio ar y pris Bitcoin rhad ac yn awr. |
tier | Ymchwiliad | yn | pro (Ydych chi'n cael y defnyddiadau) neu standard: y cyfanswm sy'n mynd i'r credyd. |
Mae credyd safonol yn 10 sats a pro credyd 100 sats, yn ogystal â bonws bulk;
credits Ydych chi'n dod i'r cyfrif hwn.
Ymchwiliad
{
"invoice_id": "b7d41e0c95a2f38e6c1d0e9a4b7f2c61d3e8a05f9b2c4d7e1a6f3b8c0d5e2a9f4",
"payment_request": "lnbc100u1p5...",
"amount_sats": 10000,
"credits": 115,
"tier": "pro",
"expires_at": "2026-09-30T09:27:00Z",
"status": "pending"
}
| statws | Ymladd |
|---|---|
400 | Mae'r ffordd arall yn y ffordd (unsupported_method(Ydych chi'n cael ei adnabod)unsupported_currency) neu tier, cyfansoddiad amrywiol, neu amrywiol isod o'r minym (amount_too_small), dros 1 000 000 sats (amount_too_large) neu wedi'i adnabod gan y wallet Lightning (amount_out_of_range). |
429 | Yn fwy na 60 ffeiliau ar gyfer y nym hwn, neu 120 o'r swydd hwn, yn un munud (rate_limit_exceededYn ôl Retry-After). |
502 | Gellir ei wneud yn awr (invoice_unavailableYn ôl 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);
Ymchwiliad Top-up
Mae'n ymgynghori os yw'r ffatri wedi'i gwerthu a, unwaith y mae'n cael, yn ychwanegu'r credyd. Mae'r gwerthu yw'r beth yn credyd, felly ar ôl gwerthu, gwerthu hyd at y statws yw creditedMae'n ddiogel i'w gwirio yn ôl: mae'r credyd yn dod yn unwaith, os ydych chi'n chwilio.
GET https://nymbot.ai/api/v1/topup/status/{invoice_id} - mae'n rhaid i chi chwilio o'r nym sy'n gwneud y cyfrif.
status Yn pending (Yn cael ei gwerthu nawr), paid (Add-fynd, ond nid yw'n cael ei credyd; gwelwch yn ôl), credited (ar eich balansiad) neu expired (Gwrthdaro mewn amser). Mae'r llinellau sylfaenol yw ar gyfer y llinellau sy'n cwmpasu ar y ffatri.
Ymchwiliad
{
"invoice_id": "b7d41e0c95a2f38e6c1d0e9a4b7f2c61d3e8a05f9b2c4d7e1a6f3b8c0d5e2a9f4",
"status": "credited",
"amount_sats": 10000,
"credits": 115,
"tier": "pro",
"expires_at": null,
"balance_credits": 523.33,
"balance_sats": 52333
}
| statws | Ymladd |
|---|---|
400 | Mae'r id yw'r id 64-chrif o'r cyswllt crewyd. |
404 | Rwy'n chwilio am eich cyfieithu (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);
Dylunio History
Un llinell ar gyfer gwestiynau: beth yw'n, mae'r model, mae'r nifer o tokenau ac mae'n cost. Ni allbwn neu adolygiadau yn cael ei ryddhau, felly ni allbwn yn cael ei ryddhau. Mae'r llinellau yn cael ei ryddhau am 90 diwrnod, mae'r newyddion yn gyntaf. Mae'r cleiant sy'n cyrraedd y llwyfan hefyd yn gallu lleoli'r historiad.
GET https://nymbot.ai/api/v1/queries/history — mae'n rhaid i'r cyswllt API, sy'n edrych ar eich gofynion, neu a Gwestiynau o'ch nym, sy'n gweld yr un o'r cleifiau.
| Ymchwiliad | Ymchwiliad | Ymchwiliad | Disgrifiad |
|---|---|---|---|
page | cyfieithu (query) | yn | Dewisol 1, yn fwy na 1000; yn fwy na 400 invalid_value. |
page_count | cyfieithu (query) | yn | Rwsiau ar gyfer dudalen. Defawr 20, yn fwy na 100. |
start_dateend_date | Ymchwiliad (query) | yn | ISO 8601 data a amser. |
model | Ymchwiliad (query) | yn | Yn unig y model. |
type | Ymchwiliad (query) | yn | chat, responses, messages, image, video, speech, transcription Yn embedding. |
all_keys | Ymchwiliad (Query) | yn | Yn ôl â chwisg: true Mae'n cynnwys pob key o'r un nym. Default false. |
key_id | Ymchwiliad (query) | yn | Ymchwiliad â gofynion, neu gyda all_keys=trueYn unig mae'r cofnodion. |
Ymchwiliad
{
"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);
Cwestiynau cyfrif
Ychwanegu, newid a rhyddhau llaiadau, y rhestr cyfrif a top-ups awtomatig yn dod â phost API. Mae'n dod â rhestr o'ch nym, felly mae'r key leaked yn gallu gwneud hyd at ei cap, ond nid yw'n gallu gwneud y key arall neu gwella'r cap ei hun.
Mae'r app yn gwneud hyn am eich bod: yr holl yn ei Ymchwiliad Mae'r cyswllt hwn yn cael ei ddefnyddio gan ddefnyddio'r endpoints. Mae'n rhaid i chi dim ond i'r rhan hwn i reoleiddio'r cyswllt o'ch cyswllt.
Mae'r rhyddhau yn ddiddordeb Nostr o'r math 27235 (NIP-98), a wnaed yn base64-coddio yn y
Authorization Header gyda'r Word Nostr Yn ôl:
Ymchwiliad
{
"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": "..."
}
uis the full URL of the request, query string included, precisely as sent.methodMae'n y ffordd HTTP.payloadis the SHA-256 of the raw request body, yn hex. Mae'n angen arPOSTaPATCH, a mae'r corff y mae'n rhaid i chi yn byte i byte y mae'n hashed.created_atMae'n rhaid i chi fod yn uniongyrchol o 60 munud o'r cloc server.- Mae pob event yn gweithio unwaith, a
GETyn cynnwys, felly mae'r header sy'n cael ei chwarae'n ôl. Dylunio un newydd ar gyfer pob gwestiynau.nonceMae'r cyswllt yn cael ei adnabod gyda'r werth rhad ac mae'r dosbarthiadau sy'n cael ei adnabod yn uniongyrchol yn uniongyrchol. - Gall bod y corff o gwestiynau sy'n rhyddhau yn fwy na 64 KB, ac mae bod y corff angen
Content-Type: application/json.
Gwrthdaro ar gyfer Event Missing 401 missing_nostr_auth; un sy'n cael ei ffurfio'n anhygoel, sy'n rhyddhau'n anhygoel, yn agored iawn, neu ar gyfer URL, metodau neu corff arall
invalid_nostr_auth, gyda'r moethus yn y misol; yn cael eu defnyddio'n ôl
nostr_auth_replayedMae'r rhyddhau yn cael eu gwella yn ôl i'r corff yn cael ei leoli, ac mae'r pob adref yn cael ei gwella 30 o'r munud (y adref IPv6 yn cyfrif fel ei holl /64); yna mae'n cael ei gael 429 Yn
Retry-After.
Mae'r browsers yn gallu chwilio i'r endpoints hyn yn unig o'r gwefan Nymbot (https://nymbot.ai,
https://nymchat.app a'r subdomeiniadau). Mae'r dudalen ar unrhyw safle arall yn cael unrhyw adrannau CORS yn ôl, felly ni all fod yn gallu lleoli'r adrannau.
OriginYdych chi'n ddiddordeb.
Mae'r cyfrif yn angen eich nym's secret key (y nsec), sy'n rheoli bob amser: eich hun, eich historiad a'ch rheswm. Rhowch i'r scriptiau ar peiriant y mae gennych chi'n ddiogel, i lawr o'r amgylchedd yn oed yn ôl i'w scribio i'r ffeil, ac yn awgrymu'r app pan fyddwch chi'n gallu.
Mae'r adolygiadau hyn yn adeiladu'r header. Mae'r ystyriediau nesaf ar y dudalen hon yn defnyddio'r ystyriediau. NOSTR_SECRET_HEXMae'r cURL yn defnyddio'r
Ymweld peiriant llinell comando, sy'n cymryd nsec neu hex, a sha256sum ar gyfer 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");
}
Rhestr y cyfrif
Mae'r swyddfa API y app yn dangos yn y gorchymyn: eich dewis public, mae'r ddau sylfaennau, mae'r nifer o dewisiau yn effeithiol (no'r wedi'u reoli neu wedi'u gwblhau), a'r Awtomatig Top-up Ymchwiliad, neu
null Os yw'r server yn cynnig ei.
GET https://nymbot.ai/api/v1/account Dylunio a Gwestiynau.
Ymchwiliad
{
"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());
Ymchwiliad Keys
Mae'r rhan fwyaf o'r rhan fwyaf yn cael ei ddefnyddio i'r cyswllt. Mae pob un o'r rhan fwyaf yn angen GwestiynauMae'r cyswllt yn cael ei gynyddu yn y ffurflen hwn, gyda amser yn ISO 8601 a chyfres yn sats:
Object Cyd-fynd
{
"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 Mae'r cyswllt yn cael ei adnabod, ond nid yw'n cael ei ddefnyddio, mae'r cyswllt yn cael ei adnabod yn unwaith, pan fydd yn cael ei wneud.
Llwytho i lawr
GET https://nymbot.ai/api/v1/keys Ymchwiliad
| Ymchwiliad | Ymchwiliad | Ymchwiliad | Disgrifiad |
|---|---|---|---|
include_revoked | Ymchwiliad (Query) | yn | Ychwanegwch y cyswllt. Default false. |
Ymchwiliad
{ "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);
Ychwanegwch â'r key
POST https://nymbot.ai/api/v1/keys Ymchwiliad 201.
| Ymchwiliad | Ymchwiliad | Ymchwiliad | Disgrifiad |
|---|---|---|---|
name | Ymchwiliad | Oes | 1 i 40 cartegwyr, yn adnabyddus o'ch cyswllt eraill yn gweithio (gyfeillgar cyswllt). |
limit_sats | Ymchwiliad | yn | Mae'r cyswllt yn cael ei ddibynnu, yn fwy na 1. |
reset_period | Ymchwiliad | yn | daily, weekly Yn monthlyYmchwiliad limit_satsRwy'n dod ar gyfer cap sy'n golygu bob amser. |
expire_at | String neu integer | yn | Os yw'r taith yn rhad ac yn gweithio: amser ISO 8601, neu millisecondiau ers 1970. |
Ymchwiliad (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"
}
}
| statws | Ymladd |
|---|---|
400 | Mae'r enw wedi'i gymryd neu'r enw wedi'i ddefnyddio (duplicate_name); cap sy'n cael y cyfres cyffredinol o hyd yn fwy na 1; cyfres reset heb cap; llwytho i'r bywyd; field unknown (unknown_parameter); neu 25 nodweddion wedi'i wneud yn awr (too_many_keys). |
429 | Yn fwy na 60 nodweddion a gynhyrchir gan y nym hwn, neu 120 o'r swydd hwn, yn unwaith (rate_limit_exceededYn ôl 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);
Lleoliad Un Key
GET https://nymbot.ai/api/v1/keys/{id} Ymchwiliad
Ymchwiliad {"data": {…}} gyda'r ganlyniadau cryfder, neu 404
key_not_found Os nad oes gennych eich ID.
cURL
URL=https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856
curl "$URL" -H "Authorization: $(nostr_auth GET "$URL")"
Python
import requests
url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856"
print(requests.get(url, headers={"Authorization": nostr_auth("GET", url)}).json()["data"])
JavaScript
const url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856";
console.log((await (await fetch(url, { headers: { "Authorization": nostrAuth("GET", url) } })).json()).data);
Cyfeiriad: Chwilio Key
PATCH https://nymbot.ai/api/v1/keys/{id} Ymchwiliad
Ffoniwch unrhyw un name, limit_sats, reset_period a
expire_at, gyda'r uniongyrchol o'r rheoli fel wrth gwneud chwisg. null Mae'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf.400 key_revokedYmchwiliad
{"data": {…}} gyda'r Object Key wedi'i updated.
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);
Ymchwiliad Key
DELETE https://nymbot.ai/api/v1/keys/{id} Ymchwiliad
Mae'r cyswllt yn cael ei wneud yn unwaith. Mae'r cyswllt yn cael ei wneud yn unwaith. revoked_at Mae'n cael ei wneud, ac yn cael ei weld gyda include_revoked=trueMae'r cyswllt wedi'i reoli wedi'i reoli wedi'i reoli wedi'i reoli wedi'i reoli wedi'i reoli wedi'i reoli wedi'i reoli wedi'i reoli wedi'i reoli.
Ymchwiliad
{ "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());
Ymchwiliad NWC Auto-top-up
Cyd-fynd â wallet Lightning gyda Nostr Wallet Connect a Nymbot yn dod i mewn i'r cyfanswm ar ei hun pan fydd y broses API yn rhedeg yn isel. Gwestiynau.
Sut mae'n gweithio: ar ôl y gwestiynau API yn cael ei gyfrifo i'r cyfathrebu a dewisodd i'w chwilio, os mae'r cyfathrebu wedi bod yn isod o dan eich thramor, mae Nymbot yn gwneud ffôn ar gyfer eich cyfathrebu top-up, mae'n croeso i'ch cyfathrebu, ac mae'n ychwanegu'r credyd. Mae'n gyfrifo yn uchaf yn fwy na un o'r 5 munud ar gyfer pob nym a'r cyfathrebu, felly ni allbwn o gwestiynau yn caniatáu i'r cyfathrebu. Ni allbwn mewn'r apps yn ymgynghori ei. Mae'r amser a maint y top-up diweddar, a'r defnyddiad diweddar, yn y setiau; os y cyfathrebu Ymchwiliad top-up Credyd i ni.
Mae Nymbot yn storio'n encrypted a ddefnyddir yn unig i'w defnyddio i brynu'r cyfrifau top-up ei hun, ond gwneud cysylltiad yn unig ar gyfer hyn, gyda buddsoddiad gasglu yn eich wallet, felly mae'r mwyaf sy'n gallu gwneud i'w gwerthu yw'r rhif i chi. pay_invoice.
Cyd-fynd â wallet
POST https://nymbot.ai/api/v1/nwc-auto-topup/connect Ymchwiliad
| Ymchwiliad | Ymchwiliad | Ymchwiliad | Disgrifiad |
|---|---|---|---|
nwc_url | Ymchwiliad | Oes | Mae'r cyswllt yn dechrau nostr+walletconnect://Nymbot yn chwilio am y wallet get_info Yn ôl i'w archebu, mae'n cael ei archebu yn encrypted. |
threshold_sats | Ymchwiliad | Oes | Mae'r cyswllt yn dod o hyd i'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf. |
topup_sats | Ymchwiliad | Oes | Ydych chi'n addasu bob amser. 1000 i 1,000,000 sats. |
tier | Ymchwiliad | yn | pro (Ydych chi'n cael y defnyddiadau) neu standard: y balanse i amddiffyn a top up. |
Ymchwiliad
{
"data": {
"connected": true,
"threshold_sats": 5000,
"topup_sats": 20000,
"tier": "pro",
"last_topup_at": null,
"last_topup_sats": null,
"last_error": null
}
}
| statws | Ymladd |
|---|---|
400 | Mae'r cyswllt wedi'i gymryd (invalid_nwc_urlMae'r cyswllt wedi'i gymryd â'r cyswllt (nwc_unreachable) neu ryddhau'r gwerthu (nwc_rejected); mae'r cysylltiad yn gallu dewis cyfrifon (nwc_missing_permission); neu nifer o hyd at y llinellau. |
501 | Mae'r cyswllt yn cael ei addasu i'r cyswllt (nwc_unavailable) Mae'n cael ei ddefnyddio ar gyfer y dosbarth eraill. |
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());
Llwytho i'r settings
GET https://nymbot.ai/api/v1/nwc-auto-topup Ymchwiliad
Gwrthdu'r dyfais yn unol â'r cysylltiad, gyda connected: false Mae'r rhannau eraill
null Mae'r cyswllt yn cael ei gysylltu â'r cyswllt, ac mae'r cyswllt yn cael ei gysylltu â'r cyswllt.
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());
Disgrifiad
DELETE https://nymbot.ai/api/v1/nwc-auto-topup/connection Ymchwiliad
Rhowch y strwythur cysylltiad sy'n archebu. Nid yw'n cael ei wneud yn fwy top-ups. I gael gwisgo, gallwch hefyd rhyddhau'r cysylltiad yn eich wallet.
Ymchwiliad
{ "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());
Pecynnu ar un o'r gwestiynau
Mae'r rhad ac amodau cyfredol yn cael eu gwerthu am un defnyddiwr o'r amser yn ystod Lightning, nid oes cleiant, nid yw'r cyfrif a nid yw'r saldon: POST /images/generations, POST /images/edits,
POST /videos, POST /audio/speech, POST /audio/transcriptions,
POST /audio/translations a POST /embeddingsMae'r gofynion sy'n cael ei gymryd i'r cyfathrebu fel arfer; mae'r flws prynu yn dechrau dim ond nid yw'r gofynion yn cael eu chwilio.
Nymbot yn ddwy fersiwn o'r un ideol, o un backend: Lightning Labs'
Ymchwiliad 240 (Ydych chi'n cael ei adnabyddus yn ôl ei enw, LSAT) a phrofiad IETF
Ymchwiliad HTTP Authentication Scheme gyda'r lightning Meddalwedd a
charge Ydych chi'n ddiddordeb i'ch cwsmeriaid.
Pecyn gyda chydrannau yn unig API_L402_SECRET Mae pob 32 bythau yn cael ei drin, fel hex (64 cyfres) neu base64 (44). openssl rand -hex 32Mae'r rhad ac amrywiol o'r rhad ac amrywiol yn ymgorffori'r swyddogaethau ac yn log i'r defnyddiadau. API_L402_SECRET_PREVIOUS ar gyfer un diwrnod: credentials, URLs statws a thramorau wedi'i wneud o dan y byddant yn gweithio hyd at eu cynhwyso.
Dylunio
Ffoniwch y cyswllt gyda No Authorization Mae'r cyswllt yn cael ei wneud, mae'n cael ei wneud, ac mae'n 402 Payment Required gyda chyfrifiad ar gyfer y mae'r bris y gofynion:'r un pris a chyfleusodd, yn cael eu trosi at 10 sats a credit standard neu 100 sats a credit Pro ac yn cael ei rhedeg i'r holl sat (maint 1 sat, ac am ddim 0.05 credyd minimum). WWW-Authenticate Dylunio ar gyfer yr un cyfnod:
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 }
}
Ymchwiliad request Mae'r parametr yn base64url JSON:
{"amount":"237","currency":"sat","methodDetails":{"invoice":"lnbc...","network":"mainnet","paymentHash":"..."}}.
Mae'r cyfieithu yn gysylltiedig â'r endpoint, i'r Content-Type (yn math deunyddiau a, ar gyfer multipart, y llinell) ac i'r SHA-256 o'r byth corff uniongyrchol a chadw 15 munud. Ymchwiliad Ymchwiliad: Mae'r un arall
Content-Type a'r un o'r bythau JSON, neu ar gyfer y rhannau endpoints multipart (/images/edits, /audio/transcriptions, /audio/translationsMae'r rhan fwyaf o'r libraryau HTTP yn dewis llinellau newydd bob amser mae'n coddio fform, felly coddio'r ffurflen unwaith a send y bythion hyn dos.
Mae pob adref yn gallu chwilio am 30 ymgynghoriadau am munud (y adref IPv6 yn cael ei cyfrifo fel ei holl /64). Mae ymgynghoriadau sy'n cael ei adref yn cael ei ddylunio yn fwy na 10 yn y munud, ac mae ganddo llwyfan cyffredinol ar y ymgynghoriadau ymgynghoriadau Nymbot o'r holl adrefiau; mae'r ymgynghoriadau a ddylunio cyn ei wneud ymgynghoriad (per exemple gyda corff sy'n cael ei gilydd JSON) yn cael ei cyfrifo i'r ystyried. 429 Yn Retry-AfterMae'r nodweddion a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau a chyfrifiadau. Content-Type Nid yw application/json Ymchwiliad
multipart/form-data Ymchwiliad â gofynion 415 Ydych chi'n cael y cyfrif.
Mae'r cynhyrchion yn cael eu prynu o'r cynhwysedd o'r token yn y bwydo, gyda margedd 1.5; mae'r cyfrif real yn cael ei adnabod yn ôl. Mae'n cael eu prynu ar gyfer y token a ddefnyddir, ac mae'r rhan heb ei ddefnyddio yn dod yn ôl fel Ymchwiliad token.
Ymchwiliad Payment
Pwylo'r cyfrif gyda unrhyw wallet Lightning. Mae'r wallet yn darparu eich preimage, 64 cartegiau hex. Yna, rhowch yr un gofynion gyda un o'r hyn:
| Ymchwiliad | Ymchwiliad |
|---|---|
| Ymchwiliad 240 | Authorization: L402 <macaroon>:<preimage> (LSAT Mae'n gweithio hefyd) |
| Ymchwiliad | Authorization: Payment <base64url JSON>, lle mae'r JSON {"challenge": {every parameter of the challenge, as sent}, "payload": {"preimage": "<hex>"}} |
Mae'r gofynion rhad ac am ddim yn adolygu fel y gofynion wedi'i wneud gyda chwisg, ond mae'r nymbot
Mae'r ganlyniadau yn cael ei baratoi: {"payment": "l402", "tier": "pro", "paid_sats": 237,
"charged_sats": 237}Yma mae'n no X-Nymbot-Balance-Sats Mae'r gwestiynau a wnaed gyda'r schemau Payment hefyd yn cael a Payment-Receipt header (base64url JSON gyda'r challenge id, mae'r hash gwerthu fel reference, status a
timestamp(Payed requests are not bound to any nym, so they do not appear in the query history.)
| statws | Ymladd |
|---|---|
402 payment_already_used | Mae'r cyswllt yn cyfieithu newydd ar gyfer y cyswllt hwn, felly mae'r cwsmer sy'n cache'r credential diweddaraf (as lnget Ydych chi'n unig yn dod yn ôl. |
402 payment_mismatch | Mae'r credential wedi'i embed ar gyfer un endpoint arall, Content-Type neu'r corff, neu'n darparu mwy na'r gwestiynau hwn. Mae'r gofynion newydd ar gyfer y gwestiynau hwn yn dod â'i; os yw'r gwerthu'n isel, mae'r hyn o'ch gwerthu yn dod yn ôl Ymchwiliad token (refund_token a refund_sats Yn y corff) |
402 payment_expired | Mae'n fwy na 15 munud o'r rhyfel. Mae'r rhyfel newydd yn dod â'r rhyfel. Os mae'r preimagine yn dangos y mae'n cael eu gwerthu, mae hyn sy'n cael eu gwerthu yn dod yn ôl. Ymchwiliad token (refund_token a refund_sats yn y corff), unwaith; mae'r credential yn cael ei ddefnyddio. |
401 invalid_preimage | Mae'r preimage yn cael ei hamgryptio i'r hamgryptio payout o'r ffôn. Mae'r payout yn cael ei ddefnyddio. |
401 invalid_payment_credential | Mae'r credential wedi'i fformio, wedi'i newid ar ôl Nymbot wedi'i embed, neu'r enw y hash gwerthu Nymbot nid wedi'i embed ffatri ar gyfer. Mae'r macaroon gyda'r adolygiad Nymbot yn gwybod, neu gyda'r adolygiadau cofrestru, yn cael ei adnabod. |
429 rate_limit_exceeded | Mae mwy na 30 credentials neu keys sy'n awgrymu yn dod o'r adran hwn yn un munud, neu un token rhad ac am ddim wedi'u sent mwy na 60 amser yn un munud. 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"));
Mae cwsmeriaid yn cael ei adeiladu mppx Mae'r metel Lightning yn galluogi'r dewis Payment yn ei hun; yn arbenigo i'r endpoint ac yn caniatáu i'w gwerthu.
fideo
Ymchwiliad POST /videos Ymchwiliad 202 fel a, yn ogystal â a
status_url: GET Mae'n cyfieithu ac yn gweithio am 24 awr, os yw'r swydd yn cael ei hwyluso.
{
"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..."
}
}
Rhowch y refund_token Ymchwiliad: Mae'r fideo yn cael ei ddibynnu i'r fideo (GET /api/v1/l402/refunds Ymchwiliad "status": "pending"); os yw'r render yn awgrymu, mae'r gwerthu yn lleoli ar ei. Mae'r URL statws yn dangos
refund_sats ar gyfer gwaith gwerthuso, ond nid yw'r token, felly ni allbwn y URL lle mae'r gwerthuso yn ddiddordeb. Mae'r gwerthu ar y token hefyd yn ymgynghori gwaith gwerthuso a dim ond ni'n ymgynghori.
Ymchwiliad
Os yw'r gofynion rhad ac mae'r cyflenwr yn cael ei leoli gan Nymbot ar gyfer y brofiad, mae'r prynu yn cael ei rhedeg ac mae'r erthygl yn digwydd, gyda charged_sats, yn unol â'r gofynion cychwyn. Os yw'r gofynion yn awgrymiad, mae'r gofynion yn cychwyn Ymchwiliad token Mae'n werth y mae'n cael eu prynu:
{
"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"
}
}
Mae'r rhannau heb ei defnyddiwyd yn dod â'r unwaith: os ydych chi'n chwilio am ddwy lluniau a un wedi'u gwblhau, mae'r adolygiad yn effeithiol. nymbot Mae'r obiect yn caru token rhad ac amodau ar gyfer y defnyddiwr; mae'r cyfrif sy'n cael ei ddylunio yn ôl yn cael eu prynu i'r ffeil yn fwy na 30 munud (gyda'n fwy na 30 munud), ac mae'r gwahanu i'r llong real yn dod yn ôl fel token rhad ac os yw'n dod yn fwy na 30 munud, mae'n cael ei rhad ac amodau. 413
Mae'r fideo wedi'i ryddhau i'r token sy'n cael ei ryddhau. Mae'r fideo wedi'i ryddhau i'r token wedi'i ryddhau.
Mae token rhad ac amddiffynnol yn cod 256-bit. Mae Nymbot yn storio dim ond ei hash, ac mae'n golygu ar ôl 30 diwrnod. Mae ganddo saledd sat, ac gallwch:
- Ffoniwch â ni. Ymchwiliad
Authorization: Bearer REFUND-…Mae'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf o'r rhan fwyaf (refund_token_satsYn ynymbot. . . . . . . . . . . . . . . .402refund_insufficientMae'r defnyddiwr yn dod â'r cyswllt yn dod â'r cyswllt. - Ychwanegu â ni.
GET /api/v1/l402/refundsgyda'r un o'r header yn ôl{"sats": 237, "status": "open", "expires_at": "..."}. - Mae'r token yn cael ei ddefnyddio yn fwy na 60 o'r munud.
- Ychwanegu i mewn i niw. Ychwanegu i mewn Gwrthdaro i'r Darnia Yn y app Nymbot, neu Call
POST /api/v1/l402/refunds/redeemYn a Gwestiynau a{"refund_token": "REFUND-...", "balance": "standard"}Ymchwiliad"pro"). Credydiau cyfan yn dod i'r cydweithrediad (10 sats yr un ar standard, 100 ar Pro); Credydiau sy'n gwneud un credyd cyfan ar y token ar gyfer gwestiynau 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"
Ymchwiliad
{ "data": { "credited": 23, "tier": "standard", "balance_credits": 123, "remaining_sats": 7 } }