Skip to content
Translated page. The English version is the source of truth.

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

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')}")

Компактний формат відповіді

Нове у v2.1: Використовуйте заголовок X-Format, щоб отримати компактну текстову відповідь замість повної структури JSON.

Коли використовувати

  • Інтеграція з системами моніторингу
  • Просте відображення цін
  • Автоматизоване відстеження цін
  • Мінімальні вимоги до пропускної здатності

Приклад запиту

bash
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"

Приклад компактної відповіді

text
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 в SUNprice=27 sun
65k=X.XXX TRX (X.XX$)Вартість 65 000 одиниць Energy65k=1.755 TRX (0.52$)
131k=X.XXX TRX (X.XX$)Вартість 131 000 одиниць Energy131k=3.537 TRX (1.05$)
1m=X.XXX TRX (X.XX$)Вартість 1 000 000 одиниць Energy1m=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

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, без мітки періоду та ціни за одиницю.

Коли використовувати

  • Панелі моніторингу з обмеженим простором
  • Мобільні додатки
  • Мінімальні вимоги до пропускної здатності
  • Фокус лише на підсумковій вартості

Приклад запиту

bash
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"

Приклад ультракомпактної відповіді

text
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 одиниць Energy65k=1.755 TRX (0.52$)
131k=X.XXX TRX (X.XX$)Вартість 131 000 одиниць Energy131k=3.537 TRX (1.05$)
1m=X.XXX TRX (X.XX$)Вартість 1 000 000 одиниць Energy1m=27.000 TRX (7.99$)

Примітка: Цей формат не містить мітки періоду та ціни за одиницю Energy для забезпечення максимальної компактності.

Тип вмісту

  • Ультракомпактний формат: text/plain

Приклад на Python

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 замовлень.

Коли використовувати

  • Відображення цін для оптових замовлень
  • Калькулятори оптових знижок
  • Інструменти порівняння цін
  • Планування обсягу замовлень
  • Оцінка витрат для кількох замовлень

Приклад запиту

bash
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"

Приклад відповіді для кількості замовлень

text
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

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)

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
                }
            }
        }
    ]
}

Поля відповіді

ПолеТипОпис
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 Morning05:00-07:00Період низького попиту
Morning07:00-11:00Початок робочих годин
Daytime11:00-21:00Пікові робочі години
Evening21:00-23:00Вечірня активність
Night23: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)
  • Ціни варіюються залежно від обсягу Energy та часу доби (UTC)
  • Активний період: Змінюється протягом доби залежно від попиту
  • Обмеження запитів: Суворі ліміти через високе навантаження операцій на базу даних
  • Оновлення цін: Ціни періодично оновлюються з бази даних
  • Часові пояси: Увесь час вказано в UTC