Skip to content
Translated page. The English version is the source of truth.

GET /apiv2/pricing

عالمگیر قیمتوں کا اینڈپوائنٹ جو متحرک ادوار کے ساتھ ایک ہی رسپانس میں تمام سروس کی قیمتیں واپس کرتا ہے۔

تکمیل کے دوران قیمت تبدیل ہو سکتی ہے

اس اینڈپوائنٹ کی طرف سے واپس کی جانے والی قیمت آرڈر پروسیسنگ کے دوران تبدیل ہو سکتی ہے۔ ایک Energy فراہم کنندہ ڈیلیگیشن کی درخواست مسترد کر سکتا ہے، ایسی صورت میں Netts خودکار طور پر آرڈر کو اگلے دستیاب فراہم کنندہ کی طرف بھیج دیتا ہے۔ Netts نہ صرف سب سے زیادہ مسابقتی قیمت پیش کرنے کے لیے پرعزم ہے، بلکہ قابل اعتماد Energy کی فراہمی کو یقینی بنانے کے لیے بھی کوشاں ہے — اس لیے کوئی آرڈر کوٹ کی گئی قیمت سے زیادہ قیمت پر مکمل ہو سکتا ہے۔ یہ صرف 300,000 Energy یونٹس اور اس سے زیادہ کے آرڈرز پر لاگو ہوتا ہے۔

تجویز کردہ

یہ تجویز کردہ قیمتوں کا اینڈپوائنٹ ہے۔ یہ پرانے /apiv2/prices اینڈپوائنٹ کی جگہ لیتا ہے جسے منسوخ کر دیا جائے گا۔

اینڈپوائنٹ URL

GET https://netts.io/apiv2/pricing

درخواست کے ہیڈرز

ہیڈرلازمیتفصیلاقدار
X-API-KEYہاںآپ کی API کلیدسٹرنگ
X-Real-IPہاںوائٹ لسٹ سے IP ایڈریسIP ایڈریس
X-Formatنہیںرسپانس فارمیٹ (طے شدہ: مکمل JSON)now, compact, short, short1h, count

استفسار کے پیرامیٹرز

پیرامیٹرقسمطے شدہتفصیل
servicesسٹرنگallشامل کرنے کے لیے سروسز کا کوما سے الگ کردہ فلٹر

دستیاب سروسز

سروستفصیل
energy_1h1 گھنٹے کی Energy ڈیلیگیشن کی قیمتیں
energy_5m5 منٹ کی Energy ڈیلیگیشن کی قیمتیں
hostHost Energy ڈیلیگیشن کی شرحیں
amlAML ایڈریس چیک کی قیمتیں
bandwidthBandwidth کرایہ کی قیمتیں — آپٹ اِن: صرف اس وقت واپس کی جاتی ہیں جب واضح طور پر ?services=bandwidth کے ذریعے درخواست کی جائے (طے شدہ رسپانس کا حصہ نہیں ہے)

درخواستوں کی مثالیں

cURL — مکمل رسپانس

bash
curl -X GET https://netts.io/apiv2/pricing \
  -H "X-API-KEY: your_api_key" \
  -H "X-Real-IP: your_whitelisted_ip"

cURL — سروسز کے لحاظ سے فلٹر کریں

bash
# Only energy 1h prices
curl -X GET "https://netts.io/apiv2/pricing?services=energy_1h" \
  -H "X-API-KEY: your_api_key" \
  -H "X-Real-IP: your_whitelisted_ip"

# Energy 1h + AML
curl -X GET "https://netts.io/apiv2/pricing?services=energy_1h,aml" \
  -H "X-API-KEY: your_api_key" \
  -H "X-Real-IP: your_whitelisted_ip"

# Host prices only
curl -X GET "https://netts.io/apiv2/pricing?services=host" \
  -H "X-API-KEY: your_api_key" \
  -H "X-Real-IP: your_whitelisted_ip"

# Bandwidth rental prices (opt-in — must be requested explicitly)
curl -X GET "https://netts.io/apiv2/pricing?services=bandwidth" \
  -H "X-API-KEY: your_api_key" \
  -H "X-Real-IP: your_whitelisted_ip"

Python

python
import requests

