# Эндпоинт цен

Эндпоинт /prices предоставляет информацию о ценах на аренду энергии в реальном времени для различных периодов дня.

# URL эндпоинта

GET https://netts.io/apiv2/prices

# Аутентификация

Этот эндпоинт требует аутентификации с помощью API-ключа. Подробности смотрите на странице Аутентификация.

# Заголовки запроса

Заголовок Обязательный Описание
X-API-KEY Да Ваш API-ключ NETTS
X-Real-IP Да IP-адрес, включенный в белый список для вашего API-ключа
Content-Type Нет application/json

# IP Белый список

Все API-запросы должны поступать с IP-адресов, добавленных в белый список. Вы можете добавить до 3 IP-адресов в белый список на странице панели управления (opens new window).

# Как добавить IP в белый список

  1. Войдите в панель управления NETTS
  2. Перейдите на вкладку API: https://www.netts.io/workspace/dashboard.php?tab=api
  3. В разделе "IP Whitelist" нажмите кнопку "Add IP Address"
  4. Введите действительный IPv4 или IPv6 адрес
  5. Подтвердите добавление

Примечание: Запросы с IP-адресов, которые не включены в белый список, будут отклонены с ошибкой аутентификации.

# Ответ

Ответ включает текущее время UTC, активный период ценообразования, цену хоста и подробную информацию о ценах для всех временных периодов.

# Параметры ответа

Параметр Тип Описание
status string Статус запроса ("success" или "error")
current_utc_time string Текущее время UTC в формате "YYYY-MM-DD HH:MM:SS"
current_utc_hour integer Текущий час UTC (0-23)
active_period string Текущий активный временной период (например, "05:00-07:00")
last_update string Время последнего обновления цен
host_price number Текущая цена хоста в TRX
periods array Список периодов ценообразования

# Структура объекта Period

Каждый период в массиве periods содержит:

Параметр Тип Описание
label string Понятное для человека название периода
period string Временной диапазон в формате "HH:MM-HH:MM"
is_active boolean Активен ли в данный момент этот период
prices object Информация о ценах для разных объемов энергии

# Структура объекта Prices

Объект prices внутри каждого периода содержит:

Параметр Тип Описание
less_than_200k object Цены для объемов энергии менее 200 000
equal_131k object Цены для ровно 131 000 энергии
more_than_200k object Цены для объемов энергии более 200 000

Каждый вариант цены включает:

Параметр Тип Описание
price_sun integer Цена в SUN (1 TRX = 1 000 000 SUN)

# Примеры запросов

# Пример CURL

curl -X GET "https://netts.io/apiv2/prices" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: ваш_api_ключ" \
  -H "X-Real-IP: ваш_ip_из_белого_списка"

# Пример Python

import requests
import json

# Конфигурация запроса
url = "https://netts.io/apiv2/prices"
api_key = "ваш_api_ключ"  # Ваш API ключ

headers = {
    "Content-Type": "application/json",
    "X-API-KEY": api_key,
    "X-Real-IP": "ваш_ip_из_белого_списка"  # IP из белого списка
}

try:
    # Отправляем GET-запрос к API цен
    response = requests.get(url, headers=headers, timeout=15)
    
    # Обрабатываем JSON-ответ
    if response.status_code == 200:
        data = response.json()
        print(json.dumps(data, ensure_ascii=False, indent=2))
    else:
        print(f"Ошибка: {response.status_code}")
        print(response.text)
except Exception as e:
    print(f"Произошла ошибка: {str(e)}")

# Пример ответа

{
  "status": "success",
  "current_utc_time": "2025-04-23 14:30:45",
  "current_utc_hour": 14,
  "active_period": "11:00-21:00",
  "last_update": "2025-04-23 14:15:22",
  "host_price": 0.075,
  "periods": [
    {
      "label": "Раннее утро",
      "period": "05:00-07:00",
      "is_active": false,
      "prices": {
        "less_than_200k": {
          "price_sun": 420
        },
        "equal_131k": {
          "price_sun": 410
        },
        "more_than_200k": {
          "price_sun": 400
        }
      }
    },
    {
      "label": "Утро",
      "period": "07:00-11:00",
      "is_active": false,
      "prices": {
        "less_than_200k": {
          "price_sun": 450
        },
        "equal_131k": {
          "price_sun": 440
        },
        "more_than_200k": {
          "price_sun": 430
        }
      }
    },
    {
      "label": "День",
      "period": "11:00-21:00",
      "is_active": true,
      "prices": {
        "less_than_200k": {
          "price_sun": 480
        },
        "equal_131k": {
          "price_sun": 470
        },
        "more_than_200k": {
          "price_sun": 460
        }
      }
    },
    {
      "label": "Вечер",
      "period": "21:00-23:00",
      "is_active": false,
      "prices": {
        "less_than_200k": {
          "price_sun": 440
        },
        "equal_131k": {
          "price_sun": 430
        },
        "more_than_200k": {
          "price_sun": 420
        }
      }
    },
    {
      "label": "Ночь",
      "period": "23:00-05:00",
      "is_active": false,
      "prices": {
        "less_than_200k": {
          "price_sun": 400
        },
        "equal_131k": {
          "price_sun": 390
        },
        "more_than_200k": {
          "price_sun": 380
        }
      }
    }
  ]
}

# Ответы с ошибками

Код статуса Описание
401 Ошибка аутентификации (неверный API-ключ или IP-адрес не в белом списке)
403 Доступ запрещен (IP-адрес не добавлен в белый список)
429 Превышен лимит запросов (слишком много запросов)
500 Внутренняя ошибка сервера

# Примеры ответов с ошибкой

{
  "status": "error",
  "code": -1,
  "msg": "Invalid API key or IP not in whitelist"
}
{
  "status": "error",
  "code": -2,
  "msg": "Your IP address is not whitelisted"
}

# Примечания

  • Все времена указаны в UTC.
  • Цены указаны в SUN (1 TRX = 1 000 000 SUN).
  • Активный период определяется на основе текущего времени UTC.
  • Обновления цен могут происходить несколько раз в день.