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
| Header | Required | Description |
|---|---|---|
| Content-Type | Evet | application/json |
| X-API-KEY | Evet | Netts panelinizden alınan API anahtarınız |
| X-Real-IP | Evet | Beyaz listenizdeki IP adresi |
İstek Gövdesi
{
"amount": 65000,
"receiveAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}İstek Parametreleri
| Parameter | Type | Required | Description |
|---|---|---|---|
| amount | integer | Evet | Kiralanacak Energy miktarı (minimum: 61.000, maksimum: 650.000) |
| receiveAddress | string | Evet | Enerjiyi 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
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
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)
{
"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:
{
"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ı
| Field | Type | Description |
|---|---|---|
| detail.code | integer | Başarılı siparişler için her zaman 10000 |
| detail.msg | string | Düşülen miktarı içeren başarı mesajı |
| detail.data.orderId | string | Birleşik sipariş kimliği (format: 5M{id}) |
| detail.data.paidTRX | number | TRX cinsinden toplam maliyet (varsa etkinleştirme ücretini içerir) |
| detail.data.hash | string | Delegasyon işlem özeti (hash) |
| detail.data.delegateAddress | string | Enerjiyi delege eden havuz adresi |
| detail.data.energy | integer | Energy miktarı + tampon payı (genellikle +50) |
| detail.data.activationHash | string | Yalnızca adres etkinleştirmesi yapıldığında bulunur |
Hata Yanıtları
Geçersiz Energy Miktarı (400)
{
"code": 1003,
"msg": "Energy amount must be between 61000 and 650000. Requested: 50000"
}Kimlik Doğrulama Hatası (401)
{
"detail": "Invalid API key or IP not in whitelist"
}Yetersiz Bakiye (403)
{
"code": 1004,
"msg": "Insufficient funds. Required: 1.43 TRX, Available: 0.50 TRX"
}Hizmet Kullanılamıyor (503)
{
"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:
- 2-3 saniye bekleyin ve 5 dakikalık siparişi yeniden deneyin
- Hâlâ kullanılamıyorsa, birden fazla sağlayıcı kullanan 1 saatlik endpoint'e geçiş yapın
Sunucu İçi Hata (500)
{
"code": 5000,
"msg": "Internal server error occurred"
}Hata Kodu Referansı
| Code | Description | HTTP Status |
|---|---|---|
10000 | Başarılı | 200 |
10000 | Başarılı (önbelleğe alınmış yanıt) | 208 |
- | Yinelenen istek hâlâ işleniyor | 409 |
1003 | Energy miktarı aralık dışında | 400 |
1004 | Yetersiz bakiye | 403 |
1005 | Kullanıcı ödeme adresi yapılandırılmamış | 400 |
5000 | Sunucu içi hata | 500 |
5003 | Energy hizmeti kullanılamıyor | 503 |
İstek Hızı Sınırları
Bu endpoint için aşağıdaki hız sınırları geçerlidir (IP adresi başına):
| Period | Limit | Description |
|---|---|---|
| 1 saniye | 50 istek | Saniyede maksimum 50 istek |
Hız Sınırı Başlıkları
RateLimit-Limit: 50
RateLimit-Remaining: 49
RateLimit-Reset: 1
X-RateLimit-Limit-Second: 50
X-RateLimit-Remaining-Second: 49Hız Sınırı Aşıldı (429)
{
"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:
| Header | X-Idempotency-Key |
| Format | Tam olarak 64 küçük harfli onaltılık (hexadecimal) karakter — bir SHA-256 özeti |
| Geçerlilik süresi | Bu anahtarı taşıyan ilk istekten itibaren 24 saat |
| Kapsam | Hesabı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:
{
"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üre | Ne 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 Code | Name | Description |
|---|---|---|
| 200 | OK | Sipariş başarıyla işlendi (ilk istek) |
| 208 | Already Reported | Sipariş zaten işlendi, önbelleğe alınmış yanıt döndürülüyor |
| 409 | Conflict | İstek şu anda işleniyor, yeniden denemeyin |
Yinelenen İstek - Zaten İşlendi (208)
{
"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)
{
"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.cachedalanını kontrol edin
Karşılaştırma: 5 Dakikalık ve 1 Saatlik Siparişler
| Feature | 5-Minute Order | 1-Hour Order |
|---|---|---|
| Endpoint | /apiv2/order5m | /apiv2/order1h |
| Süre | 5 dakika | 1 saat |
| Energy aralığı | 61.000 - 650.000 | 61.000 - 3.000.000 |
| Sağlayıcılar | Yalnızca Netts dahili havuzları | Dahili havuzlar + harici sağlayıcılar |
| Fiyat | Daha düşük (5 dakikalık tarife) | Standart saatlik tarife |
| Kullanılabilirlik | Yoğun zamanlarda sınırlı olabilir | Yüksek (çoklu sağlayıcı alternatifi) |
| En uygun kullanım | Sık ve küçük işlemler | Bü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