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
Header | Required | Description |
---|---|---|
Content-Type | Yes | application/json |
X-API-KEY | Yes | Your API key from Netts dashboard |
X-Real-IP | Yes | IP address from your whitelist |
Request Body
json
{
"amount": 131000,
"receiveAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
amount | integer | Yes | Energy amount to rent (minimum: 61000, maximum: 5000000) |
receiveAddress | string | Yes | TRON 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
Field | Type | Description |
---|---|---|
detail.code | integer | Always 10000 for successful orders |
detail.msg | string | Success message with deducted amount |
detail.data.orderId | string | Unified order ID (format: 1H{request_id} ) |
detail.data.paidTRX | number | Total cost in TRX (includes activation fee if address was not activated) |
detail.data.hash | string | Transaction hash (may be empty if provider doesn't provide it) |
detail.data.delegateAddress | string | Pool address that delegated energy |
detail.data.energy | integer | Energy 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
Code | Description | HTTP Status |
---|---|---|
10000 | Success | 200 |
1004 | Insufficient balance | 403 |
5000 | Internal server error | 500 |
5001 | Energy provider unavailable | 503 |
5002 | Energy provider unavailable | 503 |
5003 | Energy service unavailable | 503 |
5004 | Energy provider minimum not met | 503 |
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)