Skip to content

POST /apiv2/order1h

Create a 1-hour energy rental order through multiple energy providers with automatic failover.

Endpoint URL

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

Request Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
X-API-KEYYesYour API key from Netts dashboard
X-Real-IPYesIP address from your whitelist

Request Body

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

Parameters

ParameterTypeRequiredDescription
amountintegerYesEnergy amount to rent (minimum: 61000, maximum: 5000000)
receiveAddressstringYesTRON address that will receive the energy (TRC-20 format)

Provider Selection

The API automatically selects the optimal energy provider based on:

  • Cost efficiency - Always finds the lowest available price
  • Availability - Ensures sufficient energy reserves
  • Reliability - Uses providers with high success rates
  • Speed - Prioritizes fastest delivery times

Example Requests

cURL

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

Python

python
import requests

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

payload = {
    "amount": 131000,
    "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')}")
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)}")

Response

Success Response (200 OK)

json
{
    "detail": {
        "code": 10000,
        "msg": "Successful, 2.23 TRX deducted",
        "data": {
            "orderId": "1H123456",
            "paidTRX": 2.23,
            "hash": "a1b2c3d4e5f6789...",
            "delegateAddress": "TDelegatePoolAddress...",
            "energy": 131050
        }
    }
}

Response Fields

FieldTypeDescription
detail.codeintegerAlways 10000 for successful orders
detail.msgstringSuccess message with deducted amount
detail.data.orderIdstringUnified order ID (format: 1H{request_id})
detail.data.paidTRXnumberTotal cost in TRX (includes activation fee if address was not activated)
detail.data.hashstringTransaction hash (may be empty if provider doesn't provide it)
detail.data.delegateAddressstringPool address that delegated energy
detail.data.energyintegerEnergy amount + buffer (typically +50)

Error Responses

Authentication Error (401)

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

Insufficient Balance (403)

json
{
    "code": 1004,
    "msg": "Insufficient funds. Required: 2.23 TRX, Available: 1.50 TRX"
}

Service Unavailable (503)

json
{
    "code": 5003,
    "msg": "Service temporarily unavailable. All energy providers are currently unavailable."
}

Provider Errors (503)

json
{
    "code": 5001,
    "msg": "Energy provider temporarily unavailable"
}
json
{
    "code": 5002,
    "msg": "Energy provider temporarily unavailable"
}
json
{
    "code": 5004,
    "msg": "Energy provider requires higher minimum amount"
}

Internal Server Error (500)

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

Error Code Reference

CodeDescriptionHTTP Status
10000Success200
1004Insufficient balance403
5000Internal server error500
5001Energy provider unavailable503
5002Energy provider unavailable503
5003Energy service unavailable503
5004Energy provider minimum not met503

Notes

  • Energy is delivered instantly upon successful order (typically within 0.5-10 seconds)
  • API response timeout: Maximum 10 seconds, typically responds in up to 2 seconds
  • Address activation: If receiver address is not activated, Netts activates it at cost price
  • Activation delay: For non-activated addresses, API response may take up to 6 seconds due to activation process
  • Orders are processed 24/7 with automatic provider failover
  • Minimum energy amount: 61,000 units
  • Maximum energy amount: 5,000,000 units per order
  • Energy buffer: +50 units added automatically for provider compensation (free of charge)
  • Transaction hash: May be empty in response if energy provider doesn't provide delegation hash
  • Provider selection: Automatic based on cost and availability
  • Order ID format: 1H{request_id} for unified tracking
  • Pricing: Dynamic based on time of day and energy amount
  • Duration: Fixed 1 hour (3600 seconds)