url = "https://netts.io/apiv2/pricing"
headers = {
    "X-API-KEY": "your_api_key",
    "X-Real-IP": "your_whitelisted_ip"
}

response = requests.get(url, headers=headers)
data = response.json()

if data.get("success"):
    print(f"API version: {data['version']}")
    print(f"TRX/USD rate: {data['data']['trx_rate_usd']}")

    services = data["data"]["services"]

    for svc_name, svc_data in services.items():
        pricing_type = svc_data.get("pricing_type")
        print(f"\n--- {svc_name} ({pricing_type}) ---")

        if pricing_type == "periodic":
            for period in svc_data["periods"]:
                marker = " <-- current" if period["is_current"] else ""
                print(f"  {period['label']}: {period['price']} {svc_data['unit']}{marker}")

        elif pricing_type == "flat_rates":
            for rate, price in svc_data["rates"].items():
                print(f"  {rate}: {price} {svc_data['unit']}")

        elif pricing_type == "provider_based":
            for name, info in svc_data["providers"].items():
                status = "available" if info["available"] else "unavailable"
                print(f"  {name}: {info['price']} {svc_data['unit']} - {status}")

Python — سروسز کو فلٹر کریں

python
params = {"services": "energy_1h,aml"}
response = requests.get(url, headers=headers, params=params)

رسپانس کا ڈھانچہ

اوپری سطح کے فیلڈز

فیلڈقسمتفصیل
successبولینکامیاب درخواستوں کے لیے true
versionسٹرنگAPI ورژن (مثلاً "2.1")
timestampسٹرنگسرور کا وقت ISO 8601 UTC میں
dataآبجیکٹرسپانس پے لوڈ

ڈیٹا فیلڈز

فیلڈقسمتفصیل
data.trx_rate_usdنمبرموجودہ TRX/USD تبادلہ کی شرح
data.units_metaآبجیکٹمشین کے پڑھنے کے قابل یونٹ کی تبدیلی کی معلومات
data.servicesآبجیکٹقیمتوں کے ڈیٹا کے ساتھ درخواست کردہ سروسز کا نقشہ

یونٹس کا میٹا ڈیٹا

کلائنٹس کو پروگرام کے ذریعے یونٹس کے درمیان تبدیل کرنے کی اجازت دیتا ہے:

json
{
    "units_meta": {
        "sun": {"base": "trx", "multiplier": 1000000},
        "trx": {"base": "trx", "multiplier": 1},
        "usdt": {"base": "usdt", "multiplier": 1}
    }
}

SUN سے TRX میں تبدیل کرنے کے لیے: trx_price = sun_price / units_meta.sun.multiplier

سروس کے مشترکہ فیلڈز

ہر سروس میں یہ فیلڈز شامل ہیں:

فیلڈقسمتفصیل
unitسٹرنگقیمت کی اکائی (sun, trx, usdt)
pricing_typeسٹرنگاس سروس کا تجزیہ کیسے کریں (نیچے دیکھیں)
descriptionسٹرنگانسان کے پڑھنے کے قابل تفصیل
cache_ttlانٹیجریہ ڈیٹا کتنی بار ریفریش ہوتا ہے (سیکنڈز)

قیمتوں کی اقسام

pricing_type فیلڈ کلائنٹس کو بتاتا ہے کہ ہر سروس کا تجزیہ کیسے کیا جائے:

قسمڈھانچہاس کے ذریعے استعمال شدہ
periodicوقت پر مبنی قیمتوں کے ساتھ periods[] اریenergy_1h, energy_5m
flat_ratesمخصوص ریٹ کیز کے ساتھ rates{} آبجیکٹhost
provider_basedفراہم کنندہ کے ڈیٹا کے ساتھ providers{} آبجیکٹaml
tiered_by_amount_and_periodرقم کی حد کے لحاظ سے tiers[]، ہر ایک periods[] کے ساتھbandwidth

سروس: energy_1h / energy_5m

pricing_type: periodic

