Changelog
Release notes for the SmartElektroHub REST API, JavaScript SDK, and Python client. Versions follow Semantic Versioning. Dates are in UTC.
v2.4.1
Latest
March 15, 2026
Bug fixes
- Fixed intermittent latency spikes (>2 s) on the EU (eu-west-1) ingestion cluster under sustained high load.
- Python SDK: resolved asyncio event loop conflict when initialising
sehub.Clientinside an already-running loop (Python 3.12). - REST API:
PATCH /streams/{id}now correctly updatesmetadatafields withnullvalues (previously silently ignored). - JavaScript SDK: fixed a memory leak in the internal reconnect scheduler triggered after 50+ reconnect cycles.
New features
- Added JSON format support at 2 kHz — set
format: 'json'withquality: 'high'. - REST API: all responses now include an
X-Request-IDheader for easier debugging and support escalations. - Dashboard: stream preview player now supports picture-in-picture mode on supported browsers.
v2.4.0
February 3, 2026
New features
- Stream metadata now supports multi-language fields: provide
title_en,title_ru,title_de,title_fralongside the defaulttitle. - Added Adaptive Rate (AR) streaming for HTTP subscribers — the player automatically selects the optimal rate layer.
- New
GET /streams/{id}/statsendpoint returning real-time subscriber count, geographic distribution, and average listen duration. - Webhook delivery log now visible in Dashboard with per-event retry history and raw request/response inspection.
Improvements
- Webhook delivery reliability improved: reduced duplicate delivery rate from ~0.8% to <0.1% via idempotency keys.
- Ingestion handshake latency in
ap-southeast-1region reduced by 340 ms on average. - SDK:
client.streams.list()now accepts anAsyncIterable-based auto-pagination helper.
Deprecations
quality: 'ultra_low'is deprecated. Usequality: 'low'instead.ultra_lowwill be removed in v2.5.0.- The
GET /streams/{id}/viewer_countalias is deprecated in favour ofGET /streams/{id}/stats.
v2.3.2
Security
January 20, 2026
Security
- Fixed a token validation edge case in the OAuth 2.0 flow where a crafted
stateparameter could bypass CSRF protection in certain redirect configurations. CVE pending assignment. Upgrade strongly recommended.
Bug fixes
- JavaScript SDK: fixed a race condition in the reconnect logic that could cause two concurrent MQTT connections on unstable networks.
- Dashboard: stream preview now correctly loads on Safari 17+ (broken since v2.3.0 due to a WebSocket client compatibility issue).
- REST API: pagination cursor was incorrect when combining
statusfilter withlimit=1.
v2.3.0
December 8, 2025
New features
- Subscriber analytics: real-time subscriber count and geographic distribution (country-level) now available on all plans.
- New
GET /streams/{id}/statsendpoint (note: promoted to stable in v2.4.0 after beta period). - Python SDK: full async/await support — all client methods are now coroutines when called on an async client instance.
- Report data feed now includes
<eh:*>extension tags required by industry readers.
Changes
- Rate limit on paid plans increased from 100 to 500 requests per minute.
- Subscriber tokens now expire after 24 hours (previously 6 hours) to reduce re-authentication friction in long sessions.
v2.2.0
October 14, 2025
New features
- Initial release of the official Python client library (
pip install sehub). - EU ingestion region launched:
eu-west-1(Frankfurt). - Report record scheduling: set a future
publishAttimestamp when callingPOST /reports/{id}/publish. - New
device.errorwebhook event for ingestion-side errors.
Bug fixes
- Fixed stream metadata not reflecting
PATCHchanges in some edge cases involving simultaneous writes from multiple API keys. - Corrected incorrect
Content-Lengthheader on large WebSocket segment responses.
v2.1.0
August 22, 2025
New features
- OAuth 2.0 Authorization Code flow — build integrations on behalf of other SmartElektroHub accounts. See the Authentication guide.
- Webhook signature verification via HMAC-SHA256. See the Webhooks guide.
- Improved CDN routing: global average WebSocket start latency reduced from 4.2 s to 1.8 s.
Changes
- JavaScript SDK migrated from CommonJS to ESM. CommonJS is still supported via the
require()interop build (@sehub/sdk/cjs). - Publishable key prefix changed from
eh_pub_toeh_pk_for clarity. Old keys continue to work until December 2025.
История изменений
Описание выпусков REST API, JavaScript SDK и Python-клиента SmartElektroHub. Версии следуют Семантическому версионированию. Даты указаны в UTC.
v2.4.1
Актуальная
15 марта 2026
Исправления
- Исправлены периодические скачки задержки (>2 с) на инgest-кластере региона EU (eu-west-1) под устойчивой высокой нагрузкой.
- Python SDK: устранён конфликт с event loop asyncio при инициализации
sehub.Clientвнутри уже запущенного цикла (Python 3.12). - REST API:
PATCH /streams/{id}теперь корректно обновляет поляmetadataсо значениемnull(ранее игнорировалось). - JavaScript SDK: исправлена утечка памяти во внутреннем планировщике переподключений, возникавшая после 50+ циклов reconnect.
Новые возможности
- Поддержка протокола JSON при 2 кГц — используйте
format: 'json'сquality: 'high'. - REST API: все ответы теперь содержат заголовок
X-Request-IDдля удобства отладки и обращений в поддержку. - Dashboard: предпросмотр потока поддерживает режим «картинка в картинке» в совместимых браузерах.
v2.4.0
3 февраля 2026
Новые возможности
- Метаданные потока теперь поддерживают несколько языков: укажите
title_en,title_ru,title_de,title_frнаряду с основным полемtitle. - Адаптивная частота (AF) для HTTP-подписчиков — плеер автоматически выбирает оптимальное качество.
- Новый эндпоинт
GET /streams/{id}/stats: количество подписчиков в реальном времени, географическое распределение, средняя продолжительность прослушивания. - В Dashboard появился журнал доставки вебхуков с историей повторов и инспекцией запросов/ответов.
Улучшения
- Надёжность доставки вебхуков улучшена: частота дублирований снижена с ~0,8% до <0,1% благодаря ключам идемпотентности.
- Задержка установки соединения (handshake) в регионе
ap-southeast-1уменьшена в среднем на 340 мс. - SDK:
client.streams.list()теперь поддерживает автопагинацию черезAsyncIterable.
Устаревшее
quality: 'ultra_low'устарело. Используйтеquality: 'low'. Параметр будет удалён в v2.5.0.- Алиас
GET /streams/{id}/viewer_countустарел в пользуGET /streams/{id}/stats.
v2.3.2
Безопасность
20 января 2026
Безопасность
- Исправлен граничный случай в валидации токена OAuth 2.0: специально сформированный параметр
stateмог обойти защиту CSRF в определённых конфигурациях редиректа. CVE присваивается. Обновление настоятельно рекомендуется.
Исправления
- JavaScript SDK: исправлено состояние гонки в логике переподключения, допускавшее два одновременных MQTT-соединения на нестабильных сетях.
- Dashboard: предпросмотр потока теперь корректно работает в Safari 17+ (сломался в v2.3.0 из-за несовместимости с WebSocket client).
- REST API: курсор пагинации работал неверно при совместном использовании фильтра
statusиlimit=1.
v2.3.0
8 декабря 2025
Новые возможности
- Аналитика подписчиков: количество в реальном времени и географическое распределение (на уровне страны) доступны на всех тарифах.
- Новый эндпоинт
GET /streams/{id}/stats(переведён в статус stable в v2.4.0 по итогам бета-периода). - Python SDK: полная поддержка async/await — все методы клиента теперь являются корутинами при использовании асинхронного экземпляра.
- фид данных отчётов теперь включает теги расширения
<eh:*>, необходимые для industry readers.
Изменения
- Лимит запросов на платных тарифах увеличен со 100 до 500 запросов в минуту.
- Срок действия токенов подписчиков увеличен с 6 до 24 часов для снижения частоты повторной аутентификации в длительных сессиях.
v2.2.0
14 октября 2025
Новые возможности
- Первый выпуск официального Python-клиента (
pip install sehub). - Запуск инgest-региона EU:
eu-west-1(Франкфурт). - Отложенная публикация записей отчёта: укажите
publishAtс будущей временной меткой при вызовеPOST /reports/{id}/publish. - Новое событие вебхука
device.errorдля ошибок на стороне ингеста.
Исправления
- Исправлено: метаданные потока не обновлялись после
PATCHв ряде граничных случаев при одновременных запросах с нескольких API-ключей. - Исправлен некорректный заголовок
Content-Lengthв ответах с большими WebSocket-сегментами.
v2.1.0
22 августа 2025
Новые возможности
- OAuth 2.0 (Authorization Code flow) — создавайте интеграции от имени других аккаунтов SmartElektroHub. См. руководство по аутентификации.
- Верификация подписи вебхуков через HMAC-SHA256. См. руководство по вебхукам.
- Улучшена маршрутизация CDN: среднемировая задержка старта WebSocket-соединений снижена с 4,2 с до 1,8 с.
Изменения
- JavaScript SDK перешёл с CommonJS на ESM. CommonJS по-прежнему поддерживается через
@sehub/sdk/cjs. - Префикс публичного ключа изменён с
eh_pub_наeh_pk_. Старые ключи продолжают работать до декабря 2025.