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

POST /apiv2/order5m

Netts dahili enerji havuzları aracılığıyla 5 dakikalık bir enerji kiralama siparişi oluşturun.

Uç Nokta URL'si

POST https://netts.io/apiv2/order5m

İstek Üstbilgileri

HeaderRequiredDescription
Content-TypeEvetapplication/json
X-API-KEYEvetNetts panelinizden alınan API anahtarınız
X-Real-IPEvetBeyaz listenizdeki IP adresi

İstek Gövdesi

json
{
    "amount": 65000,
    "receiveAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}

İstek Parametreleri

ParameterTypeRequiredDescription
amountintegerEvetKiralanacak Energy miktarı (minimum: 61.000, maksimum: 650.000)
receiveAddressstringEvetEnerjiyi alacak TRON adresi (TRC-20 formatında)

Energy Limitleri

5 dakikalık endpoint, sipariş başına 61.000 ile 650.000 birim arasındaki enerji miktarlarını kabul eder. Bu aralığın dışındaki istekler HTTP 400 ile reddedilecektir.

Sağlayıcı Bilgileri

5 dakikalık enerji siparişleri yalnızca Netts dahili enerji havuzları aracılığıyla karşılanır. 1 saatlik endpoint'in aksine, harici sağlayıcılar kullanılmaz.

Kullanılabilirlik ve Yeniden Deneme Stratejisi

Delegasyonlar yalnızca dahili havuzlardan sağlandığı için, yüksek talep dönemlerinde geçici olarak kullanılamama durumu oluşabilir. Bir 503 hatası alırsanız, kısa bir gecikmenin ardından isteği yeniden deneyin veya birden fazla harici sağlayıcıya erişimi olan 1 saatlik endpoint'e geçiş yapın.

Örnek İstekler

cURL

bash
curl -X POST https://netts.io/apiv2/order5m \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: your_api_key" \
  -H "X-Real-IP: your_whitelisted_ip" \
  -d '{
    "amount": 65000,
    "receiveAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
  }'

Python

python
import requests

url = "https://netts.io/apiv2/order5m"
headers = {
    "Content-Type": "application/json",
    "X-API-KEY": "your_api_key",
    "X-Real-IP": "your_whitelisted_ip"
}

