ਸਮੱਗਰੀ 'ਤੇ ਜਾਓ
ਵਾਪਸ Nymbot

ਗਿਆਨ ਅਧਾਰ ਡਿਵੈਲਪਰ

ਸੰਤੁਲਨ, ਟਾਪ-ਅੱਪ ਅਤੇ ਕੁੰਜੀਆਂ

ਕ੍ਰੈਡਿਟ ਕ੍ਰੈਡਿਟ ਕ੍ਰੈਡਿਟ ਕ੍ਰੈਡਿਟ ਕ੍ਰੈਡਿਟ ਕ੍ਰੈਡਿਟ ਕ੍ਰੈਡਿਟ ਕ੍ਰੈਡਿਟ

ਚੈੱਕ ਬਿਲਡਿੰਗ

ਤੁਹਾਡੇ ਦੋਵੇਂ ਸੰਤੁਲਨ, ਅਤੇ ਇਸ ਕੁੰਜੀ ਦੀ ਕੈਪ ਦੀ ਕਿੰਨੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

GET https://nymbot.ai/api/v1/credits/balance - ਇੱਕ API Key ਦੀ ਲੋੜ ਹੈ. POST ਇਹ ਵੀ ਕੰਮ ਕਰਦਾ ਹੈ, ਗਾਹਕ ਲਈ ਜੋ ਇਸ ਨੂੰ ਉਮੀਦ ਕਰਦਾ ਹੈ.

balance ਕੀ ਦੋਵੇਂ ਸੰਤੁਲਨ ਮੌਜੂਦਾ ਬਿਟਕੋਿਨ ਦੀ ਕੀਮਤ'ਤੇ ਡਾਲਰ ਵਿੱਚ ਇਕੱਠੇ ਹਨ, ਉਹਨਾਂ ਸਾਧਨਾਂ ਲਈ ਜੋ ਇੱਕ ਸਿੰਗਲ ਨੰਬਰ ਦੀ ਉਮੀਦ ਕਰਦੇ ਹਨ (null ਕ੍ਰੈਡਿਟ ਅਤੇ 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 - ਕੋਈ ਕੁੰਜੀ ਦੀ ਲੋਡ਼ ਨਹੀਂ ਹੈ।

ਇੱਕ ਟਾਪ-ਅੱਪ 10 ਤੋਂ 1,000,000 ਸੈਟਸ ਹੈ; ਇੱਕ ਪ੍ਰੋ ਟਾਪ-ਅੱਪ ਨੂੰ ਘੱਟੋ ਘੱਟ ਇੱਕ ਪ੍ਰੋ ਕ੍ਰੈਡਿਟ ਖਰੀਦਣਾ ਪੈਂਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ 100 ਸੈਟਸ ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਡਾਲਰ ਦੀਆਂ ਸੀਮਾਵਾਂ ਬਿਟਕੋਿਨ ਦੀ ਕੀਮਤ ਦੀ ਪਾਲਣਾ ਕਰਦੀਆਂ ਹਨ। bulk_bonus ਵੱਡੇ ਟਾਪ-ਅਪਸ ਉੱਤੇ ਵਾਧੂ ਕ੍ਰੈਡਿਟ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਐਪ ਵਿੱਚਃ 500,1,000 ਜਾਂ 5,000 ਸੈਟਾਂ ਤੋਂ ਸਟੈਂਡਰਡ ਟਾਪ-ਅਪਸ ਉੱਤੇ 10 ਪ੍ਰਤੀਸ਼ਤ, 15 ਪ੍ਰਤੀਸ਼ਤ ਜਾਂ 20 ਪ੍ਰਤੀਸ਼ਤ ਵਧੇਰੇ, ਅਤੇ 5,000,10,000 ਜਾਂ 50,000 ਸੈਟਾਂ ਤੋਂ ਪ੍ਰੋ ਟਾਪ-ਅਪਸ ਉੱਤੇ।

ਜਵਾਬ

{
  "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ਨੰਬਰਹਾਂਕਿਸ ਹੈ, In currencyਇੱਕ ਸਾਰੀ ਨੰਬਰ ਲਈ sats.
currencyਸਟੀਲਕੋਈSATS (ਉਦਾਹਰਨ ਲਈ) USD ਜਾਂ BTCਡਾਲਰ ਨੂੰ ਮੌਜੂਦਾ ਬਿਟਕੋਿਨ ਦੀ ਕੀਮਤ'ਤੇ ਬਦਲਿਆ ਜਾਂਦਾ ਹੈ।
tierਸਟੀਲਕੋਈpro (ਉਦਾਹਰਨ ਲਈ) or standard: ਕ੍ਰੈਡਿਟ ਦਾ ਭੁਗਤਾਨ ਕੀ ਕਰਨ ਲਈ ਹੈ.

ਇੱਕ ਮਿਆਰੀ ਕ੍ਰੈਡਿਟ 10 sats ਹੈ ਅਤੇ ਇੱਕ ਪ੍ਰੋ ਕ੍ਰੈਡਿਟ 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) ਜ tier, ਇੱਕ ਛੋਟੇ ਆਕਾਰ, ਜ ਘੱਟੋ ਘੱਟੋ ਘੱਟ ਆਕਾਰ (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} - ਇੱਕ ਕੁੰਜੀ ਦੀ ਲੋੜ ਹੈ, ਜੋ ਕਿ ਫੀਚਰ ਬਣਾਇਆ ਹੈ.

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ਇਹ 64-ਕ੍ਰੈਡਿਟ ਸਿਸਟਮ ਹੈ, ਜੋ ਕਿ ਸਿਸਟਮ ਨੂੰ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ.
404ਨੈੱਟਵਰਕ ਨੈੱਟਵਰਕ ਨੈੱਟਵਰਕ (invoice_not_found).

cURL

curl https://nymbot.ai/api/v1/topup/status/$INVOICE_ID \
  -H "Authorization: Bearer $NYMBOT_API_KEY"

Python

import os, time
import requests