فیلڈقسمتفصیل
current_periodسٹرنگفی الوقت فعال مدت کا سلگ
periods[]اریقیمتوں کے تمام ادوار (متحرک، ڈیٹا بیس سے لوڈ کردہ)
periods[].idسٹرنگمنفرد مدت شناخت کنندہ (سلگ)
periods[].labelسٹرنگانسان کے پڑھنے کے قابل مدت کا نام
periods[].startسٹرنگمدت شروع ہونے کا وقت (HH:MM UTC)
periods[].endسٹرنگمدت ختم ہونے کا وقت (HH:MM UTC)
periods[].is_currentبولینآیا یہ مدت فی الوقت فعال ہے
periods[].priceانٹیجرقیمت فی Energy یونٹ SUN میں
periods[].tiersاری|خالیوالیوم پر مبنی قیمتوں کے درجات (درجات دیکھیں)

متحرک ادوار

ادوار کی تعداد، ان کے اوقات کی حدود، لیبلز اور قیمتیں سبھی متحرک ہیں اور سرور سائیڈ پر سنبھالی جاتی ہیں۔ مدت کے IDs یا گنتی کو ہارڈ کوڈ نہ کریں۔ ہمیشہ periods اری پر تکرار کریں۔


سروس: host

pricing_type: flat_rates

فیلڈقسمتفصیل
rates.standard_65kنمبر65k Energy کے لیے معیاری شرح (TRX)
rates.standard_131k_initialنمبر131k Energy کے لیے معیاری شرح، ابتدائی ایکٹیویشن (TRX)
rates.frequent_65kنمبر65k Energy کے لیے بار بار کی شرح (TRX)
rates.frequent_131kنمبر131k Energy کے لیے بار بار کی شرح (TRX)

سروس: aml

pricing_type: provider_based

فیلڈقسمتفصیل
providersآبجیکٹAML فراہم کنندگان کا نقشہ (متحرک، تبدیل ہو سکتا ہے)
providers[name].priceنمبرUSDT میں قیمت چیک کریں
providers[name].price_trxنمبرموجودہ شرح پر TRX میں تبدیل شدہ قیمت چیک کریں
providers[name].availableبولینآیا فراہم کنندہ کے پاس دستیاب کوٹہ موجود ہے

متحرک فراہم کنندگان

AML فراہم کنندگان ڈیٹا بیس سے لوڈ کیے جاتے ہیں۔ نئے فراہم کنندگان ظاہر ہو سکتے ہیں یا موجودہ غیر دستیاب ہو سکتے ہیں۔ ہمیشہ providers آبجیکٹ پر تکرار کریں۔


سروس: bandwidth

pricing_type: tiered_by_amount_and_period

آپٹ اِن اور رسائی

Bandwidth کی قیمتیں صرف اس وقت واپس کی جاتی ہیں جب واضح طور پر ?services=bandwidth کے ذریعے درخواست کی جائے — یہ طے شدہ رسپانس کا حصہ نہیں ہے۔ Bandwidth کرایہ کا اینڈپوائنٹ بذات خود درخواست پر دستیاب ہے؛ رسائی کے لیے سپورٹ سے رابطہ کریں۔ دیکھیے Bandwidth rental۔

