GET /apiv2/pricing
यूनिवर्सल मूल्य निर्धारण एंडपॉइंट जो गतिशील समय अवधियों के साथ एकल प्रतिक्रिया में सभी सेवा मूल्यों को लौटाता है।
पूर्ति के दौरान मूल्य बदल सकता है
इस एंडपॉइंट द्वारा लौटाया गया मूल्य किसी ऑर्डर को प्रोसेस किए जाने के दौरान बदल सकता है। एक energy प्रदाता प्रतिनिधिमंडल (delegation) अनुरोध को अस्वीकार कर सकता है, जिस स्थिति में Netts स्वचालित रूप से ऑर्डर को अगले उपलब्ध प्रदाता पर रूट करता है। Netts न केवल सबसे अधिक प्रतिस्पर्धी मूल्य की पेशकश करने के लिए प्रतिबद्ध है, बल्कि एक विश्वसनीय energy आपूर्ति सुनिश्चित करने के लिए भी प्रतिबद्ध है — इसलिए किसी ऑर्डर को उद्धृत मूल्य से अधिक कीमत पर पूरा किया जा सकता है। यह केवल 300,000 energy इकाइयों और उससे अधिक के ऑर्डर पर लागू होता है।
अनुशंसित
यह अनुशंसित मूल्य निर्धारण एंडपॉइंट है। यह लीगेसी /apiv2/prices एंडपॉइंट को प्रतिस्थापित करता है जिसे अप्रचलित (deprecated) कर दिया जाएगा।
एंडपॉइंट URL
GET https://netts.io/apiv2/pricingअनुरोध हेडर
| Header | Required | Description | Values |
|---|---|---|---|
| X-API-KEY | हाँ | आपकी API कुंजी | string |
| X-Real-IP | हाँ | व्हाइटलिस्ट से IP पता | IP पता |
| X-Format | नहीं | प्रतिक्रिया प्रारूप (डिफ़ॉल्ट: पूर्ण JSON) | now, compact, short, short1h, count |
क्वेरी पैरामीटर
| Parameter | Type | Default | Description |
|---|---|---|---|
| services | string | all | शामिल करने के लिए सेवाओं का अल्पविराम से अलग किया गया फ़िल्टर |
उपलब्ध सेवाएं
| Service | Description |
|---|---|
energy_1h | 1-घंटे की energy डेलिगेशन दरें |
energy_5m | 5-मिनट की energy डेलिगेशन दरें |
host | Host energy डेलिगेशन दरें |
aml | AML पता जाँच दरें |
bandwidth | Bandwidth किराये की दरें — ऑप्ट-इन: केवल तभी लौटाई जाती हैं जब ?services=bandwidth के माध्यम से स्पष्ट रूप से अनुरोध किया गया हो (डिफ़ॉल्ट प्रतिक्रिया का हिस्सा नहीं) |
उदाहरण
cURL — पूर्ण प्रतिक्रिया
curl -X GET https://netts.io/apiv2/pricing \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip"cURL — सेवाओं द्वारा फ़िल्टर करें
# केवल energy 1h दरें
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 दरें
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 किराये की दरें (ऑप्ट-इन — स्पष्ट रूप से अनुरोध किया जाना चाहिए)
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
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 — सेवाएँ फ़िल्टर करें
params = {"services": "energy_1h,aml"}
response = requests.get(url, headers=headers, params=params)प्रतिक्रिया संरचना
शीर्ष-स्तरीय फ़ील्ड
| Field | Type | Description |
|---|---|---|
| success | boolean | सफल अनुरोधों के लिए true |
| version | string | API संस्करण (उदा. "2.1") |
| timestamp | string | ISO 8601 UTC में सर्वर समय |
| data | object | प्रतिक्रिया पेलोड |
डेटा फ़ील्ड
| Field | Type | Description |
|---|---|---|
| data.trx_rate_usd | number | वर्तमान TRX/USD विनिमय दर |
| data.units_meta | object | मशीन-पठनीय इकाई रूपांतरण जानकारी |
| data.services | object | मूल्य निर्धारण डेटा के साथ अनुरोधित सेवाओं का मानचित्र |
Units Meta
क्लाइंट्स को इकाइयों के बीच प्रोग्रामेटिक रूप से कनवर्ट करने की अनुमति देता है:
{
"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
सेवा सामान्य फ़ील्ड
प्रत्येक सेवा में ये फ़ील्ड शामिल हैं:
| Field | Type | Description |
|---|---|---|
| unit | string | मूल्य इकाई (sun, trx, usdt) |
| pricing_type | string | इस सेवा को कैसे पार्स करें (नीचे देखें) |
| description | string | मानव-पठनीय विवरण |
| cache_ttl | integer | यह डेटा कितनी बार रीफ्रेश होता है (सेकंड) |
मूल्य निर्धारण प्रकार
pricing_type फ़ील्ड क्लाइंट्स को बताती है कि प्रत्येक सेवा को कैसे पार्स किया जाए:
| Type | Structure | Used by |
|---|---|---|
periodic | समय-आधारित कीमतों के साथ periods[] ऐरे | energy_1h, energy_5m |
flat_rates | नामित दर कुंजियों के साथ rates{} ऑब्जेक्ट | host |
provider_based | प्रदाता डेटा के साथ providers{} ऑब्जेक्ट | aml |
tiered_by_amount_and_period | राशि सीमा के अनुसार tiers[], प्रत्येक में periods[] के साथ | bandwidth |
Service: energy_1h / energy_5m
pricing_type: periodic
| Field | Type | Description |
|---|---|---|
| current_period | string | वर्तमान में सक्रिय अवधि का स्लग |
| periods[] | array | सभी मूल्य निर्धारण अवधियाँ (गतिशील, DB से लोड की गईं) |
| periods[].id | string | अद्वितीय अवधि पहचानकर्ता (स्लग) |
| periods[].label | string | मानव-पठनीय अवधि का नाम |
| periods[].start | string | अवधि प्रारंभ समय (HH:MM UTC) |
| periods[].end | string | अवधि समाप्ति समय (HH:MM UTC) |
| periods[].is_current | boolean | क्या यह अवधि वर्तमान में सक्रिय है |
| periods[].price | integer | SUN में प्रति energy इकाई मूल्य |
| periods[].tiers | array|null | वॉल्यूम-आधारित मूल्य निर्धारण स्तर (देखें Tiers) |
गतिशील अवधियाँ
अवधियों की संख्या, उनकी समय सीमाएँ, लेबल और कीमतें सभी गतिशील हैं और सर्वर-साइड प्रबंधित होती हैं। अवधि आईडी या गणनाओं को हार्डकोड न करें। हमेशा periods ऐरे पर पुनरावृति (iterate) करें।
Service: host
pricing_type: flat_rates
| Field | Type | Description |
|---|---|---|
| rates.standard_65k | number | 65k energy के लिए मानक दर (TRX) |
| rates.standard_131k_initial | number | 131k energy, प्रारंभिक सक्रियण के लिए मानक दर (TRX) |
| rates.frequent_65k | number | 65k energy के लिए लगातार दर (TRX) |
| rates.frequent_131k | number | 131k energy के लिए लगातार दर (TRX) |
Service: aml
pricing_type: provider_based
| Field | Type | Description |
|---|---|---|
| providers | object | AML प्रदाताओं का मैप (गतिशील, बदल सकता है) |
| providers[name].price | number | USDT में जाँच मूल्य |
| providers[name].price_trx | number | वर्तमान दर पर TRX में कनवर्ट किया गया जाँच मूल्य |
| providers[name].available | boolean | क्या प्रदाता के पास उपलब्ध कोटा है |
गतिशील प्रदाता
AML प्रदाता डेटाबेस से लोड किए जाते हैं। नए प्रदाता दिखाई दे सकते हैं या मौजूदा अनुपलब्ध हो सकते हैं। हमेशा providers ऑब्जेक्ट पर पुनरावृति (iterate) करें।
Service: bandwidth
pricing_type: tiered_by_amount_and_period
ऑप्ट-इन और पहुँच
Bandwidth मूल्य निर्धारण केवल तभी लौटाया जाता है जब ?services=bandwidth के माध्यम से स्पष्ट रूप से अनुरोध किया गया हो — यह डिफ़ॉल्ट प्रतिक्रिया का हिस्सा नहीं है। Bandwidth रेंटल एंडपॉइंट स्वयं अनुरोध पर उपलब्ध है; पहुँच के लिए सहायता टीम से संपर्क करें। देखें Bandwidth rental।
Bandwidth किराये का मूल्य ऑर्डर की राशि (इकाई स्तर), किराये की अवधि (उदा. 5m / 1h), दिन के समय की विंडो (UTC) और सप्ताह के दिन पर निर्भर करता है। आधार मूल्य SUN प्रति इकाई में हैं; आधार के अतिरिक्त, निश्चित अधिभार (TRX में) लागू हो सकते हैं — सभी मान प्रतिक्रिया में लौटाए जाते हैं।
प्रतिक्रिया एक सुविधा दृश्य (tiers — वर्तमान विंडो/दिन के लिए कीमतें) और पूर्ण ग्रिड (windows + schedule — प्रत्येक कार्यदिवस में प्रत्येक विंडो) दोनों प्रदान करती है।
अनुकूली प्रारूप — हार्डकोड न करें
मूल्य निर्धारण ग्रिड पूरी तरह से डेटा-संचालित है और किसी भी समय बदल सकता है: समय विंडोज़ की संख्या, उनके लेबल, उनके प्रारंभ/समाप्ति समय, किराये की अवधियों का सेट (नई अवधियाँ जोड़ी या हटाई जा सकती हैं), राशि के स्तर (tiers), कार्यदिवस विवरण और स्वयं कीमतें। क्लाइंट्स को लौटाए गए ऐरे (windows, schedule, tiers, periods) पर अवश्य पुनरावृति (iterate) करनी चाहिए और मान द्वारा मिलान करना चाहिए — कभी भी एक निश्चित संख्या, निश्चित लेबल, निश्चित समय या निश्चित अवधि आईडी न मानें। इस तरह से लिखा गया कोड शेड्यूल बदलने पर भी काम करता रहता है।
| Field | Type | Description |
|---|---|---|
| unit | string | sun_per_unit |
| window | string | वर्तमान दिन के समय की विंडो का लेबल (UTC) |
| current_day_of_week | integer | वर्तमान कार्यदिवस, ISO 1=सोम … 7=रवि (UTC) |
| tiers[] | array | वर्तमान विंडो/दिन के लिए राशि स्तर (सुविधा के लिए; schedule के अंदर समान आकार) |
| windows[] | array | दिन के सभी समय के विंडो की निर्देशिका (बढ़/घट/स्थानांतरित हो सकती है) |
| windows[].label | string | विंडो लेबल |
| windows[].start / .end | string | विंडो प्रारंभ/समाप्ति HH:MM UTC (एक विंडो आधी रात को पार कर सकती है, यानी start > end) |
| schedule[] | array | पूर्ण ग्रिड — प्रति (कार्यदिवस × विंडो) एक प्रविष्टि |
| schedule[].day_of_week | integer | ISO कार्यदिवस 1…7 |
| schedule[].window | string | विंडो लेबल (windows[].label से मेल खाता है) |
| schedule[].period_start / .period_end | string | HH:MM UTC |
| schedule[].is_current | boolean | अभी सक्रिय खंड के लिए true |
| schedule[].tiers[] | array | इस खंड के लिए राशि स्तर |
| tiers[].amount_min | integer | स्तर निचली सीमा (समावेशी) |
| tiers[].amount_max | integer|null | स्तर ऊपरी सीमा (अनन्य)। null = असीमित |
| tiers[].periods[] | array | स्तर के भीतर किराये की अवधि के अनुसार कीमतें |
| tiers[].periods[].id | string | किराये की अवधि आईडी (उदा. 5m, 1h) — बदल/विस्तारित हो सकती है |
| tiers[].periods[].rental_seconds | integer | सेकंड में अवधि की लंबाई |
| tiers[].periods[].price | integer | SUN में प्रति bandwidth इकाई मूल्य |
| surcharges | object | क्लाइंट मूल्य (TRX) में निश्चित जोड़ — नीचे देखें |
| limits | object | ऑर्डर सीमाएँ: min_units, max_units |
अधिभार
| Field | Type | Description |
|---|---|---|
| surcharges.small_order_threshold_units | integer | इस मान से कम amount वाले ऑर्डर पर छोटे-ऑर्डर का अधिभार लगता है |
| surcharges.small_order_surcharge_trx | number | छोटे डेलिगेशन ऑर्डर के लिए जोड़ा गया (TRX) — ऑन-चेन डेलिगेशन + रिक्लेम के लिए मुआवजा |
| surcharges.trx_send_surcharge_trx | number | जब ऑर्डर TRX भेजकर पूरा किया जाता है तब जोड़ा गया (TRX) — TRX ट्रांसफर के लिए मुआवजा |
उदाहरण प्रतिक्रिया
{
"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 में प्रत्येक (कार्यदिवस × विंडो) संयोजन के लिए एक प्रविष्टि होती है — एक पूर्ण मूल्य कैलेंडर रेंडर करने के लिए इसे पुनरावृत (iterate) करें। ठीक एक प्रविष्टि में 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 पर हमेशा पुनरावृति (iterate) करें और मान द्वारा मिलान करें — गिनती, लेबल, समय या अवधि आईडी को हार्डकोड न करें। SUB-उपयोगकर्ता मार्कअप Bandwidth पर लागू नहीं होते हैं।
Tiers
वर्तमान में सभी अवधियों के लिए tiers null है। वॉल्यूम-आधारित मूल्य निर्धारण सक्षम होने पर, इस फ़ील्ड में टियर ऑब्जेक्ट्स की एक सूची शामिल होगी:
{
"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"
}
]
}टियर्स स्कीमा
| Field | Type | Description |
|---|---|---|
| min_energy | integer | इस स्तर के लिए न्यूनतम energy राशि (समावेशी) |
| max_energy | integer|null | इस स्तर के लिए अधिकतम energy राशि (समावेशी)। null = असीमित |
| price | integer | इस स्तर के लिए SUN में प्रति energy इकाई मूल्य |
| label | string | स्तर पहचानकर्ता |
क्लाइंट लॉजिक
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
curl -H "X-API-KEY: your_key" -H "X-Format: now" https://netts.io/apiv2/pricing<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
वही लेकिन बिना अवधि लेबल और प्रति-इकाई मूल्य के।
curl -H "X-API-KEY: your_key" -H "X-Format: short1h" https://netts.io/apiv2/pricing65k=<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 ऑर्डर के लिए बल्क ऑर्डर मूल्य निर्धारण।
curl -H "X-API-KEY: your_key" -H "X-Format: count" https://netts.io/apiv2/pricing1-<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_usdSUB-User मार्कअप
SUB-उपयोगकर्ताओं को अपने पैरेंट का मार्कअप लागू होने के बाद स्वचालित रूप से कीमतें प्राप्त होती हैं। API हमेशा प्रमाणित उपयोगकर्ता के लिए अंतिम मूल्य लौटाता है — किसी क्लाइंट-साइड गणना की आवश्यकता नहीं है।
त्रुटि प्रतिक्रियाएं
त्रुटियाँ अलग-अलग प्रारूपों के साथ दो परतों से आ सकती हैं। आपके क्लाइंट को दोनों को संभालना चाहिए।
एप्लिकेशन त्रुटियाँ (API से)
एप्लिकेशन-स्तरीय त्रुटियाँ मानक success/error प्रारूप का उपयोग करती हैं:
अमान्य सेवा (400)
{
"success": false,
"error": {
"code": 4002,
"message": "Unknown services: invalid_service"
}
}प्रमाणीकरण त्रुटि (401)
API कुंजी अनुपलब्ध होने या IP व्हाइटलिस्ट में न होने पर एप्लिकेशन द्वारा लौटाया गया:
{
"detail": {
"code": -1,
"msg": "Invalid API key or IP not in whitelist"
}
}भिन्न प्रारूप
प्रमाणीकरण त्रुटियाँ FastAPI के मूल detail प्रारूप का उपयोग करती हैं, success/error संरचना का नहीं। ऐसा इसलिए है क्योंकि अनुरोध एप्लिकेशन लॉजिक तक पहुँचने से पहले ही यह त्रुटि उत्पन्न हो जाती है।
उपयोगकर्ता नहीं मिला (404)
{
"detail": {
"code": -1,
"msg": "User not found"
}
}आंतरिक सर्वर त्रुटि (500)
{
"success": false,
"error": {
"code": 5001,
"message": "Failed to retrieve pricing data"
}
}गेटवे त्रुटियाँ (Kong से)
ये त्रुटियाँ अनुरोध के एप्लिकेशन तक पहुँचने से पहले API गेटवे द्वारा लौटाई जाती हैं। वे Kong के अपने प्रारूप का उपयोग करती हैं:
दर सीमा पार हो गई (429)
{
"message": "API rate limit exceeded"
}गेटवे टाइमआउट (504)
{
"message": "An invalid response was received from the upstream server"
}त्रुटि कोड संदर्भ
| Code | Description | HTTP Status | Source |
|---|---|---|---|
-1 | API कुंजी प्रदान नहीं की गई | 401 | App |
-1 | अमान्य API कुंजी या IP व्हाइटलिस्ट में नहीं है | 401 | App |
-1 | उपयोगकर्ता नहीं मिला | 404 | App |
4002 | ?services= पैरामीटर में अज्ञात सेवा | 400 | App |
5000 | आंतरिक सर्वर त्रुटि | 500 | App |
5001 | मूल्य निर्धारण डेटा प्राप्त करने में विफल | 500 | App |
5002 | कॉम्पैक्ट प्रारूप के लिए मूल्य डेटा अनुपलब्ध | 500 | App |
- | API दर सीमा पार हो गई | 429 | Kong |
अनुशंसित क्लाइंट त्रुटि प्रबंधन
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 से माइग्रेशन
| Aspect | /apiv2/prices (पुराना) | /apiv2/pricing (नया) |
|---|---|---|
| अवधियाँ | 5 निश्चित | DB से गतिशील |
| मूल्य स्तर | 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 कीमतें TRX रूपांतरण सहित USDT में हैं
- सभी समय UTC में हैं
- डेटा कितनी बार रीफ्रेश होता है यह जानने के लिए प्रति सेवा
cache_ttlका उपयोग करें - प्रत्येक सेवा को पार्स करने का तरीका निर्धारित करने के लिए
pricing_typeका उपयोग करें - अवधियाँ, प्रदाता, दरें और सभी मान गतिशील हैं — उन्हें हार्डकोड न करें
- Bandwidth मूल्य निर्धारण ऑप्ट-इन (
?services=bandwidth) है,surchargesके साथtiered_by_amount_and_periodका उपयोग करता है, और SUB-उपयोगकर्ता मार्कअप के अधीन नहीं है