headers = {"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]}
url = "https://nymbot.ai/api/v1/topup/status/" + invoice["invoice_id"]

while True:
    status = requests.get(url, headers=headers).json()["status"]
    if status in ("credited", "expired"):
        break
    time.sleep(3)
print(status)

JavaScript

const headers = { "Authorization": "Bearer " + process.env.NYMBOT_API_KEY };
const url = "https://nymbot.ai/api/v1/topup/status/" + invoice.invoice_id;

let status;
do {
  await new Promise((r) => setTimeout(r, 3000));
  status = (await (await fetch(url, { headers })).json()).status;
} while (status !== "credited" && status !== "expired");
console.log(status);

ਇਤਿਹਾਸ ਨੂੰ ਚਾਹੁੰਦੇ

ਪ੍ਰਤੀ ਬੇਨਤੀ ਇੱਕ ਕਤਾਰਃ ਇਹ ਕੀ ਸੀ, ਕਿਹਡ਼ਾ ਮਾਡਲ, ਕਿੰਨੇ ਟੋਕਨ ਅਤੇ ਇਸ ਦੀ ਕੀਮਤ ਕਿੰਨੀ ਹੈ। ਕੋਈ ਪ੍ਰੋਂਪਟ ਜਾਂ ਜਵਾਬ ਨਹੀਂ ਰੱਖੇ ਜਾਂਦੇ, ਇਸ ਲਈ ਕੋਈ ਵੀ ਵਾਪਸ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ। ਕਤਾਰਾਂ ਨੂੰ 90 ਦਿਨਾਂ ਲਈ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ, ਸਭ ਤੋਂ ਨਵਾਂ ਪਹਿਲਾਂ। ਇੱਕ ਕੁੰਜੀ ਜੋ ਆਪਣੀ ਕੈਪ ਤੱਕ ਪਹੁੰਚ ਗਈ ਹੈ ਉਹ ਅਜੇ ਵੀ ਆਪਣਾ ਇਤਿਹਾਸ ਪਡ਼੍ਹ ਸਕਦੀ ਹੈ।

GET https://nymbot.ai/api/v1/queries/history — ਇੱਕ API ਕੁੰਜੀ ਦੀ ਲੋੜ ਹੈ, ਜੋ ਕਿ ਇਸ ਦੇ ਪਸੰਦ ਨੂੰ ਵੇਖਦਾ ਹੈ, ਜ ਇੱਕ ਪ੍ਰਾਈਵੇਟ ਪੋਸਟ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ

ਫੀਲਡਕਿਸਮਦੀ ਲੋੜਚਿੱਤਰ
pageਪੂਰਨ ਅੰਕ (ਪੁੱਛਗਿੱਛ)ਕੋਈਡਿਫਾਲਟ 1, ਵੱਧ ਤੋਂ ਵੱਧ 1,000 ਉੱਤੇ; ਇੱਕ ਉੱਚਾ ਪੰਨਾ ਹੈ 400 invalid_value.
page_countਪੂਰਨ ਅੰਕ (ਪੁੱਛਗਿੱਛ)ਕੋਈਚਿੱਤਰ ਲਈ ਰੀਸ. ਮਿਆਰੀ 20, ਵੱਧ 100.
start_date
end_date
ਕ੍ਰੈਡਿਟ (Query)ਕੋਈਆਈ. ਐੱਸ. ਓ. 8601 ਮਿਤੀਆਂ ਜਾਂ ਸਮਾਂ
modelਕ੍ਰੈਡਿਟ (Query)ਕੋਈਸਿਰਫ਼ ਇਸ ਮਾਡਲ ਨੂੰ.
typeਕ੍ਰੈਡਿਟ (Query)ਕੋਈchat, responses, messages, image, video, speech, transcription ਜਾਂ embedding.
all_keysਬੂਲੀਅਨ (ਪੁੱਛਗਿੱਛ)ਕੋਈਇੱਕ ਕੁੰਜੀ ਨਾਲ: true ਇੱਕੋ ਹੀ nym ਦੀ ਹਰ ਕੁੰਜੀ ਸ਼ਾਮਲ ਹੈ। ਡਿਫਾਲਟ false.
key_idਕ੍ਰੈਡਿਟ (Query)ਕੋਈਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ 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);

ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾਸ

ਕੂਕੀਜ਼ ਬਣਾਉਣ, ਤਬਦੀਲ ਕਰਨ ਅਤੇ ਤਬਦੀਲ ਕਰਨ ਲਈ, ਕੂਕੀਜ਼ ਦੀ ਕਾਪੀਰਾਈਟ ਅਤੇ ਆਟੋਮੈਟਿਕ topp-ups ਇੱਕ API ਕੂਕੀਜ਼ ਨੂੰ ਲੈਣ ਲਈ ਨਹੀਂ ਹੈ. ਉਹ ਆਪਣੇ ਨਮ ਤੋਂ ਇੱਕ ਸਰਟੀਫਿਕੇਟ ਲੈਣ ਲਈ ਹਨ, ਇਸ ਲਈ ਇੱਕ ਲੱਕੜ ਕੂਕੀਜ਼ ਇਸ ਦੇ ਕੂਕੀਜ਼ ਤੋਂ ਵੱਧ ਭੁਗਤਾਨ ਕਰ ਸਕਦਾ ਹੈ, ਪਰ ਕੋਈ ਵੀ ਇੱਕ ਹੋਰ ਕੂਕੀਜ਼ ਬਣਾਉਣ ਜਾਂ ਇਸ ਦੇ ਆਪਣੇ ਕੂਕੀਜ਼ ਨੂੰ ਵਧਾਉਣ ਲਈ ਜਾ ਸਕਦਾ ਹੈ.

ਐਪਲੀਕੇਸ਼ਨ ਤੁਹਾਡੇ ਲਈ ਇਸ ਨੂੰ ਕਰਦੀ ਹੈ: ਸਭ ਨੂੰ ਇਸ ਦੇ ਫਲੈਟ ਸ਼ੀਟ ਇਹਨਾਂ ਅੰਤਮ ਬਿੰਦੂਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਤੁਹਾਨੂੰ ਸਿਰਫ ਆਪਣੇ ਕੋਡ ਤੋਂ ਕੁੰਜੀਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਇਸ ਭਾਗ ਦੀ ਜ਼ਰੂਰਤ ਹੈ।

ਦਸਤਖਤ ਕਿਸਮ 27235 (ਐੱਨ. ਆਈ. ਪੀ.-98) ਦੀ ਇੱਕ ਨੋਸਟਰ ਘਟਨਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਬੇਸ 64-ਇੰਕੋਡ ਕੀਤਾ ਗਿਆ ਹੈ। 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 ਹੈ, ਜੋ ਕਿ ਸਵਾਲ ਦੀ ਪੂਰੀ URL ਹੈ, ਕ੍ਰੈਡਿਟ ਲੜੀ ਵੀ ਸ਼ਾਮਲ ਹੈ, ਸ਼ੁੱਧ ਤੌਰ ਤੇ ਭੇਜਿਆ ਗਿਆ ਹੈ.
  • method ਇਹ HTTP ਵਿਧੀ ਹੈ।
  • payload ਇੱਕ SHA-256 ਹੈ, ਜੋ ਕਿ ਸਰੀਰ ਸਰੀਰ ਦੀ ਸਰੀਰ ਦੀ ਸਰੀਰ ਹੈ, hex. POST ਅਤੇ PATCH, ਅਤੇ ਤੁਹਾਨੂੰ ਭੇਜਣ ਦੀ ਸਰੀਰ ਹੈ, ਜੋ ਕਿ ਤੁਹਾਨੂੰ hashed ਹੈ, ਜੋ ਕਿ ਬਾਈਟ ਲਈ ਬਾਈਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ.
  • created_at ਸਰਵਰ ਦੇ ਘੰਟੇ ਦੇ 60 ਸਕਿੰਟ ਦੇ ਅੰਦਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ.
  • ਹਰ ਘਟਨਾ ਇੱਕ ਵਾਰ ਕੰਮ ਕਰਦੀ ਹੈ GET ਕਾਪੀਰਾਈਟ © 2018 ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ nonce ਇੱਕ ਗਲਤੀ ਮੁੱਲ ਦੇ ਨਾਲ ਟੈਗ, ਇਸ ਲਈ ਦੋ ਰਜਿਸਟਰੇਸ਼ਨ, ਜੋ ਕਿ ਉਸੇ ਸਕਿੰਟ ਵਿੱਚ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਹ ਵੀ ਵੱਖ ਹੈ.
  • ਇੱਕ ਸਰਟੀਫਿਕੇਸ਼ਨ ਦੇ ਸਰੀਰ ਨੂੰ ਵੱਧ 64 KB ਹੋ ਸਕਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਸਰੀਰ ਦੀ ਲੋੜ ਹੈ Content-Type: application/json.