payload = {
    "amount": 65000,
    "receiveAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}

response = requests.post(url, headers=headers, json=payload)
data = response.json()

if response.status_code == 200:
    detail = data.get('detail', {})
    order_data = detail.get('data', {})
    print(f"Order ID: {order_data.get('orderId')}")
    print(f"Transaction Hash: {order_data.get('hash')}")
    print(f"Energy Delivered: {order_data.get('energy')}")
    print(f"Cost: {order_data.get('paidTRX')} TRX")
    print(f"Delegate Address: {order_data.get('delegateAddress')}")
elif response.status_code == 503:
    # Pool temporarily unavailable - retry or fallback to 1h
    print("Pool busy, retrying in 2 seconds...")
else:
    error_detail = data.get('detail', data)
    print(f"Error Code: {error_detail.get('code', 'N/A')}")
    print(f"Error Message: {error_detail.get('msg', error_detail)}")

Yanıt

Başarılı Yanıt (200 OK)

json
{
    "detail": {
        "code": 10000,
        "msg": "Successful, 1.430 TRX deducted",
        "data": {
            "orderId": "5Mb4ee11ef86",
            "paidTRX": 1.43,
            "hash": "3636f97dde244fca17cdc0b2cf7fd157...",
            "delegateAddress": "TNp5gsJhBmZFXgCdgjMgr8pEZ8fHgXUHDq",
            "energy": 65050
        }
    }
}

Adres Etkinleştirmeli Başarılı Yanıt (200 OK)

Alıcı adresi TRON ağında henüz etkinleştirilmediğinde, Netts bu adresi otomatik olarak etkinleştirir. Etkinleştirme maliyeti toplama eklenir:

json
{
    "detail": {
        "code": 10000,
        "msg": "Successful, 1.430 TRX for energy + 1.100 TRX for address activation",
        "data": {
            "orderId": "5Mb4ee11ef86",
            "paidTRX": 2.53,
            "hash": "3636f97dde244fca17cdc0b2cf7fd157...",
            "delegateAddress": "TNp5gsJhBmZFXgCdgjMgr8pEZ8fHgXUHDq",
            "energy": 65050,
            "activationHash": "bab38070a64b237acc9110ecf5135acc..."
        }
    }
}

Yanıt Alanları

FieldTypeDescription
detail.codeintegerBaşarılı siparişler için her zaman 10000
detail.msgstringDüşülen miktarı içeren başarı mesajı
detail.data.orderIdstringBirleşik sipariş kimliği (format: 5M{id})
detail.data.paidTRXnumberTRX cinsinden toplam maliyet (varsa etkinleştirme ücretini içerir)
detail.data.hashstringDelegasyon işlem özeti (hash)
detail.data.delegateAddressstringEnerjiyi delege eden havuz adresi
detail.data.energyintegerEnergy miktarı + tampon payı (genellikle +50)
detail.data.activationHashstringYalnızca adres etkinleştirmesi yapıldığında bulunur

Hata Yanıtları

Geçersiz Energy Miktarı (400)

json
{
    "code": 1003,
    "msg": "Energy amount must be between 61000 and 650000. Requested: 50000"
}

Kimlik Doğrulama Hatası (401)

json
{
    "detail": "Invalid API key or IP not in whitelist"
}

Yetersiz Bakiye (403)

json
{
    "code": 1004,
    "msg": "Insufficient funds. Required: 1.43 TRX, Available: 0.50 TRX"
}

Hizmet Kullanılamıyor (503)

json
{
    "code": 5003,
    "msg": "Service temporarily unavailable. Energy delegation failed after retries."
}

503 Hatalarını Yönetme

Bir 503 yanıtı, dahili havuzların geçici olarak tam kapasitede olduğu anlamına gelir. Önerilen strateji:

  1. 2-3 saniye bekleyin ve 5 dakikalık siparişi yeniden deneyin
  2. Hâlâ kullanılamıyorsa, birden fazla sağlayıcı kullanan 1 saatlik endpoint'e geçiş yapın

Sunucu İçi Hata (500)

json
{
    "code": 5000,
    "msg": "Internal server error occurred"
}

Hata Kodu Referansı

CodeDescriptionHTTP Status
10000Başarılı200
10000Başarılı (önbelleğe alınmış yanıt)208
-Yinelenen istek hâlâ işleniyor409
1003Energy miktarı aralık dışında400
1004Yetersiz bakiye403
1005Kullanıcı ödeme adresi yapılandırılmamış400
5000Sunucu içi hata500
5003Energy hizmeti kullanılamıyor503

İstek Hızı Sınırları

Bu endpoint için aşağıdaki hız sınırları geçerlidir (IP adresi başına):

PeriodLimitDescription
1 saniye50 istekSaniyede maksimum 50 istek

Hız Sınırı Başlıkları

http
RateLimit-Limit: 50
RateLimit-Remaining: 49
RateLimit-Reset: 1
X-RateLimit-Limit-Second: 50
X-RateLimit-Remaining-Second: 49

Hız Sınırı Aşıldı (429)

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

Eşgüçlülük (Idempotency)

API, yinelenen sipariş işlemlerini önlemek için eşgüçlülüğü (idempotency) destekler. Birden fazla özdeş istek gönderdiğinizde sistem, siparişin yalnızca bir kez işlenmesini sağlar.

Eşgüçlülük Nasıl Çalışır?

İstek benzersizliği aşağıdakilerin birleşimiyle belirlenir:

  • İstek zaman damgası (2 saniyelik pencere)
  • Energy miktarı
  • Alıcı adresi
  • API anahtarı

Her isteğe 2 saniyelik bir benzersizlik penceresi tanınır. Bu pencere içinde aynı parametrelere sahip istekler yinelenen olarak kabul edilir.

Kendi Anahtarınızı Sağlama

X-Idempotency-Key başlığını göndererek eşgüçlülük kontrolünü kendiniz sağlayabilirsiniz. Bu başlık mevcut olduğunda, bir isteğin tekrar olup olmadığına yalnızca bu değer karar verir ve yukarıdaki otomatik kombinasyon kullanılmaz. Başlık bulunmadığında hiçbir şey değişmez; sunucu anahtarı sizin için türetir.

Kurallar /apiv2/order1h üzerindekilerle aynıdır:

HeaderX-Idempotency-Key
FormatTam olarak 64 küçük harfli onaltılık (hexadecimal) karakter — bir SHA-256 özeti
Geçerlilik süresiBu anahtarı taşıyan ilk istekten itibaren 24 saat
KapsamHesabınız. Farklı bir hesap tarafından gönderilen aynı değer asla sizin sonucunuzu döndürmez

Başka herhangi bir biçimdeki anahtar (kısa çizgili UUID, base64, büyük harfli hex), sipariş verilmeden ve herhangi bir ücret alınmadan önce 400 ile reddedilir:

json
{
    "detail": "Invalid idempotency key format. Must be 64-character hexadecimal string."
}

Anahtarı API anahtarınızdan türeterek hesabınıza özel ve yeniden denemelerde üretilebilir olmasını sağlayın — örnek uygulama 1 saatlik sayfada yer almaktadır. Özetlediğiniz mesaja kiralama süresini de dahil edin: aynı adresi 5 dakikalığına ve 1 saatliğine kiralamak farklı siparişlerdir ve her ikisi için tek bir anahtarı yeniden kullanmak, ikinci istek için ilk siparişin yanıtını döndürür.

İki Özdeş Sipariş Verme

Saatlik endpoint'teki tuzak burada da geçerlidir, ancak daha geniş bir pencereye sahiptir. İki özdeş sipariş — aynı adrese aynı miktar — yeniden denemeden ayırt edilemez ve onları yalnızca varış anı ayırır.

Kendi anahtarınız olmadan:

İki istek arasındaki süreNe olur
Aynı 2 saniyelik pencere içindeİkinci istek bir tekrar olarak kabul edilir. İşleme alınmaz: 208 ve ilk siparişin yanıtını alırsınız. Bunun için herhangi bir ücret alınmaz
İki saniyeden daha uzun aralıklaİki farklı anahtar — her iki sipariş de verilir ve her ikisi de ücretlendirilir

Bu nedenle, iki özdeş sipariş arasında iki saniyeden fazla süre bırakın ve durum kodunu kontrol edin: 208, az önce gönderdiğiniz siparişin verilmediği anlamına gelir.

Bekleme süresi koymak kalıcı bir çözüm değil, geçici bir yöntemdir — zaman aşımı sonrası yeniden deneme veya kuyruğunuz tarafından yeniden iletilen bir mesaj gibi asla tekrarlamak istemediğiniz istekleri de ayırır ve bunların her biri ayrı bir ücrete tabi ayrı bir siparişe dönüşür. Kendi anahtarınızı göndermek durumu kesin olarak çözen şeydir: yeni bir sipariş için yeni bir nonce, yeniden deneme için ilk denemenin nonce değeri. Gerekçenin tamamı 1 saatlik sayfada yer almaktadır.

Yinelenen İstekler İçin HTTP Durum Kodları

Status CodeNameDescription
200OKSipariş başarıyla işlendi (ilk istek)
208Already ReportedSipariş zaten işlendi, önbelleğe alınmış yanıt döndürülüyor
409Conflictİstek şu anda işleniyor, yeniden denemeyin

Yinelenen İstek - Zaten İşlendi (208)

json
{
    "detail": {
        "code": 10000,
        "msg": "Successful, 1.430 TRX deducted",
        "data": {
            "hash": "3636f97dde244fca17cdc0b2cf7fd157...",
            "energy": 65050,
            "orderId": "5Mb4ee11ef86",
            "paidTRX": 1.43,
            "delegateAddress": "TNp5gsJhBmZFXgCdgjMgr8pEZ8fHgXUHDq"
        }
    },
    "idempotency": {
        "status": "completed",
        "cached": true,
        "original_created_at": "2026-03-21T08:53:52.498000"
    }
}

Yinelenen İstek - Hâlâ İşleniyor (409)

json
{
    "success": false,
    "error": "duplicate_request_processing",
    "message": "This request is currently being processed. Please wait and do not retry.",
    "retry_after_seconds": 3
}

En İyi Uygulamalar

  • Aynı parametrelerle paralel istekler göndermeyin - her yanıtı bekleyin
  • Hemen yeniden denemek yerine bekleyerek 409 yanıtlarını yönetin
  • Önbelleğe alınmış yanıtları belirlemek için idempotency.cached alanını kontrol edin

Karşılaştırma: 5 Dakikalık ve 1 Saatlik Siparişler

Feature5-Minute Order1-Hour Order
Endpoint/apiv2/order5m/apiv2/order1h
Süre5 dakika1 saat
Energy aralığı61.000 - 650.00061.000 - 3.000.000
SağlayıcılarYalnızca Netts dahili havuzlarıDahili havuzlar + harici sağlayıcılar
FiyatDaha düşük (5 dakikalık tarife)Standart saatlik tarife
KullanılabilirlikYoğun zamanlarda sınırlı olabilirYüksek (çoklu sağlayıcı alternatifi)
En uygun kullanımSık ve küçük işlemlerBüyük veya garantili teslimat

Notlar

  • Enerji, sipariş başarılı olduğunda anında teslim edilir (genellikle 0,5-2 saniye içinde)
  • API yanıt zaman aşımı: Maksimum 10 saniye (dahili yeniden deneme girişimlerini içerir)
  • Adres etkinleştirme: Alıcı adresi etkinleştirilmemişse, Netts bunu maliyet fiyatına etkinleştirir. Etkinleştirme maliyeti adres başına yalnızca bir kez tahsil edilir
  • Süre: Sabit 5 dakika (300 saniye)
  • Minimum enerji miktarı: 61.000 birim
  • Maksimum enerji miktarı: Sipariş başına 650.000 birim
  • Energy tamponu: Otomatik olarak +50 birim eklenir (ücretsiz)
  • Sipariş kimliği formatı: Birleşik takip için 5M{id}
  • Fiyatlandırma: Fiyatlandırma API'si aracılığıyla günün saatine göre dinamik
  • Hız sınırlaması: IP adresi başına saniyede 50 istek
  • Yalnızca dahili havuzlar: Havuzlar tam kapasitedeyse, kısa bir gecikmenin ardından yeniden deneyin veya alternatif olarak 1 saatlik endpoint'i kullanın