GET /apiv2/prices Deprecated
Устарело
Этот эндпоинт устарел и будет удален в будущей версии. Пожалуйста, перейдите на новый эндпоинт GET /apiv2/pricing, который предоставляет динамические периоды, фильтрацию услуг, скидки за продолжительность и единый формат ответа.
Получение текущих цен на аренду энергии для различных периодов времени в течение дня.
Цена может измениться в процессе выполнения
Цена, возвращаемая этим эндпоинтом, может измениться во время обработки заказа. Поставщик энергии может отклонить запрос на делегирование, и в этом случае Netts автоматически перенаправит заказ следующему доступному поставщику. Netts стремится не только предлагать наиболее конкурентоспособную цену, но и обеспечивать надежное предоставление энергии — поэтому заказ может быть выполнен по цене выше заявленной. Это относится только к заказам от 300 000 единиц энергии и выше.
URL эндпоинта
GET https://netts.io/apiv2/pricesЗаголовки запроса
| Заголовок | Обязательный | Описание | Значения |
|---|---|---|---|
| X-API-KEY | Да | Ваш ключ API | string |
| X-Real-IP | Да | IP-адрес из белого списка | IP address |
| X-Format | Нет | Формат ответа (по умолчанию: расширенный JSON) | now, compact, short, short1h, count |
Параметры запроса
Параметры не требуются — возвращает всю актуальную информацию о ценах.
Примеры запросов
cURL
curl -X GET https://netts.io/apiv2/prices \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip"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')}")Компактный формат ответа
Новое в v2.1: используйте заголовок X-Format, чтобы получить компактный текстовый ответ вместо полной структуры JSON.
Когда использовать
- Интеграция с системами мониторинга
- Простое отображение цен
- Автоматизированное отслеживание цен
- Минимальные требования к пропускной способности сети
Пример запроса
curl -X GET https://netts.io/apiv2/prices \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-H "X-Format: now"Пример компактного ответа
Daytime Hours (11:00-21:00 UTC): price=27 sun, 65k=1.755 TRX (0.52$), 131k=3.537 TRX (1.05$), 1m=27.000 TRX (7.99$)Пояснение к формату ответа
Компактный формат предоставляет:
| Компонент | Описание | Пример |
|---|---|---|
| Метка периода | Активный период тарификации | Daytime Hours (11:00-21:00 UTC) |
| price=X sun | Цена за единицу энергии в SUN | price=27 sun |
| 65k=X.XXX TRX (X.XX$) | Стоимость 65 000 единиц энергии | 65k=1.755 TRX (0.52$) |
| 131k=X.XXX TRX (X.XX$) | Стоимость 131 000 единиц энергии | 131k=3.537 TRX (1.05$) |
| 1m=X.XXX TRX (X.XX$) | Стоимость 1 000 000 единиц энергии | 1m=27.000 TRX (7.99$) |
Формула расчета
TRX cost = (price_sun / 1,000,000) × energy_amount
USD cost = TRX_cost × current_TRX_USD_rateПримечание: Курс обмена TRX/USD берется из таблицы chain_param и кэшируется на 30 минут.
Content-Type
- Расширенный формат:
application/json - Компактный формат:
text/plain
Пример на Python
import requests
url = "https://netts.io/apiv2/prices"
headers = {
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip",
"X-Format": "now" # Request compact format
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print("Compact price data:")
print(response.text)
# Output: Daytime Hours (11:00-21:00 UTC): price=27 sun, 65k=1.755 TRX (0.52$), ...
else:
print(f"Error: {response.status_code}")Ультракомпактный формат ответа (short1h)
Новое в v2.2: используйте заголовок X-Format: short1h, чтобы получить ультракомпактный текстовый ответ, содержащий только расчеты стоимости энергии, без метки периода и цены за единицу.
Когда использовать
- Панели мониторинга с ограниченным пространством
- Мобильные приложения
- Минимальные требования к пропускной способности сети
- Фокус только на итоговой стоимости
Пример запроса
curl -X GET https://netts.io/apiv2/prices \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-H "X-Format: short1h"Пример ультракомпактного ответа
65k=1.755 TRX (0.52$), 131k=3.537 TRX (1.05$), 1m=27.000 TRX (7.99$)Пояснение к формату ответа
Ультракомпактный формат предоставляет только основные расчеты стоимости:
| Компонент | Описание | Пример |
|---|---|---|
| 65k=X.XXX TRX (X.XX$) | Стоимость 65 000 единиц энергии | 65k=1.755 TRX (0.52$) |
| 131k=X.XXX TRX (X.XX$) | Стоимость 131 000 единиц энергии | 131k=3.537 TRX (1.05$) |
| 1m=X.XXX TRX (X.XX$) | Стоимость 1 000 000 единиц энергии | 1m=27.000 TRX (7.99$) |
Примечание: В этом формате исключены метка периода и цена за единицу энергии для максимальной компактности.
Content-Type
- Ультракомпактный формат:
text/plain
Пример на Python
import requests
url = "https://netts.io/apiv2/prices"
headers = {
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip",
"X-Format": "short1h" # Request ultra-compact format
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print("Ultra-compact price data:")
print(response.text)
# Output: 65k=1.755 TRX (0.52$), 131k=3.537 TRX (1.05$), 1m=27.000 TRX (7.99$)
else:
print(f"Error: {response.status_code}")Формат ответа для множественных заказов (count)
Новое в v2.3: используйте заголовок X-Format: count, чтобы получить расчет стоимости оптовых заказов, показывающий стоимость для 1, 2, 3, 5, 10 и 20 заказов.
Когда использовать
- Отображение цен для оптовых заказов
- Калькуляторы скидок за объем
- Инструменты сравнения цен
- Планирование объема заказов
- Оценка стоимости нескольких заказов
Пример запроса
curl -X GET https://netts.io/apiv2/prices \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-H "X-Format: count"Пример ответа с расчетом количества
1-1.690 TRX (0.50$), 2-3.380 TRX (1.00$), 3-5.070 TRX (1.50$), 5-8.450 TRX (2.50$), 10-16.900 TRX (5.00$), 20-33.800 TRX (10.00$)Пояснение к формату ответа
Формат count предоставляет рассчитанную стоимость для различного количества заказов:
| Компонент | Описание | Пример |
|---|---|---|
| 1-X.XXX TRX (X.XX$) | Стоимость 1 заказа (65 000 единиц энергии) | 1-1.690 TRX (0.50$) |
| 2-X.XXX TRX (X.XX$) | Стоимость 2 заказов (131 000 единиц энергии) | 2-3.380 TRX (1.00$) |
| 3-X.XXX TRX (X.XX$) | Стоимость 3 заказов (3 × 65 000 энергии) | 3-5.070 TRX (1.50$) |
| 5-X.XXX TRX (X.XX$) | Стоимость 5 заказов (5 × 65 000 энергии) | 5-8.450 TRX (2.50$) |
| 10-X.XXX TRX (X.XX$) | Стоимость 10 заказов (10 × 65 000 энергии) | 10-16.900 TRX (5.00$) |
| 20-X.XXX TRX (X.XX$) | Стоимость 20 заказов (20 × 65 000 энергии) | 20-33.800 TRX (10.00$) |
Формула расчета
1 order: TRX cost = (price_sun_65k / 1,000,000) × 65,000
2 orders: TRX cost = (price_sun_131k / 1,000,000) × 131,000
3+ orders: TRX cost = (price_sun_65k / 1,000,000) × 65,000 × quantity
USD cost = TRX_cost × current_TRX_USD_rateПримечание: Курс обмена TRX/USD берется из таблицы chain_param и кэшируется на 30 минут.
Content-Type
- Формат count:
text/plain
Пример на Python
import requests
url = "https://netts.io/apiv2/prices"
headers = {
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip",
"X-Format": "count" # Request count format
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print("Bulk order pricing:")
print(response.text)
# Output: 1-1.690 TRX (0.50$), 2-3.380 TRX (1.00$), 3-5.070 TRX (1.50$), ...
else:
print(f"Error: {response.status_code}")Ответ
Успешный ответ (200 OK)
{
"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
}
}
}
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| 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) | Описание |
|---|---|---|
| Early Morning | 05:00-07:00 | Период пониженного спроса |
| Morning | 07:00-11:00 | Начало рабочих часов |
| Daytime | 11:00-21:00 | Пиковые рабочие часы |
| Evening | 21:00-23:00 | Вечерняя активность |
| Night | 23:00-05:00 | Период наименьшего спроса |
Ограничения частоты запросов
К этому эндпоинту применяются следующие ограничения частоты запросов (на один IP-адрес):
| Период | Лимит | Описание |
|---|---|---|
| 1 минута | 1 запрос | Максимум 1 запрос в минуту |
| 1 час | 60 запросов | Максимум 60 запросов в час |
Заголовки ограничения частоты запросов
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)
{
"message": "API rate limit exceeded"
}Ответы с ошибками
Ошибка аутентификации (401)
{
"status": "error",
"code": 401,
"message": "Invalid API key or IP not in whitelist"
}Внутренняя ошибка сервера (500)
{
"status": "error",
"message": "Internal server error"
}Примечания
- Тело запроса не требуется — это запрос типа GET
- Все цены указаны в SUN (1 TRX = 1 000 000 SUN)
- Цены варьируются в зависимости от объема энергии и времени суток (UTC)
- Активный период: меняется в течение дня в зависимости от спроса
- Ограничение частоты запросов: строгие лимиты из-за операций, создающих высокую нагрузку на базу данных
- Обновление цен: цены периодически обновляются из базы данных
- Часовые пояса: все временные метки указаны в UTC