ਹਿੱਸਾ ਲੈਣ ਵਾਲੇ ਕਾਰੋਬਾਰ ਨੂੰ ਵਾਪਸ 401 missing_nostr_authਇੱਕ ਜੋ ਬੁਰੀ ਤਰ੍ਹਾਂ ਬਣਿਆ ਹੋਇਆ ਹੈ, ਬੁਰੀ ਤਰ੍ਹਾਂ ਦਸਤਖਤ ਕੀਤਾ ਹੋਇਆ ਹੈ, ਬਹੁਤ ਪੁਰਾਣਾ ਹੈ, ਜਾਂ ਇੱਕ ਵੱਖਰੇ ਯੂਆਰਐਲ, ਵਿਧੀ ਜਾਂ ਬਾਡੀ ਰਿਟਰਨ ਲਈ ਹੈ invalid_nostr_authਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ nostr_auth_replayedਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਕੋਡ, ਜੋ ਕਿ ਇਹ ਹਿੱਸੇ 'ਤੇ ਭੇਜਿਆ ਗਿਆ ਹੈ, ਨੈੱਟਵਰਕ ਨੂੰ ਚੈੱਕ ਕੀਤਾ ਗਿਆ ਹੈ, ਅਤੇ ਕਿਸੇ ਵੀ ਐਡਰੈੱਸ ਨੂੰ ਇੱਕ ਮਿੰਟ ਵਿੱਚ 30 ਵਾਰ ਇਸ ਨੂੰ ਤਬਦੀਲ ਕਰ ਸਕਦਾ ਹੈ (IPv6 ਐਡਰੈੱਸ ਇਸ ਦੇ ਸਾਰੇ /64); ਫਿਰ ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ 429 ਨਾਲ Retry-After.

ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਸਿਰਫ Nymbot ਦੇ ਸਵੈ ਸਾਈਟਾਂ ਤੋਂ ਇਹ ਅੰਤਰਰਾਸ਼ਟਰੀ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਕਾਲ ਕਰ ਸਕਦੇ ਹੋ (https://nymbot.ai, https://nymchat.app ਕਾਪੀਰਾਈਟ © 2018 ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਾਪੀ Originਇਸ ਨੂੰ ਨੈੱਟਵਰਕ ਨਹੀਂ ਹੈ.

ਨਿੱਜੀ ਕੁੰਜੀ

ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ nsecਕਾਪੀਰਾਈਟ © 2018 ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ

ਸਾਡੇ ਉਤਪਾਦ ਜ pricelist ਬਾਰੇ ਪੁੱਛ-ਗਿੱਛ ਲਈ, ਸਾਡੇ ਲਈ ਆਪਣੇ ਈ-ਮੇਲ ਨੂੰ ਛੱਡ, ਕਿਰਪਾ ਕਰਕੇ ਹੈ ਅਤੇ ਸਾਨੂੰ ਸੰਪਰਕ ਵਿੱਚ 24 ਘੰਟੇ ਦੇ ਅੰਦਰ-ਅੰਦਰ ਹੋ ਜਾਵੇਗਾ. NOSTR_SECRET_HEX; CURL ਇੱਕ ਨੂੰ ਵਰਤਦਾ ਹੈ ਨਕਦ ਕਦਮ ਲਾਈਨ ਸੰਦ, ਜੋ ਕਿ ਇੱਕ 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");
}

ਕਾਪੀਰਾਈਟ

ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਐਪਲੀਕੇਸ਼ਨ ਆਟੋਮੈਟਿਕ Top-Up ਸਥਾਪਨਾ, ਜ null ਸਰਵਰ ਦੀ ਪੇਸ਼ਕਸ਼ ਨਹੀਂ ਕਰਦਾ ਹੈ.

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 ਵਿੱਚ ਆਕਾਰ ਦੇ ਨਾਲ ਡਾਊਨਲੋਡ ਕੀਤਾ ਗਿਆ ਹੈ:

ਮੁੱਖ Object

{
  "id": "4f0c9a1be27d3856",
  "name": "laptop scripts",
  "hint": "sk-nymbot-Qm7x…c2Lw",
  "limit_sats": 20000,
  "reset_period": "monthly",
  "reset_at": "2026-10-01T00:00:00Z",
  "expire_at": null,
  "period_used_sats": 3412,
  "total_used_sats": 18230,
  "created_at": "2026-08-14T09:21:07Z",
  "updated_at": "2026-09-02T17:40:55Z",
  "last_used_at": "2026-09-30T08:12:00Z",
  "revoked_at": null
}

hint ਇੱਕ ਕੁੰਜੀ ਨੂੰ ਪਛਾਣਨ ਲਈ ਕਾਫ਼ੀ ਹੈ ਪਰ ਇਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਨਹੀਂ। ਕੁੰਜੀ ਆਪਣੇ ਆਪ ਵਿੱਚ ਸਿਰਫ ਇੱਕ ਵਾਰ ਵਾਪਸ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜਦੋਂ ਇਹ ਬਣਾਈ ਜਾਂਦੀ ਹੈ।

ਚਿੱਤਰ Key

GET https://nymbot.ai/api/v1/keys ਪੋਸਟ ਕੀਤਾ

ਫੀਲਡਕਿਸਮਦੀ ਲੋੜਚਿੱਤਰ
include_revokedਬੂਲੀਅਨ (ਪੁੱਛਗਿੱਛ)ਕੋਈਸ਼ਾਮਿਲ ਕਰੋ Revoked keys. Default 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ਸਟੀਲਹਾਂ1 ਤੋਂ 40 ਚਿੱਤਰ, ਆਪਣੇ ਹੋਰ ਕਾਰਜਕਾਰੀ ਕੁੰਜਾਂ ਤੋਂ ਵੱਖ ਹੈ (ਇਨਗਰੇਸ਼ਨ ਕੋਸ਼ਿਸ਼).
limit_satsਨਿੱਜੀਕੋਈਸਾਡੇ ਉਤਪਾਦ ਜ pricelist ਬਾਰੇ ਪੁੱਛ-ਗਿੱਛ ਲਈ, ਸਾਡੇ ਲਈ ਆਪਣੇ ਈ-ਮੇਲ ਨੂੰ ਛੱਡ, ਕਿਰਪਾ ਕਰਕੇ ਹੈ ਅਤੇ ਸਾਨੂੰ ਸੰਪਰਕ ਵਿੱਚ 24 ਘੰਟੇ ਦੇ ਅੰਦਰ-ਅੰਦਰ ਹੋ ਜਾਵੇਗਾ.
reset_periodਸਟੀਲਕੋਈdaily, weekly ਜਾਂ monthly. ਜ਼ਰੂਰਤਾਂ limit_satsਇਸ ਨੂੰ ਇੱਕ ਟੋਪੀ ਲਈ ਛੱਡ ਦਿਓ ਜੋ ਕਦੇ ਵੀ ਰੀਸੈੱਟ ਨਹੀਂ ਹੁੰਦੀ।
expire_atਸਤਰ ਜਾਂ ਪੂਰਨ ਅੰਕਕੋਈਜਦੋਂ ਕੁੰਜੀ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੰਦੀ ਹੈਃ ਇੱਕ ਆਈ. ਐੱਸ. ਓ. 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); ਇੱਕ ਕੈਪ ਜੋ ਘੱਟੋ ਘੱਟ 1 ਦੀ ਪੂਰੀ ਸੰਖਿਆ ਨਹੀਂ ਹੈ; ਕੈਪ ਤੋਂ ਬਿਨਾਂ ਇੱਕ ਰੀਸੈੱਟ ਪੀਰੀਅਡ; ਅਤੀਤ ਵਿੱਚ ਇੱਕ ਮਿਆਦ ਪੁੱਗਣ; ਇੱਕ ਅਣਜਾਣ ਫੀਲਡ (unknown_parameter); ਜ 25 ਹੁਣੇ ਹੀ ਆਟੋਮੈਟਿਕ ਕੁੰਜੀ (too_many_keys).
429ਇਸ ਐੱਨ. ਆਈ. ਐੱਮ. ਦੁਆਰਾ 60 ਤੋਂ ਵੱਧ ਕੁੰਜੀਆਂ, ਜਾਂ ਇਸ ਪਤੇ ਤੋਂ 120, ਇੱਕ ਘੰਟੇ ਵਿੱਚ (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);

1 ਕੂਕੀਜ਼

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": {…}} ਅੱਪਡੇਟ Key Object

cURL

URL=https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856
BODY='{"limit_sats":50000,"expire_at":null}'
curl -X PATCH "$URL" \
  -H "Authorization: $(nostr_auth PATCH "$URL" "$BODY")" \
  -H "Content-Type: application/json" \
  -d "$BODY"

Python

import json
import requests

