GET /apiv2/prices Застаріло
Застаріло
Цей ендпоінт застарів і буде видалений у майбутньому релізі. Будь ласка, перейдіть на новий ендпоінт GET /apiv2/pricing, який надає динамічні періоди, фільтрацію послуг, знижки за тривалість та уніфікований формат відповіді.
Отримання актуальних цін на оренду Energy для різних періодів часу протягом доби.
Ціна може змінитися під час виконання
Ціна, яку повертає цей ендпоінт, може змінитися під час обробки замовлення. Постачальник енергії може відхилити запит на делегування, і в такому разі Netts автоматично перенаправляє замовлення наступному доступному постачальнику. Netts прагне не лише пропонувати найбільш конкурентну ціну, але й забезпечувати надійне постачання енергії — тому замовлення може бути виконане за ціною, вищою за вказану. Це стосується лише замовлень від 300 000 одиниць Energy і більше.
URL ендпоінту
GET https://netts.io/apiv2/pricesЗаголовки запиту
| Заголовок | Обов'язковий | Опис | Значення |
|---|---|---|---|
| X-API-KEY | Так | Ваш API-ключ | рядок |
| X-Real-IP | Так | IP-адреса з білого списку | IP-адреса |
| 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 | Ціна за одиницю Energy в SUN | price=27 sun |
| 65k=X.XXX TRX (X.XX$) | Вартість 65 000 одиниць Energy | 65k=1.755 TRX (0.52$) |
| 131k=X.XXX TRX (X.XX$) | Вартість 131 000 одиниць Energy | 131k=3.537 TRX (1.05$) |
| 1m=X.XXX TRX (X.XX$) | Вартість 1 000 000 одиниць Energy | 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 хвилин.
Тип вмісту
- Розширений формат:
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" # Запит компактного формату
}
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, щоб отримати ультракомпактну текстову відповідь, яка містить лише розрахунки вартості Energy, без мітки періоду та ціни за одиницю.
Коли використовувати
- Панелі моніторингу з обмеженим простором
- Мобільні додатки
- Мінімальні вимоги до пропускної здатності
- Фокус лише на підсумковій вартості
Приклад запиту
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 одиниць Energy | 65k=1.755 TRX (0.52$) |
| 131k=X.XXX TRX (X.XX$) | Вартість 131 000 одиниць Energy | 131k=3.537 TRX (1.05$) |
| 1m=X.XXX TRX (X.XX$) | Вартість 1 000 000 одиниць Energy | 1m=27.000 TRX (7.99$) |
Примітка: Цей формат не містить мітки періоду та ціни за одиницю Energy для забезпечення максимальної компактності.
Тип вмісту
- Ультракомпактний формат:
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" # Запит ультракомпактного формату
}
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 одиниць Energy) | 1-1.690 TRX (0.50$) |
| 2-X.XXX TRX (X.XX$) | Вартість 2 замовлень (131 000 одиниць Energy) | 2-3.380 TRX (1.00$) |
| 3-X.XXX TRX (X.XX$) | Вартість 3 замовлень (3 × 65 000 Energy) | 3-5.070 TRX (1.50$) |
| 5-X.XXX TRX (X.XX$) | Вартість 5 замовлень (5 × 65 000 Energy) | 5-8.450 TRX (2.50$) |
| 10-X.XXX TRX (X.XX$) | Вартість 10 замовлень (10 × 65 000 Energy) | 10-16.900 TRX (5.00$) |
| 20-X.XXX TRX (X.XX$) | Вартість 20 замовлень (20 × 65 000 Energy) | 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 хвилин.
Тип вмісту
- Формат 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" # Запит формату count
}
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 | рядок | Завжди "success" для успішних запитів |
| current_utc_time | рядок | Поточний час сервера в UTC |
| current_utc_hour | ціле число | Поточна година за UTC (0-23) |
| active_period | рядок | Активний наразі період ціноутворення |
| last_update | рядок | Час останнього оновлення цін |
| host_price | число | Поточна ціна хоста в TRX |
| periods | масив | Масив усіх періодів ціноутворення |
| periods[].label | рядок | Зрозуміла для читання назва періоду |
| periods[].period | рядок | Діапазон часу (HH:MM-HH:MM) |
| periods[].is_active | булеве | Чи є цей період активним наразі |
| periods[].prices.less_than_200k.price_sun | ціле число | Ціна в SUN для Energy < 200 000 одиниць |
| periods[].prices.equal_131k.price_sun | ціле число | Ціна в SUN для рівно 131 000 одиниць |
| periods[].prices.more_than_200k.price_sun | ціле число | Ціна в SUN для Energy > 200 000 одиниць |
Категорії кількості Energy
| Категорія | Опис | Діапазон Energy |
|---|---|---|
| less_than_200k | Малі замовлення | < 200 000 одиниць Energy |
| equal_131k | Стандартні замовлення | Рівно 131 000 одиниць Energy |
| more_than_200k | Великі замовлення | > 200 000 одиниць Energy |
Періоди часу
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)
- Ціни варіюються залежно від обсягу Energy та часу доби (UTC)
- Активний період: Змінюється протягом доби залежно від попиту
- Обмеження запитів: Суворі ліміти через високе навантаження операцій на базу даних
- Оновлення цін: Ціни періодично оновлюються з бази даних
- Часові пояси: Увесь час вказано в UTC