Bandwidth کرایہ کی قیمت آرڈر کی رقم (یونٹ ٹیئر)، کرایہ کی مدت (مثلاً 5m / 1hدن کے وقت کی ونڈو (UTC) اور ہفتے کے دن پر منحصر ہوتی ہے۔ بنیادی قیمتیں SUN فی یونٹ میں ہیں؛ بنیادی قیمت کے علاوہ، مقررہ اضافی سرچارجز (TRX میں) لاگو ہو سکتے ہیں — تمام اقدار رسپانس میں واپس کی جاتی ہیں۔

رسپانس ایک سہولت کا منظر (tiersموجودہ ونڈو/دن کے لیے قیمتیں) اور مکمل گرڈ (windows + schedule — ہر کاروباری دن میں ہر ونڈو) دونوں فراہم کرتا ہے۔

موافق فارمیٹ — ہارڈ کوڈ نہ کریں

قیمتوں کا گرڈ مکمل طور پر ڈیٹا پر مبنی ہے اور کسی بھی وقت تبدیل ہو سکتا ہے: ٹائم ونڈوز کی تعداد، ان کے لیبلز، ان کے شروع/اختتام کے اوقات، کرایہ کی ادوار کا سیٹ (نئے ادوار شامل کیے جا سکتے ہیں یا ہٹائے جا سکتے ہیں)، رقم کے درجات، ہفتے کے دن کی تفصیل اور خود قیمتیں۔ کلائنٹس کو واپس آنے والے اریز (windows, schedule, tiers, periods) پر تکرار کرنی چاہیے اور قدر کے لحاظ سے میچ کرنا چاہیے — کبھی بھی مقررہ تعداد، مقررہ لیبلز، مقررہ اوقات یا مقررہ مدت کے ids کا قیاس نہ کریں۔ اس طرح لکھا گیا کوڈ اس وقت بھی کام کرتا رہتا ہے جب شیڈول تبدیل ہوتا ہے۔

فیلڈقسمتفصیل
unitسٹرنگsun_per_unit
windowسٹرنگموجودہ وقت کی ونڈو کا لیبل (UTC)
current_day_of_weekانٹیجرموجودہ ہفتے کا دن، ISO 1=پیر … 7=اتوار (UTC)
tiers[]اریموجودہ ونڈو/دن کے لیے رقم کے درجات (سہولت؛ وہی ساخت جو schedule کے اندر ہے)
windows[]اریتمام وقتی ونڈوز کی ڈائرکٹری (بڑھ/گھٹ/تبدیل ہو سکتی ہے)
windows[].labelسٹرنگونڈو کا لیبل
windows[].start / .endسٹرنگونڈو کا آغاز/اختتام HH:MM UTC (ایک ونڈو آدھی رات کو پار کر سکتی ہے، یعنی start > end)
schedule[]اریمکمل گرڈ — فی (ہفتے کا دن × ونڈو) ایک اندراج
schedule[].day_of_weekانٹیجرISO ہفتے کا دن 17
schedule[].windowسٹرنگونڈو لیبل (windows[].label سے ملتا ہے)
schedule[].period_start / .period_endسٹرنگHH:MM UTC
schedule[].is_currentبولینابھی فعال حصے کے لیے true
schedule[].tiers[]اریاس حصے کے لیے رقم کے درجات
tiers[].amount_minانٹیجرٹیئر کی نچلی حد (شامل ہے)
tiers[].amount_maxانٹیجر|خالیٹیئر کی بالائی حد (خارج ہے)۔ null = لامحدود
tiers[].periods[]اریٹیئر کے اندر کرایہ کی مدت کے لحاظ سے قیمتیں
tiers[].periods[].idسٹرنگکرایہ کی مدت کا id (مثلاً 5m, 1h) — تبدیل/بڑھ سکتا ہے
tiers[].periods[].rental_secondsانٹیجرمدت کی لمبائی سیکنڈز میں
tiers[].periods[].priceانٹیجرقیمت فی Bandwidth یونٹ SUN میں
surchargesآبجیکٹکلائنٹ کی قیمت میں مقررہ اضافے (TRX) — نیچے دیکھیں
limitsآبجیکٹآرڈر کی حدود: min_units, max_units

سرچارجز

فیلڈقسمتفصیل
surcharges.small_order_threshold_unitsانٹیجراس قدر سے کم amount والے آرڈرز پر چھوٹے آرڈر کا سرچارج لگتا ہے
surcharges.small_order_surcharge_trxنمبرچھوٹے ڈیلیگیشن آرڈرز کے لیے شامل کیا گیا (TRX) — آن چین ڈیلیگیشن + ریکلیم کا معاوضہ
surcharges.trx_send_surcharge_trxنمبراس وقت شامل کیا گیا (TRX) جب آرڈر TRX بھیج کر پورا کیا جائے — TRX منتقلی کا معاوضہ

مثال کے طور پر رسپانس

json
{
    "bandwidth": {
        "unit": "sun_per_unit",
        "pricing_type": "tiered_by_amount_and_period",
        "description": "Bandwidth delegation rental",
        "cache_ttl": 30,

        "window": "<current window label>",
        "current_day_of_week": 7,
        "tiers": [
            {
                "amount_min": 400,
                "amount_max": 1000,
                "periods": [
                    {"id": "5m", "rental_seconds": 300,  "price": "<price_sun>"},
                    {"id": "1h", "rental_seconds": 3600, "price": "<price_sun>"}
                ]
            },
            {"amount_min": 1000, "amount_max": 3000, "periods": ["..."]},
            {"amount_min": 3000, "amount_max": null,  "periods": ["..."]}
        ],

        "windows": [
            {"label": "<window label>", "start": "01:00", "end": "09:00"},
            {"label": "<window label>", "start": "14:00", "end": "00:00"}
        ],
        "schedule": [
            {
                "day_of_week": 1,
                "window": "<window label>",
                "period_start": "01:00",
                "period_end": "09:00",
                "is_current": false,
                "tiers": [
                    {"amount_min": 400, "amount_max": 1000, "periods": [
                        {"id": "5m", "rental_seconds": 300, "price": "<price_sun>"},
                        {"id": "1h", "rental_seconds": 3600, "price": "<price_sun>"}
                    ]}
                ]
            }
        ],

        "surcharges": {
            "small_order_threshold_units": 1000,
            "small_order_surcharge_trx": "<trx>",
            "trx_send_surcharge_trx": "<trx>"
        },
        "limits": {"min_units": 400, "max_units": 5000}
    }
}

schedule میں ہر (ہفتے کا دن × ونڈو) کے امتزاج کے لیے ایک اندراج ہوتا ہے — قیمتوں کا مکمل کیلنڈر دکھانے کے لیے اس پر تکرار کریں۔ بالکل ایک اندراج میں is_current: true ہوتا ہے۔

کلائنٹ لاجک (آرڈر کی قیمت کا حساب لگائیں)

"اس وقت کی قیمت" کے لیے tiers استعمال کریں۔ کسی دوسرے وقت کے لیے قیمت تلاش کرنے کے لیے، ہفتے کے دن + اس ونڈو کے لحاظ سے مماثل schedule اندراج منتخب کریں جس کے [period_start, period_end) میں وہ وقت شامل ہو (یاد رکھیں کہ جب start > end ہو تو ایک ونڈو آدھی رات کو پار کر سکتی ہے)، پھر اس کے tiers کا استعمال کریں۔

# price for the current moment:
for tier in bandwidth.tiers:
    if tier.amount_min <= amount < (tier.amount_max or infinity):
        for p in tier.periods:
            if p.id == requested_period:        # match by value, not by index
                base_trx = (p.price / units_meta.sun.multiplier) * amount
if amount < surcharges.small_order_threshold_units:
    base_trx += surcharges.small_order_surcharge_trx      # delegation orders
# TRX-send fulfillment branch instead:
#   trx_branch_trx = base_trx_for_smallest_tier_shortest_period + surcharges.trx_send_surcharge_trx

# price for an arbitrary weekday/time: same logic, but first select the schedule[] entry
# where day_of_week matches and the time falls in [period_start, period_end).

مرکزی اور متحرک

Bandwidth کی قیمتیں، ونڈوز، ہفتے کے دنوں کی تفصیل اور سرچارجز سرور سائیڈ (DB) پر سنبھالے جاتے ہیں اور تبدیل ہو سکتے ہیں۔ ہمیشہ رسپانس سے windows، schedule، tiers اور periods پر تکرار کریں اور قدر کے لحاظ سے مماثل کریں — گنتی، لیبلز، اوقات یا مدت کے ids کو ہارڈ کوڈ نہ کریں۔ SUB-user مارک اپ Bandwidth پر لاگو نہیں ہوتے ہیں۔


درجات

فی الوقت تمام ادوار کے لیے tiers کی ویلیو null ہے۔ جب حجم پر مبنی قیمتوں کا تعین فعال ہو جائے گا، تو اس فیلڈ میں ٹیئر آبجیکٹس کی ایک اری شامل ہوگی:

json
{
    "tiers": [
        {
            "min_energy": 0,
            "max_energy": 64999,
            "price": "<price_sun>",
            "label": "standard"
        },
        {
            "min_energy": 65000,
            "max_energy": 130999,
            "price": "<price_sun>",
            "label": "65k"
        },
        {
            "min_energy": 131000,
            "max_energy": 131000,
            "price": "<price_sun>",
            "label": "131k"
        },
        {
            "min_energy": 131001,
            "max_energy": null,
            "price": "<price_sun>",
            "label": "bulk"
        }
    ]
}

درجات کا خاکہ

فیلڈقسمتفصیل
min_energyانٹیجراس ٹیئر کے لیے کم از کم Energy کی رقم (شامل ہے)
max_energyانٹیجر|خالیاس ٹیئر کے لیے زیادہ سے زیادہ Energy کی رقم (شامل ہے)۔ null = لامحدود
priceانٹیجراس ٹیئر کے لیے SUN میں قیمت فی Energy یونٹ
labelسٹرنگٹیئر کا شناخت کنندہ

کلائنٹ لاجک

if tiers != null:
    find the tier where min_energy <= order_amount <= max_energy
    use that tier's price
else:
    use the flat price field for all order amounts

مختصر رسپانس فارمیٹس

مختصر متنی رسپانسز حاصل کرنے کے لیے X-Format ہیڈر کا استعمال کریں۔ یہ energy_1h سے موجودہ فعال مدت کی قیمت واپس کرتے ہیں۔

X-Format: now / compact / short

bash
curl -H "X-API-KEY: your_key" -H "X-Format: now" https://netts.io/apiv2/pricing
text
<Period>: price=<N> sun, 65k=<X.XXX> TRX (<X.XX>$), 131k=<X.XXX> TRX (<X.XX>$), 1m=<X.XXX> TRX (<X.XX>$)

X-Format: short1h

وہی لیکن بغیر مدت کے لیبل اور فی یونٹ قیمت کے۔

bash
curl -H "X-API-KEY: your_key" -H "X-Format: short1h" https://netts.io/apiv2/pricing
text
65k=<X.XXX> TRX (<X.XX>$), 131k=<X.XXX> TRX (<X.XX>$), 1m=<X.XXX> TRX (<X.XX>$)

X-Format: count

1، 2، 3، 5، 10، 20 آرڈرز کے لیے بلک آرڈر کی قیمتیں۔

bash
curl -H "X-API-KEY: your_key" -H "X-Format: count" https://netts.io/apiv2/pricing
text
1-<X.XXX> TRX (<X.XX>$), 2-<X.XXX> TRX (<X.XX>$), ...

حساب کا فارمولا

TRX cost = (price_sun / units_meta.sun.multiplier) x energy_amount
USD cost = TRX_cost x trx_rate_usd

SUB-User مارک اپ

SUB-users خودکار طور پر اپنے پیرنٹ کا مارک اپ لاگو ہونے کے ساتھ قیمتیں وصول کرتے ہیں۔ API ہمیشہ تصدیق شدہ صارف کے لیے حتمی قیمت واپس کرتا ہے — کلائنٹ سائیڈ پر کسی حساب کتاب کی ضرورت نہیں ہے۔

خرابی کے رسپانسز

خرابیاں مختلف فارمیٹس کے ساتھ دو تہوں سے آ سکتی ہیں۔ آپ کے کلائنٹ کو دونوں کو سنبھالنا چاہیے۔

ایپلیکیشن کی خرابیاں (API سے)

ایپلیکیشن لیول کی خرابیاں معیاری success/error فارمیٹ استعمال کرتی ہیں:

غلط سروس (400)

json
{
    "success": false,
    "error": {
        "code": 4002,
        "message": "Unknown services: invalid_service"
    }
}

تصدیق کی خرابی (401)

جب API کلید غائب ہو یا IP وائٹ لسٹ میں نہ ہو تو ایپلیکیشن کے ذریعے واپس کیا جاتا ہے:

json
{
    "detail": {
        "code": -1,
        "msg": "Invalid API key or IP not in whitelist"
    }
}

مختلف فارمیٹ

تصدیقی خرابیاں FastAPI کا مقامی detail فارمیٹ استعمال کرتی ہیں، نہ کہ success/error کا ڈھانچہ۔ اس کی وجہ یہ ہے کہ خرابی درخواست کے ایپلیکیشن لاجک تک پہنچنے سے پہلے ہی سامنے آ جاتی ہے۔

صارف نہیں ملا (404)

json
{
    "detail": {
        "code": -1,
        "msg": "User not found"
    }
}

اندرونی سرور کی خرابی (500)

json
{
    "success": false,
    "error": {
        "code": 5001,
        "message": "Failed to retrieve pricing data"
    }
}

گیٹ وے کی خرابیاں (Kong سے)

یہ خرابیاں ایپلیکیشن تک درخواست پہنچنے سے پہلے API گیٹ وے کے ذریعے واپس کی جاتی ہیں۔ وہ Kong کا اپنا فارمیٹ استعمال کرتی ہیں:

شرح کی حد سے تجاوز کر گیا (429)

json
{
    "message": "API rate limit exceeded"
}

گیٹ وے ٹائم آؤٹ (504)

json
{
    "message": "An invalid response was received from the upstream server"
}

خرابی کے کوڈز کا حوالہ

کوڈتفصیلHTTP اسٹیٹسماخذ
-1API کلید فراہم نہیں کی گئی401App
-1غلط API کلید یا IP وائٹ لسٹ میں نہیں ہے401App
-1صارف نہیں ملا404App
4002?services= پیرامیٹر میں نامعلوم سروس400App
5000اندرونی سرور کی خرابی500App
5001قیمتوں کا ڈیٹا حاصل کرنے میں ناکامی500App
5002کمپیکٹ فارمیٹ کے لیے قیمت کا ڈیٹا دستیاب نہیں ہے500App
-API کی شرح کی حد سے تجاوز کر گیا429Kong

کلائنٹ کے لیے خرابی کو سنبھالنے کا تجویز کردہ طریقہ

python
response = requests.get(url, headers=headers)
data = response.json()

if response.status_code == 200 and data.get("success"):
    # Success — process data
    services = data["data"]["services"]
elif response.status_code == 429:
    # Kong rate limit — back off and retry
    retry_after = response.headers.get("Retry-After", "60")
    time.sleep(int(retry_after))
elif "detail" in data:
    # FastAPI auth/validation error
    detail = data["detail"]
    if isinstance(detail, dict):
        print(f"Error {detail.get('code')}: {detail.get('msg')}")
    else:
        print(f"Error: {detail}")
elif "error" in data:
    # Application error
    err = data["error"]
    print(f"Error {err.get('code')}: {err.get('message')}")
else:
    print(f"Unexpected response: {response.status_code}")

/apiv2/prices سے منتقلی

پہلو/apiv2/prices (پرانا)/apiv2/pricing (نیا)
ادوار5 مقررہڈیٹا بیس سے متحرک
قیمت کے درجات3 ہارڈ کوڈڈایک قیمت + مستقبل کے tiers
دورانیے کی اقسامدستیاب نہیںenergy_5m
AML قیمتیںالگ اینڈپوائنٹ?services=aml کے ذریعے شامل
Host قیمتیںرسپانس میں ملی جلیالگ host سروس
سروس فلٹرنگدستیاب نہیں?services= پیرامیٹر
یونٹ کی تبدیلیغیر دستاویزیرسپانس میں units_meta
کیشے کی معلوماتغیر دستاویزیcache_ttl فی سروس
رسپانس کا فارمیٹ{"status": "success", ...}{"success": true, "version": "2.1", "data": {...}}

شرح کی حدود

وہی شرح کی حدود لاگو ہوتی ہیں جو /apiv2/prices کے لیے ہیں (Kong گیٹ وے میں ترتیب دی گئی ہیں)۔

نوٹس

  • Energy کی تمام قیمتیں SUN میں ہیں — تبدیلی کے لیے units_meta استعمال کریں
  • Host کی قیمتیں TRX میں ہیں
  • AML کی قیمتیں USDT میں ہیں جن میں TRX کی تبدیلی شامل ہے
  • تمام اوقات UTC میں ہیں
  • ڈیٹا کتنی بار ریفریش ہوتا ہے یہ جاننے کے لیے فی سروس cache_ttl کا استعمال کریں
  • ہر سروس کا تجزیہ کرنے کا طریقہ طے کرنے کے لیے pricing_type کا استعمال کریں
  • ادوار، فراہم کنندگان، شرحیں اور تمام اقدار متحرک ہیں — انہیں ہارڈ کوڈ نہ کریں
  • Bandwidth کی قیمتوں کا تعین آپٹ اِن ہے (?services=bandwidthsurcharges کے ساتھ tiered_by_amount_and_period استعمال کرتا ہے، اور SUB-user مارک اپ کے تابع نہیں ہے