url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856"
body = json.dumps({"limit_sats": 50000, "expire_at": None}).encode()
res = requests.patch(
    url,
    data=body,
    headers={"Authorization": nostr_auth("PATCH", url, body), "Content-Type": "application/json"},
)
print(res.json()["data"])

JavaScript

const url = "https://nymbot.ai/api/v1/keys/4f0c9a1be27d3856";
const body = JSON.stringify({ limit_sats: 50000, expire_at: null });
const res = await fetch(url, {
  method: "PATCH",
  headers: { "Authorization": nostrAuth("PATCH", url, body), "Content-Type": "application/json" },
  body,
});
console.log((await res.json()).data);

ਇੱਕ ਕੂਕੀਜ਼ ਨੂੰ ਰੋਕਣ

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

ਐੱਨ. ਡਬਲਿਊ. ਸੀ. ਆਟੋ-ਟਾਪ-ਅੱਪ

ਇੱਕ ਲਾਈਟਨਿੰਗ ਵਾਲਿਟ ਨੂੰ ਨੋਸਟਰ ਵਾਲਿਟ ਕਨੈਕਟ ਨਾਲ ਜੋਡ਼ੋ ਅਤੇ ਜਦੋਂ ਏ. ਪੀ. ਆਈ. ਖਰਚ ਇਸ ਨੂੰ ਘੱਟ ਚਲਾਉਂਦਾ ਹੈ ਤਾਂ ਨਿੰਬੋਟ ਆਪਣੇ ਆਪ ਵਿੱਚ ਇੱਕ ਸੰਤੁਲਨ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ। ਐਪ ਦੀ ਏ. ਪੀ. ਆਈ. ਸ਼ੀਟ ਵਿੱਚ ਇੱਕੋ ਜਿਹੀਆਂ ਸੈਟਿੰਗਾਂ ਹੁੰਦੀਆਂ ਹਨ; ਇਹ ਇਸ ਦੇ ਪਿੱਛੇ ਦੇ ਅੰਤਮ ਬਿੰਦੂ ਹਨ। ਉਹਨਾਂ ਸਾਰਿਆਂ ਨੂੰ ਇੱਕ ਸੰਤੁਲਨ ਦੀ ਜ਼ਰੂਰਤ ਹੁੰਦੀ ਹੈ। ਪ੍ਰਾਈਵੇਟ ਪੋਸਟ.

ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈਃ ਇੱਕ ਏਪੀਆਈ ਬੇਨਤੀ ਤੋਂ ਬਾਅਦ ਤੁਹਾਡੇ ਦੁਆਰਾ ਵੇਖਣ ਲਈ ਚੁਣੀ ਗਈ ਬਕਾਇਆ ਰਕਮ ਲਈ ਚਾਰਜ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜੇ ਉਹ ਬਕਾਇਆ ਤੁਹਾਡੀ ਥ੍ਰੈਸ਼ਹੋਲਡ ਤੋਂ ਹੇਠਾਂ ਆ ਗਿਆ ਹੈ, ਤਾਂ ਨਿੰਬੋਟ ਤੁਹਾਡੀ ਟਾਪ-ਅਪ ਰਕਮ ਲਈ ਇੱਕ ਚਲਾਨ ਬਣਾਉਂਦਾ ਹੈ, ਤੁਹਾਡੇ ਬਟੂਏ ਨੂੰ ਇਸ ਦਾ ਭੁਗਤਾਨ ਕਰਨ ਲਈ ਕਹਿੰਦਾ ਹੈ ਅਤੇ ਕ੍ਰੈਡਿਟ ਜੋਡ਼ਦਾ ਹੈ। ਇਹ ਹਰੇਕ ਨਿੰਮ ਅਤੇ ਬਕਾਇਆ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਹਰ 5 ਮਿੰਟ ਵਿੱਚ ਇੱਕ ਵਾਰ ਉੱਪਰ ਉੱਠਦਾ ਹੈ, ਇਸ ਲਈ ਬੇਨਤੀਆਂ ਦਾ ਇੱਕ ਧਮਾਕਾ ਬਟੂਏ ਨੂੰ ਖਤਮ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਐਪਸ ਵਿੱਚ ਖਰਚ ਕਰਨਾ ਇਸ ਨੂੰ ਚਾਲੂ ਨਹੀਂ ਕਰਦਾ। ਆਖਰੀ ਟਾਪ-ਅਪ ਦਾ ਸਮਾਂ ਅਤੇ ਆਕਾਰ, ਅਤੇ ਆਖਰੀ ਗਲਤੀ, ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਹਨ; ਜੇ ਭੁਗਤਾਨ ਇੱਕ ਗਲਤੀ ਤੋਂ ਬਾਅਦ ਹੋਇਆ ਹੈ, ਤਾਂ ਇਸ ਦੇ ਚਲਾਨ ਦੀ ਜਾਂਚ ਕਰੋ ਸਿਖਰ ਦੀ ਸਥਿਤੀ ਇਹ ਕ੍ਰੈਡਿਟ

ਇੱਕ wallet ਨੂੰ ਸੰਪਰਕ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ

Nymbot ਇਸ ਨੂੰ ਕ੍ਰੈਡਿਟ ਕੀਤਾ ਹੈ ਅਤੇ ਸਿਰਫ ਕਿਸੇ ਵੀ ਵਾਰ ਇਸ ਨੂੰ ਇਸ ਦੇ ਆਪਣੇ ਆਪ ਹੀ-ਅੱਪ-ਅੱਪ ਫੀਚਰ ਨੂੰ ਭੁਗਤਾਨ ਕਰਨ ਲਈ ਵਰਤਦਾ ਹੈ, ਪਰ ਇਸ ਲਈ ਸਿਰਫ ਇੱਕ ਸੰਪਰਕ ਬਣਾਉਣ ਲਈ, ਆਪਣੇ ਫੇਸਬੁੱਕ ਵਿੱਚ ਇੱਕ ਭੁਗਤਾਨ ਬੁਨਿਆਦ ਦੇ ਨਾਲ, ਇਸ ਲਈ ਸਭ ਨੂੰ ਇਸ ਨੂੰ ਕਿਸੇ ਵੀ ਵਾਰ ਭੁਗਤਾਨ ਕਰ ਸਕਦਾ ਹੈ ਇੱਕ ਨੰਬਰ ਤੁਹਾਨੂੰ ਚੁਣਿਆ ਹੈ. pay_invoice.

ਇੱਕ Wallet ਨੂੰ ਸੰਪਰਕ ਕਰੋ

POST https://nymbot.ai/api/v1/nwc-auto-topup/connect ਪੋਸਟ ਕੀਤਾ

ਫੀਲਡਕਿਸਮਦੀ ਲੋੜਚਿੱਤਰ
nwc_urlਸਟੀਲਹਾਂਸੰਪਰਕ ਲੰਬਾਈ, ਸ਼ੁਰੂ nostr+walletconnect://. Nymbot ਪੈਕੇਜ ਦੀ ਲੋੜ ਹੈ get_info ਇਸ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ, ਅਤੇ ਇਸ ਨੂੰ ਕ੍ਰੈਡਿਟ ਕਰਨ ਲਈ.
threshold_satsਨਿੱਜੀਹਾਂਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ
topup_satsਨਿੱਜੀਹਾਂਹਰ ਵਾਰ ਕੀ ਸ਼ਾਮਿਲ ਕਰੋ. 1,000 ਤੋਂ 1,000,000 sats.
tierਸਟੀਲਕੋਈpro (ਉਦਾਹਰਨ ਲਈ) or 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ਆਟੋਮੈਟਿਕ Top-ups ਇਸ ਸਰਵਰ ਲਈ ਇੰਸਟਾਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ (nwc_unavailable). ਇਹ ਵੀ ਹੋਰ ਦੋ endpoints ਲਈ ਲਾਗੂ ਹੁੰਦਾ ਹੈ.

