GET /apiv2/prices
Получение текущих цен на аренду энергии для разных периодов времени в течение дня.
URL эндпоинта
GET https://netts.io/apiv2/prices
Заголовки запроса
Заголовок | Обязательный | Описание |
---|---|---|
X-API-KEY | Да | Ваш API ключ |
X-Real-IP | Да | IP адрес из белого списка |
Параметры запроса
Параметры не требуются - возвращает всю текущую информацию о ценах.
Примеры запросов
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"Статус: {data.get('status')}")
print(f"Текущее UTC время: {data.get('current_utc_time')}")
print(f"Активный период: {data.get('active_period')}")
print(f"Цена хоста: {data.get('host_price')} TRX")
print("\nПериоды цен:")
for period in data.get('periods', []):
is_active = period.get('is_active', False)
active_marker = " *АКТИВНЫЙ*" if is_active else ""
print(f"\n{period.get('label')}{active_marker}:")
print(f" Время: {period.get('period')}")
prices = period.get('prices', {})
print(f" < 200k энергии: {prices.get('less_than_200k', {}).get('price_sun')} sun")
print(f" = 131k энергии: {prices.get('equal_131k', {}).get('price_sun')} sun")
print(f" > 200k энергии: {prices.get('more_than_200k', {}).get('price_sun')} sun")
else:
print(f"Ошибка: {data.get('message', 'Неизвестная ошибка')}")
Node.js
javascript
const axios = require('axios');
const url = 'https://netts.io/apiv2/prices';
const headers = {
'Content-Type': 'application/json',
'X-API-KEY': 'your_api_key',
'X-Real-IP': 'your_whitelisted_ip'
};
async function getPrices() {
try {
const response = await axios.post(url, {}, { headers });
const prices = response.data.data;
console.log('Текущие цены на энергию:');
Object.entries(prices).forEach(([period, price]) => {
console.log(`${period}: ${price} TRX`);
});
} catch (error) {
console.error('Error:', error.response.data);
}
}
getPrices();
PHP
php
<?php
$url = 'https://netts.io/apiv2/prices';
$headers = [
'Content-Type: application/json',
'X-API-KEY: your_api_key',
'X-Real-IP: your_whitelisted_ip'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{}');
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
$data = json_decode($response, true);
echo "Текущие цены на энергию:\n";
foreach ($data['data'] as $period => $price) {
echo "$period: $price TRX\n";
}
} else {
echo "Error: HTTP $httpCode\n";
echo $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": "Ранние утренние часы (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": "Утренние часы (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
}
}
}
]
}
Поля ответа
Поле | Тип | Описание |
---|---|---|
status | string | Всегда "success" для успешных запросов |
current_utc_time | string | Текущее время сервера в UTC |
current_utc_hour | integer | Текущий час UTC (0-23) |
active_period | string | Активный период ценообразования |
last_update | string | Время последнего обновления цен |
host_price | number | Текущая цена хоста в TRX |
periods | array | Массив всех периодов ценообразования |
periods[].label | string | Человекочитаемое название периода |
periods[].period | string | Временной диапазон (HH:MM-HH:MM) |
periods[].is_active | boolean | Активен ли этот период в данный момент |
periods[].prices.less_than_200k.price_sun | integer | Цена в SUN для энергии < 200,000 единиц |
periods[].prices.equal_131k.price_sun | integer | Цена в SUN для ровно 131,000 единиц |
periods[].prices.more_than_200k.price_sun | integer | Цена в SUN для энергии > 200,000 единиц |
Категории объема энергии
Категория | Описание | Диапазон энергии |
---|---|---|
less_than_200k | Малые заказы | < 200,000 единиц энергии |
equal_131k | Стандартные заказы | Ровно 131,000 единиц энергии |
more_than_200k | Крупные заказы | > 200,000 единиц энергии |
Временные периоды
API возвращает цены для 5 различных периодов времени:
Период | Время (UTC) | Описание |
---|---|---|
Раннее утро | 05:00-07:00 | Период низкого спроса |
Утро | 07:00-11:00 | Начало рабочих часов |
День | 11:00-21:00 | Пиковые рабочие часы |
Вечер | 21:00-23:00 | Вечерняя активность |
Ночь | 23:00-05:00 | Период самого низкого спроса |
Ограничения частоты запросов
Следующие ограничения применяются к этому эндпоинту (на IP адрес):
Период | Лимит | Описание |
---|---|---|
1 минута | 1 запрос | Максимум 1 запрос в минуту |
1 час | 60 запросов | Максимум 60 запросов в час |
Заголовки ограничений
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
Превышение лимита (429)
json
{
"message": "API rate limit exceeded"
}
Ответы с ошибками
Ошибка аутентификации (401)
json
{
"status": "error",
"code": 401,
"message": "Invalid API key or IP not in whitelist"
}
Внутренняя ошибка сервера (500)
json
{
"status": "error",
"message": "Internal server error"
}
Примечания
- Тело запроса не требуется - это GET запрос
- Все цены указаны в SUN (1 TRX = 1,000,000 SUN)
- Цены различаются по объему энергии и времени суток (UTC)
- Активный период: Меняется в течение дня в зависимости от спроса
- Ограничения частоты: Строгие лимиты из-за ресурсоемких операций с базой данных
- Обновление цен: Цены обновляются из базы данных периодически
- Часовые пояса: Все времена указаны в UTC