GET /apiv2/prices
Get current energy rental prices for different time periods throughout the day.
Endpoint URL
GET https://netts.io/apiv2/prices
Request Headers
Header | Required | Description |
---|---|---|
X-API-KEY | Yes | Your API key |
X-Real-IP | Yes | IP address from whitelist |
Request Parameters
No parameters required - returns all current pricing information.
Example Requests
cURL
bash
curl -X GET https://netts.io/apiv2/prices \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip"
Python
python
import requests
url = "https://netts.io/apiv2/prices"
headers = {
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip"
}
response = requests.get(url, headers=headers)
data = response.json()
if response.status_code == 200:
print(f"Status: {data.get('status')}")
print(f"Current UTC time: {data.get('current_utc_time')}")
print(f"Active period: {data.get('active_period')}")
print(f"Host price: {data.get('host_price')} TRX")
print("\nPrice periods:")
for period in data.get('periods', []):
is_active = period.get('is_active', False)
active_marker = " *ACTIVE*" if is_active else ""
print(f"\n{period.get('label')}{active_marker}:")
print(f" Time: {period.get('period')}")
prices = period.get('prices', {})
print(f" < 200k energy: {prices.get('less_than_200k', {}).get('price_sun')} sun")
print(f" = 131k energy: {prices.get('equal_131k', {}).get('price_sun')} sun")
print(f" > 200k energy: {prices.get('more_than_200k', {}).get('price_sun')} sun")
else:
print(f"Error: {data.get('message', 'Unknown error')}")
Response
Success Response (200 OK)
json
{
"status": "success",
"current_utc_time": "2025-09-02 06:50:39",
"current_utc_hour": 6,
"active_period": "05:00-07:00",
"last_update": "2025-09-02 08:05:03",
"host_price": 2.989,
"periods": [
{
"label": "Early Morning Hours (05:00-07:00 UTC)",
"period": "05:00-07:00",
"is_active": true,
"prices": {
"less_than_200k": {
"price_sun": 17
},
"equal_131k": {
"price_sun": 17
},
"more_than_200k": {
"price_sun": 17
}
}
},
{
"label": "Morning Hours (07:00-11:00 UTC)",
"period": "07:00-11:00",
"is_active": false,
"prices": {
"less_than_200k": {
"price_sun": 17
},
"equal_131k": {
"price_sun": 17
},
"more_than_200k": {
"price_sun": 17
}
}
}
]
}
Response Fields
Field | Type | Description |
---|---|---|
status | string | Always "success" for successful requests |
current_utc_time | string | Current server time in UTC |
current_utc_hour | integer | Current UTC hour (0-23) |
active_period | string | Currently active pricing period |
last_update | string | Last time prices were updated |
host_price | number | Current host price in TRX |
periods | array | Array of all pricing periods |
periods[].label | string | Human-readable period name |
periods[].period | string | Time range (HH:MM-HH:MM) |
periods[].is_active | boolean | Whether this period is currently active |
periods[].prices.less_than_200k.price_sun | integer | Price in SUN for energy < 200,000 units |
periods[].prices.equal_131k.price_sun | integer | Price in SUN for exactly 131,000 units |
periods[].prices.more_than_200k.price_sun | integer | Price in SUN for energy > 200,000 units |
Energy Amount Categories
Category | Description | Energy Range |
---|---|---|
less_than_200k | Small orders | < 200,000 energy units |
equal_131k | Standard orders | Exactly 131,000 energy units |
more_than_200k | Large orders | > 200,000 energy units |
Time Periods
The API returns prices for 5 different time periods:
Period | Time Range (UTC) | Description |
---|---|---|
Early Morning | 05:00-07:00 | Lower demand period |
Morning | 07:00-11:00 | Business hours start |
Daytime | 11:00-21:00 | Peak business hours |
Evening | 21:00-23:00 | Evening activity |
Night | 23:00-05:00 | Lowest demand period |
Rate Limits
The following rate limits apply to this endpoint (per IP address):
Period | Limit | Description |
---|---|---|
1 minute | 1 request | Maximum 1 request per minute |
1 hour | 60 requests | Maximum 60 requests per hour |
Rate Limit Headers
http
RateLimit-Limit: 1
RateLimit-Remaining: 0
RateLimit-Reset: 21
X-RateLimit-Limit-Minute: 1
X-RateLimit-Remaining-Minute: 0
X-RateLimit-Limit-Hour: 60
X-RateLimit-Remaining-Hour: 59
Retry-After: 21
Rate Limit Exceeded (429)
json
{
"message": "API rate limit exceeded"
}
Error Responses
Authentication Error (401)
json
{
"status": "error",
"code": 401,
"message": "Invalid API key or IP not in whitelist"
}
Internal Server Error (500)
json
{
"status": "error",
"message": "Internal server error"
}
Notes
- No request body required - this is a GET request
- All prices are in SUN (1 TRX = 1,000,000 SUN)
- Prices vary by energy amount and time of day (UTC)
- Active period: Changes throughout the day based on demand
- Rate limiting: Strict limits due to database-intensive operations
- Price updates: Prices are refreshed from database periodically
- Time zones: All times are in UTC