cURL

URL=https://nymbot.ai/api/v1/nwc-auto-topup/connect
BODY='{"nwc_url":"nostr+walletconnect://...","threshold_sats":5000,"topup_sats":20000,"tier":"pro"}'
curl "$URL" \
  -H "Authorization: $(nostr_auth POST "$URL" "$BODY")" \
  -H "Content-Type: application/json" \
  -d "$BODY"

Python

import json, os
import requests

url = "https://nymbot.ai/api/v1/nwc-auto-topup/connect"
body = json.dumps({
    "nwc_url": os.environ["NWC_URL"],
    "threshold_sats": 5000,
    "topup_sats": 20000,
    "tier": "pro",
}).encode()
res = requests.post(
    url,
    data=body,
    headers={"Authorization": nostr_auth("POST", url, body), "Content-Type": "application/json"},
)
print(res.json())

JavaScript

const url = "https://nymbot.ai/api/v1/nwc-auto-topup/connect";
const body = JSON.stringify({
  nwc_url: process.env.NWC_URL,
  threshold_sats: 5000,
  topup_sats: 20000,
  tier: "pro",
});
const res = await fetch(url, {
  method: "POST",
  headers: { "Authorization": nostrAuth("POST", url, body), "Content-Type": "application/json" },
  body,
});
console.log(await res.json());

ਚੈੱਕ Settings

GET https://nymbot.ai/api/v1/nwc-auto-topup ਪੋਸਟ ਕੀਤਾ

ਫੈਬਰਿਕ ਫੈਬਰਿਕ ਫੈਬਰਿਕ 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 ਪੋਸਟ ਕੀਤਾ

ਕਾਪੀਰਾਈਟ © 2018 ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ

ਜਵਾਬ

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

ਭੁਗਤਾਨ ਕਰਨ ਲਈ ਕੋਈ ਸ਼ਿਪਿੰਗ ਨਹੀਂ

ਫਾਰਮੈਟ ਕੀਮਤ 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 'ਤੇ ਇੱਕ ਵੀ ਵਿਚਾਰ ਦੇ ਦੋ ਵਰਜਨ ਦਾ ਦੌਰਾ ਕਰਦਾ ਹੈ L402 (ਇਸ ਵੀ ਇਸ ਦੇ ਆਧੁਨਿਕ ਨਾਮ 'ਤੇ ਪ੍ਰਾਪਤ ਕੀਤਾ ਗਿਆ ਹੈ, LSAT) ਅਤੇ IETF ਪ੍ਰੋਜੈਕਟ ਵਿਕਰੀ ਨਾਲ HTTP ਪ੍ਰਮਾਣਿਕਤਾ ਸਕੀਮ lightning ਤਰੀਕੇ ਅਤੇ charge ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ

ਆਪਣੇ ਆਪ ਨੂੰ ਸਰਵਰ ਚਲਾਉਣ

ਭੁਗਤਾਨ ਕਰਨ ਲਈ ਕੋਈ ਕੁੰਜੀ ਨਹੀਂ ਹੈ ਸਿਰਫ ਜਦ API_L402_SECRET ਹੈਕਸ (64 ਅੱਖਰ) ਜਾਂ ਬੇਸ 64 (44) ਦੇ ਰੂਪ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ 32 ਰੈਂਡਮ ਬਾਈਟ ਰੱਖੋ। openssl rand -hex 32. ਇੱਕ ਛੋਟੇ ਜ ਸੰਕਟਕਾਲੀਨ ਕੀਮਤ ਫੀਚਰ ਨੂੰ ਬੰਦ ਕਰਦੀ ਹੈ ਅਤੇ ਇਸ ਲਈ ਲੋਗ ਕਰਦੀ ਹੈ. ਇਸ ਨੂੰ ਤਬਦੀਲ ਕਰਨ ਲਈ, ਆਧੁਨਿਕ ਕੀਮਤ ਨੂੰ API_L402_SECRET_PREVIOUS ਇੱਕ ਦਿਨ ਲਈਃ ਪ੍ਰਮਾਣ ਪੱਤਰ, ਸਥਿਤੀ ਯੂਆਰਐਲ ਅਤੇ ਇਸ ਦੇ ਤਹਿਤ ਕੀਤੀਆਂ ਗਈਆਂ ਚੁਣੌਤੀਆਂ ਉਦੋਂ ਤੱਕ ਕੰਮ ਕਰਦੀਆਂ ਰਹਿੰਦੀਆਂ ਹਨ ਜਦੋਂ ਤੱਕ ਉਨ੍ਹਾਂ ਦੀ ਮਿਆਦ ਖਤਮ ਨਹੀਂ ਹੋ ਜਾਂਦੀ।

ਫੇਸਬੁੱਕ

ਪੋਸਟ ਕਰਨ ਲਈ No Authorization ਸਿਰਲੇਖ। ਜੇ ਇਹ ਸਹੀ ਹੈ, ਤਾਂ ਕੁਝ ਵੀ ਨਹੀਂ ਚੱਲਦਾ, ਅਤੇ ਤੁਸੀਂ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ 402 Payment Required ਇੱਕ ਫੀਚਰ ਦੇ ਨਾਲ, ਜੋ ਕਿ ਖਰੀਦਣ ਦੀ ਕੀਮਤ ਦੀ ਸ਼ੁੱਧਤਾ ਲਈ ਹੈ: ਇੱਕ ਕੁੰਜੀ ਦੀ ਇੱਕ ਵੀ ਕੀਮਤ ਭੁਗਤਾਨ ਕਰੇਗਾ, ਇੱਕ ਮਿਆਰੀ ਕ੍ਰੈਡਿਟ ਲਈ 10 sats ਜ 100 sats ਇੱਕ ਪ੍ਰੋ ਕ੍ਰੈਡਿਟ 'ਤੇ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਇੱਕ ਪੂਰਾ sat (ਅਤੇ ਘੱਟੋ ਘੱਟੋ ਘੱਟੋ ਘੱਟ 1 sat, ਅਤੇ ਘੱਟੋ ਘੱਟੋ ਘੱਟੋ ਘੱਟ 0.05 ਕ੍ਰੈਡਿਟ ਘੱਟੋ ਘੱਟੋ ਘੱਟ). WWW-Authenticate ਸਹੀ ਫੈਕਟਰੀ ਲਈ ਤਜਰਬੇ:

HTTP/1.1 402 Payment Required
Content-Type: application/problem+json; charset=utf-8
Cache-Control: no-store
WWW-Authenticate: L402 macaroon="AgJC...", invoice="lnbc2370n1..."
WWW-Authenticate: LSAT macaroon="AgJC...", invoice="lnbc2370n1..."
WWW-Authenticate: Payment id="kM9x...", realm="nymbot", method="lightning", intent="charge",
    request="eyJhbW91bnQiOiIyMzciLC...", description="Nymbot API POST /images/generations (237 sats)",
    digest="sha-256=:X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=:", expires="2026-09-30T12:15:00.000Z",
    opaque="eyJlbmRwb2ludCI6IlBPU1QgL2ltYWdlcy9nZW5lcmF0aW9ucyJ9"

{
  "type": "https://paymentauth.org/problems/payment-required",
  "title": "Payment Required",
  "status": 402,
  "detail": "This request costs 237 sats. Pay the Lightning invoice, then send the identical request again ...",
  "challengeId": "kM9x...",
  "amount_sats": 237,
  "invoice": "lnbc2370n1...",
  "payment_hash": "9db1370f...",
  "expires_at": "2026-09-30T12:15:00.000Z",
  "error": { "message": "This request costs 237 sats. ...", "type": "payment_required", "code": "payment_required", "param": null }
}

ਭੁਗਤਾਨ request ਐਪਲੀਕੇਸ਼ਨ: base64url JSON {"amount":"237","currency":"sat","methodDetails":{"invoice":"lnbc...","network":"mainnet","paymentHash":"..."}}.

ਇੱਕ ਤਜਰਬੇ ਨੂੰ ਆਯੋਜਿਤ ਕੀਤਾ ਗਿਆ ਹੈ endpoint, ਨੂੰ Content-Type (ਇਸ ਦੇ ਮੀਡੀਆ ਦੀ ਕਿਸਮ ਅਤੇ, multipart ਲਈ, ਇਸ ਦੇ ਲੰਬਾਈ) ਅਤੇ SHA-256 ਨੂੰ ਅਸਲ ਸਰੀਰ ਦੇ ਬਾਈਟਸ ਤੁਹਾਨੂੰ ਪੋਸਟ ਕੀਤਾ ਹੈ, ਅਤੇ 15 ਮਿੰਟ ਦੀ ਲੰਬਾਈ ਹੈ. ਭੁਗਤਾਨ ਦੇ ਬਾਅਦ, ਇੱਕੋ ਜਿਹਾ ਰਜਿਸਟਰੇਸ਼ਨ: ਇਹ ਵੀ Content-Type ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ/images/edits, /audio/transcriptions, /audio/translations) ਇੱਕੋ ਸੀਮਾ ਦੇ ਨਾਲ ਇੱਕੋ ਮਲਟੀਪਾਰਟ ਬਾਡੀ। ਜ਼ਿਆਦਾਤਰ HTTP ਲਾਇਬ੍ਰੇਰੀਆਂ ਹਰ ਵਾਰ ਇੱਕ ਫਾਰਮ ਨੂੰ ਇੰਕੋਡ ਕਰਨ ਵੇਲੇ ਇੱਕ ਨਵੀਂ ਸੀਮਾ ਚੁਣਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਇਸ ਨੂੰ ਇੱਕ ਵਾਰ ਇੰਕੋਡ ਕਰੋ ਅਤੇ ਉਹਨਾਂ ਬਾਈਟਾਂ ਨੂੰ ਦੋ ਵਾਰ ਭੇਜੋ।

ਸਾਡੇ ਉਤਪਾਦ ਜ pricelist ਬਾਰੇ ਪੁੱਛ-ਗਿੱਛ ਲਈ, ਸਾਡੇ ਲਈ ਆਪਣੇ ਈ-ਮੇਲ ਨੂੰ ਛੱਡ, ਕਿਰਪਾ ਕਰਕੇ ਹੈ ਅਤੇ ਸਾਨੂੰ ਸੰਪਰਕ ਵਿੱਚ 24 ਘੰਟੇ ਦੇ ਅੰਦਰ-ਅੰਦਰ ਹੋ ਜਾਵੇਗਾ. 429 ਨਾਲ Retry-Afterਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ - ਕਾਪੀਰਾਈਟ © 2018 ਟੈਟੂ ਕਲਾ ਦੇ ਵਿਚਾਰ Content-Type ਕੋਈ application/json (ਅਤੇ multipart/form-data ਕ੍ਰੈਡਿਟ ਲਈ) ਰਜਿਸਟਰ ਕੀਤਾ ਗਿਆ ਹੈ 415 ਅਤੇ ਕੋਈ ਵੀ ਫੀਚਰ ਨਹੀਂ ਪ੍ਰਾਪਤ ਕਰੋ.

ਬਿਲਡਿੰਗ ਦਾ ਕੀਮਤ ਇੰਪੁੱਟ ਵਿੱਚ ਟੈਕਨ ਦੀ ਇੱਕ ਮਿਆਦ ਦੇ ਨਾਲ ਹੈ, ਇੱਕ 1.5× ਮਿਆਦ ਦੇ ਨਾਲ ਹੈ, ਕਿਉਕਿ ਅਸਲ ਕੁੱਲ ਸਿਰਫ ਬਾਅਦ ਜਾਣਿਆ ਗਿਆ ਹੈ. ਤੁਹਾਨੂੰ ਅਸਲ ਵਿੱਚ ਵਰਤਿਆ ਟੈਕਨ ਲਈ ਭੁਗਤਾਨ ਕਰ ਰਹੇ ਹਨ, ਅਤੇ ਭੁਗਤਾਨ ਦਾ ਨਿੱਜੀ ਹਿੱਸਾ ਇੱਕ ਦੇ ਤੌਰ ਤੇ ਵਾਪਸ ਆਉਂਦਾ ਹੈ ਰਿਫੰਡ ਟੋਕਨ.

ਭੁਗਤਾਨ ਭੇਜਣਾ

ਫੀਚਰ ਨੂੰ ਕਿਸੇ ਵੀ Lightning wallet ਨਾਲ ਭੁਗਤਾਨ ਕਰੋ. ਫੇਸਬੁੱਕ ਤੁਹਾਨੂੰ preimage, 64 hex characters ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ. ਫਿਰ ਇਸ ਦੇ ਇੱਕ ਦੇ ਨਾਲ ਇਸ ਨੂੰ ਵੀ ਦੀ ਪੇਸ਼ਕਸ਼ ਭੇਜੋ:

ਸਿਸਟਮਮੁੱਖ
L402Authorization: L402 <macaroon>:<preimage> (LSAT ਵੀ ਕੰਮ ਕਰਦਾ ਹੈ)
ਵਿਕਰੀAuthorization: Payment <base64url JSON>ਜੇ JSON {"challenge": {every parameter of the challenge, as sent}, "payload": {"preimage": "<hex>"}}

ਇੱਕ ਭੁਗਤਾਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ, ਇਸ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਕੁੰਜੀ ਦੇ ਨਾਲ ਕੀਤਾ ਗਿਆ ਹੈ. nymbot Object ਕੋਈ ਬਿਲਡਿੰਗ ਫੇਸਬੁੱਕ ਹੈ: {"payment": "l402", "tier": "pro", "paid_sats": 237, "charged_sats": 237}ਅਤੇ ਇੱਥੇ ਕੋਈ ਨਹੀਂ ਹੈ X-Nymbot-Balance-Sats header. A request paid with the Payment scheme also gets a Payment-Receipt header (base64url JSON with the challenge id, ਫੀਚਰ hash as reference, status ਅਤੇ timestamp). ਪੇਸ਼ਾਵਰ ਸਵਾਲ ਕਿਸੇ ਵੀ ਨਾਈਮ ਦੇ ਨਾਲ ਜੁੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਇਸ ਲਈ ਉਹ ਸਵਾਲ ਦੀ ਇਤਿਹਾਸ ਵਿੱਚ ਨਿੱਜੀ ਨਹੀਂ ਹੁੰਦੇ ਹਨ.

ਸਥਿਤੀਕਦਮ
402 payment_already_usedਸਾਡੇ ਉਤਪਾਦ ਜ pricelist ਬਾਰੇ ਪੁੱਛ-ਗਿੱਛ ਲਈ, ਸਾਡੇ ਲਈ ਆਪਣੇ ਈ-ਮੇਲ ਨੂੰ ਛੱਡ, ਕਿਰਪਾ ਕਰਕੇ ਹੈ ਅਤੇ ਸਾਨੂੰ ਸੰਪਰਕ ਵਿੱਚ 24 ਘੰਟੇ ਦੇ ਅੰਦਰ-ਅੰਦਰ ਹੋ ਜਾਵੇਗਾ. lnget ਬੁਨਿਆਦ ਨੂੰ ਬੁਨਿਆਦ ਨੂੰ ਬੁਨਿਆਦ ਨੂੰ
402 payment_mismatchਪ੍ਰਮਾਣ ਪੱਤਰ ਇੱਕ ਹੋਰ ਅੰਤਮ ਬਿੰਦੂ ਲਈ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਸੀ, Content-Type ਜ ਸਰੀਰ ਨੂੰ, ਜ ਇਸ ਸਰੀਰ ਨੂੰ ਹੁਣ ਕੀਮਤ ਤੋਂ ਘੱਟ ਭੁਗਤਾਨ ਕਰਦਾ ਹੈ. ਇਸ ਸਰੀਰ ਦੇ ਲਈ ਇੱਕ ਨਵ ਤਜਰਬਾ ਇਸ ਸਰੀਰ ਦੇ ਨਾਲ ਆਇਆ ਹੈ; ਜੇ ਭੁਗਤਾਨ ਬਹੁਤ ਹੀ ਛੋਟਾ ਸੀ, ਜੇ, ਤੁਹਾਨੂੰ ਭੁਗਤਾਨ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਭੁਗਤਾਨ ਦੇ ਤੌਰ ਤੇ ਭੁਗਤਾਨ ਕੀਤਾ ਗਿਆ ਹੈ ਰਿਫੰਡ ਟੋਕਨ (refund_token ਅਤੇ refund_sats ਸਰੀਰ ਵਿੱਚ )
402 payment_expiredਸਾਡੇ ਉਤਪਾਦ ਜ pricelist ਬਾਰੇ ਪੁੱਛ-ਗਿੱਛ ਲਈ, ਸਾਡੇ ਲਈ ਆਪਣੇ ਈ-ਮੇਲ ਨੂੰ ਛੱਡ, ਕਿਰਪਾ ਕਰਕੇ ਹੈ ਅਤੇ ਸਾਨੂੰ ਸੰਪਰਕ ਵਿੱਚ 24 ਘੰਟੇ ਦੇ ਅੰਦਰ-ਅੰਦਰ ਹੋ ਜਾਵੇਗਾ. ਰਿਫੰਡ ਟੋਕਨ (refund_token ਅਤੇ refund_sats ਸਰੀਰ ਵਿੱਚ), ਇੱਕ ਵਾਰ; ਪ੍ਰਮਾਣ ਪੱਤਰ ਫਿਰ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
401 invalid_preimageਪ੍ਰੀਇਮੇਜ ਇਨਵੁਆਇਸ ਦੇ ਭੁਗਤਾਨ ਹੈਸ਼ ਨੂੰ ਹੈਸ਼ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਭੁਗਤਾਨ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ।
401 invalid_payment_credentialਇਹ ਕ੍ਰੈਡਿਟ ਫਾਰਮੈਟ ਕੀਤਾ ਗਿਆ ਹੈ, Nymbot ਇਸ ਨੂੰ ਪ੍ਰਦਾਨ ਕਰਨ ਦੇ ਬਾਅਦ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਾਂ Nymbot ਕੋਈ ਵੀ ਫਾਰਮੈਟ ਪ੍ਰਦਾਨ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਭੁਗਤਾਨ ਹੈਕ ਦਾ ਨਾਮ ਹੈ. ਇੱਕ macaroon ਦੇ ਨਾਲ ਇੱਕ caveat Nymbot ਪਤਾ ਨਹੀ ਹੈ, ਜ ਸੰਕਟਕਾਲੀਨ caveats ਦੇ ਨਾਲ, ਰਜਿਸਟਰ ਕੀਤਾ ਗਿਆ ਹੈ.
429 rate_limit_exceeded30 ਤੋਂ ਵੱਧ ਪ੍ਰਮਾਣ ਪੱਤਰ ਜਾਂ ਕੁੰਜੀਆਂ ਜੋ ਤਸਦੀਕ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਹੀਆਂ, ਇੱਕ ਮਿੰਟ ਵਿੱਚ ਇਸ ਪਤੇ ਤੋਂ ਆਈਆਂ, ਜਾਂ ਇੱਕ ਰਿਫੰਡ ਟੋਕਨ ਇੱਕ ਮਿੰਟ ਵਿੱਚ 60 ਤੋਂ ਵੱਧ ਵਾਰ ਭੇਜਿਆ ਗਿਆ। Retry-After.

cURL

BODY='{"model":"nano-banana","prompt":"a lighthouse at dusk","response_format":"b64_json"}'
URL=https://nymbot.ai/api/v1/images/generations

# 1. Get the challenge
CH=$(curl -s -D - -o /dev/null "$URL" -H "Content-Type: application/json" -d "$BODY" | grep -i '^www-authenticate: L402')
MAC=$(echo "$CH" | sed -E 's/.*macaroon="([^"]+)".*/\1/')
INVOICE=$(echo "$CH" | sed -E 's/.*invoice="([^"]+)".*/\1/')

# 2. Pay $INVOICE with your wallet and copy the preimage
PREIMAGE=...

# 3. Send the identical request with the credential
curl "$URL" -H "Content-Type: application/json" -H "Authorization: L402 $MAC:$PREIMAGE" -d "$BODY"

lnget

# lnget (Lightning Labs) pays L402 challenges from your own lnd node and retries for you
lnget -X POST -H "Content-Type: application/json" \
  -d '{"model":"nano-banana","prompt":"a lighthouse at dusk","response_format":"b64_json"}' \
  https://nymbot.ai/api/v1/images/generations

Python

import base64, json, re
import requests

url = "https://nymbot.ai/api/v1/images/generations"
body = json.dumps({"model": "nano-banana", "prompt": "a lighthouse at dusk", "response_format": "b64_json"}).encode()
headers = {"Content-Type": "application/json"}

challenge = requests.post(url, data=body, headers=headers)
assert challenge.status_code == 402
info = challenge.json()
print("Pay", info["amount_sats"], "sats:", info["invoice"])

preimage = pay_with_your_wallet(info["invoice"])  # 64 hex characters

# L402
mac = re.search(r'L402 macaroon="([^"]+)"', challenge.headers["WWW-Authenticate"]).group(1)
res = requests.post(url, data=body, headers={**headers, "Authorization": f"L402 {mac}:{preimage}"})
print(res.json()["nymbot"])

JavaScript

const url = "https://nymbot.ai/api/v1/images/generations";
const body = JSON.stringify({ model: "nano-banana", prompt: "a lighthouse at dusk", response_format: "b64_json" });
const headers = { "Content-Type": "application/json" };

const challenge = await fetch(url, { method: "POST", headers, body });
const www = challenge.headers.get("www-authenticate");

// The Payment scheme: echo every challenge parameter back with the preimage
const start = www.indexOf("Payment ");
const params = Object.fromEntries([...www.slice(start + 8).matchAll(/(\w+)="((?:[^"\\]|\\.)*)"/g)].map((m) => [m[1], m[2]]));
const { invoice } = JSON.parse(Buffer.from(params.request, "base64url").toString()).methodDetails;
const preimage = await payWithYourWallet(invoice);

const credential = Buffer.from(JSON.stringify({ challenge: params, payload: { preimage } })).toString("base64url");
const res = await fetch(url, { method: "POST", headers: { ...headers, Authorization: `Payment ${credential}` }, body });
console.log((await res.json()).nymbot, res.headers.get("payment-receipt"));

ਗਾਹਕ ਬਣਾਏ ਗਏ mppx ਇੱਕ Lightning ਤਰੀਕੇ ਨਾਲ, ਭੁਗਤਾਨ ਦਾ ਤਜਰਬਾ ਆਪਣੇ ਆਪ ਨੂੰ ਕਰ ਸਕਦੇ ਹੋ; ਉਹ ਅੰਤ ਪਿੰਟ 'ਤੇ ਹੈ ਅਤੇ ਉਹ ਭੁਗਤਾਨ ਕਰ ਸਕਦੇ ਹੋ.

ਵੀਡੀਓ

ਭੁਗਤਾਨ POST /videos ਜਵਾਬ 202 ਇੱਕ keyed one ਦੇ ਤੌਰ ਤੇ, ਪਲੱਸ a status_url: GET ਇਹ ਕੰਮ ਕਰਨ ਲਈ ਕੋਈ ਕੁੰਜੀ ਨਹੀਂ ਹੈ. ਇਹ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ 24 ਘੰਟੇ ਲਈ ਕੰਮ ਕਰਦਾ ਹੈ, ਜਦਕਿ ਕੰਮ ਰੱਖਿਆ ਗਿਆ ਹੈ.

{
  "id": "vid_...",
  "status": "in_progress",
  "status_url": "https://nymbot.ai/api/v1/videos/vid_...?exp=1790000000&sig=...",
  "nymbot": {
    "payment": "l402", "tier": "pro", "paid_sats": 4800, "charged_sats": 4800,
    "refund_token": "REFUND-5E0B..."
  }
}

ਰੱਖੋ। refund_token ਇਸ ਤਰੀਕੇ ਨਾਲ: ਇਸ ਨੂੰ ਸਿਰਫ ਇੱਥੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ. ਇਸ ਨੂੰ ਬੁਰਸ਼ ਹੈ, ਜਦਕਿ ਵੀਡੀਓ ਰੀਡਿੰਗ (GET /api/v1/l402/refunds ਜਵਾਬ "status": "pending"); ਜੇ ਰੈਂਡਰ ਬਿਨਾਂ ਬਿੱਲ ਦੇ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਭੁਗਤਾਨ ਇਸ ਉੱਤੇ ਆ ਜਾਂਦਾ ਹੈ। ਸਥਿਤੀ URL ਦਰਸਾਉਂਦਾ ਹੈ refund_sats ਇੱਕ ਤਬਦੀਲ ਕਰੀਏ ਲਈ, ਪਰ ਕੋਈ ਵੀ ਟੈਕਨ ਨੂੰ, ਇਸ ਲਈ ਸਥਿਤੀ URL ਨੂੰ ਹਿੱਸਾ ਲੈਣ ਲਈ ਇੱਕ ਤਬਦੀਲ ਕਰੀਏ ਨੂੰ ਹਿੱਸਾ ਲੈਣ ਲਈ ਨਹੀਂ ਹੈ. ਟੈਕਨ ਨੂੰ ਚੈੱਕ ਕਰਨ ਲਈ ਵੀ ਇੱਕ ਤਬਦੀਲ ਕਰੀਏ ਨੂੰ ਹਿੱਸਾ ਲੈਣ ਲਈ ਹੈ, ਜੋ ਕਿ ਕੋਈ ਵੀ ਖੋਜ ਕੀਤਾ ਗਿਆ ਸੀ.

ਫੀਚਰ

ਜੇ ਇੱਕ ਭੁਗਤਾਨ ਦੀ ਸਹਾਇਤਾ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਸਪਲਾਇਰ ਤਬਦੀਲ ਕਰਨ ਲਈ 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 ਆਟੋਮੈਟਿਕ ਡਿਸਪਲੇਅ ਨੂੰ ਇੱਕ ਭੁਗਤਾਨ ਟੈਕਨ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਭੁਗਤਾਨ ਟੈਕਨ ਹੈ; ਇੱਕ ਟੈਕਨ ਹੈ, ਜੋ ਕਿ ਲੰਬਾਈ ਅੱਗੇ ਚੈੱਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜੋ ਕਿ ਲੰਬਾਈ ਹੈ, ਫਾਇਲ ਦੀ ਲੰਬਾਈ ਦੇ ਤੌਰ ਤੇ ਕੀਮਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ (ਕੁਜੇ ਵੀ 30 ਮਿੰਟ ਵੱਧ ਹੈ), ਅਤੇ ਭੁਗਤਾਨ ਟੈਕਨ ਦੇ ਤੌਰ ਤੇ ਭੁਗਤਾਨ ਟੈਕਨ ਹੈ, ਜੋ ਕਿ ਭੁਗਤਾਨ ਟੈਕਨ ਹੈ; ਜੇ ਇਸ ਨੂੰ 30 ਮਿੰਟ ਵੱਧ ਹੈ, ਤਾਂ ਇਸ ਨੂੰ ਭੁਗਤਾਨ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. 413 ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ

ਇੱਕ ਤਬਦੀਲੀ ਟੈਕਨ ਇੱਕ ਤਬਦੀਲੀ 256-ਬਿੱਟ ਕੋਡ ਹੈ. Nymbot ਸਿਰਫ ਇਸ ਦੇ ਹੈਸ਼ ਨੂੰ ਸਟੋਰੇਜ਼ ਕਰਦੀ ਹੈ, ਅਤੇ ਇਸ ਨੂੰ 30 ਦਿਨ ਦੇ ਬਾਅਦ ਤਬਦੀਲ ਕਰਦੀ ਹੈ. ਇਹ ਇੱਕ ਸਟੀਟ ਬਾਲਗ ਹੈ, ਅਤੇ ਤੁਹਾਨੂੰ ਕਰ ਸਕਦੇ ਹੋ:

  • ਇਸ ਦੇ ਨਾਲ ਭੁਗਤਾਨ. ਭੇਜੋ। Authorization: Bearer REFUND-… ਉੱਪਰ ਦਿੱਤੇ ਕਿਸੇ ਵੀ ਅੰਤਮ ਬਿੰਦੂ ਉੱਤੇ (ਇੱਕ ਓਪਨਏਆਈ ਐੱਸਡੀਕੇ ਇਸ ਨੂੰ ਆਪਣੀ ਏਪੀਆਈ ਕੁੰਜੀ ਵਜੋਂ ਲੈਂਦਾ ਹੈ)। ਕੀਮਤ ਟੋਕਨ ਤੋਂ ਆਉਂਦੀ ਹੈ ਅਤੇ ਜੋ ਬਚਿਆ ਹੈ ਉਹ ਇਸ ਉੱਤੇ ਰਹਿੰਦਾ ਹੈ (refund_token_sats ਬਾਲਗ nymbot ਆਬਜੈਕਟ). ਬੇਨਤੀ ਦੇ ਜਵਾਬਾਂ ਨਾਲੋਂ ਘੱਟ ਮੁੱਲ ਦਾ ਇੱਕ ਟੋਕਨ 402 refund_insufficientਇੱਕ ਬੇਲੋਡ਼ੀ ਅਸਫਲਤਾ ਸੈਟਸ ਨੂੰ ਉਸੇ ਟੋਕਨ ਉੱਤੇ ਵਾਪਸ ਰੱਖਦੀ ਹੈ।
  • ਇਸ ਨੂੰ ਚੈੱਕ GET /api/v1/l402/refunds ਇੱਕੋ ਸਿਰਲੇਖ ਨਾਲ ਵਾਪਸ ਆਉਂਦਾ ਹੈ {"sats": 237, "status": "open", "expires_at": "..."}.
  • ਇੱਕ ਟੋਕਨ ਇੱਕ ਮਿੰਟ ਵਿੱਚ ਵੱਧ ਤੋਂ ਵੱਧ 60 ਵਾਰ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ।
  • ਇਸ ਨੂੰ ਇੱਕ ਐੱਨ. ਆਈ. ਐੱਮ. ਉੱਤੇ ਲੈ ਜਾਓ। ਪੇਸਟ ਕਰੋ ਇੱਕ ਤੋਹਫ਼ਾ ਪ੍ਰਾਪਤ ਕਰੋ ਨਿੰਬੋਟ ਐਪ ਵਿੱਚ, ਜਾਂ ਕਾਲ ਕਰੋ POST /api/v1/l402/refunds/redeem ਇੱਕ ਦੇ ਨਾਲ ਪ੍ਰਾਈਵੇਟ ਪੋਸਟ ਅਤੇ {"refund_token": "REFUND-...", "balance": "standard"} (ਅਤੇ "pro"ਕ੍ਰੈਡਿਟ ਕ੍ਰੈਡਿਟ ਬਿਲਡਿੰਗ ਲਈ ਜਾ ਰਿਹਾ ਹੈ (10 ਸਟਾਸ, ਪ੍ਰੋ ਲਈ 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 } }