Обзор

API предоставляет программный доступ к возможностям платформы unMineable с использованием аутентификации подписью HMAC-SHA256. Это API без состояния предназначено для серверных интеграций и опытных пользователей.

Базовый URL
https://api.unmineable.dev/v1
Аутентификация
Public metadata and simulator routes do not require signing. All other requests must be signed with HMAC-SHA256 using your API credentials.
Лимиты запросов
500 запросов в минуту на токен/IP
HMAC-аутентификация

Authenticated endpoints require three HTTP headers:

x-user-api-key
Публичный ключ вашего API-токена
x-user-api-timestamp
13-значная метка времени Unix в миллисекундах
x-user-api-signature
HMAC-SHA256-подпись в шестнадцатеричном формате в нижнем регистре

Payload подписи

Подпись вычисляется путем объединения следующих значений символами новой строки:

<HTTP_METHOD>
<путь запроса>
<сырая строка запроса (без ?)>
<x-user-api-timestamp>
<sha256 hex от сырого тела запроса>

Правила scope

read
Только запросы GET и HEAD
read_write
Запросы GET, POST, PATCH и DELETE

Коды ошибок

401 UNAUTHORIZED
Недействительные или отсутствующие учетные данные
401 INVALID_SIGNATURE
Проверка подписи HMAC не удалась
401 INVALID_TIMESTAMP
Метка времени запроса вне 5-минутного окна
403 INSUFFICIENT_SCOPE
У токена нет необходимого scope для этой операции
403 IP_NOT_ALLOWED
IP запроса отсутствует в списке разрешенных IP токена
409 USER_ALIAS_REQUIRED
Пользователь должен сначала создать alias по умолчанию

Пример кода (JavaScript)

const crypto = require('crypto');

function signRequest(method, path, queryString, body, timestamp, secret) {
  const payload = [
    method.toUpperCase(),
    path,
    queryString || '',
    timestamp,
    crypto.createHash('sha256').update(body || '').digest('hex')
  ].join('\n');
  return crypto.createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
}

const timestamp = Date.now().toString();
const signature = signRequest('GET', '/v1/me', '', '', timestamp, 'your-secret');
Профиль
GET
/v1/me
Возвращает информацию профиля текущего аккаунта, включая UUID, email, имя пользователя, реферальный код и состояние alias.
Auth: требуется (scope: read)
Заголовки
x-user-api-key: upk_abc123...
x-user-api-timestamp: 1743460800000
x-user-api-signature: a1b2c3d4...
POST
/v1/me
Обновляет ровно одно поле профиля за запрос. Принимает username (для создания alias по умолчанию) или referrer_code, включая null для очистки.
Auth: требуется (scope: read_write)
ЗАПРОС (Имя пользователя)
{ "username": "myalias" }
Workers
GET
/v1/workers
Список всех workers с пагинацией, фильтрами и сортировкой. Возвращает нефильтрованные счетчики и фильтрованные счетчики разбивки.
Auth: требуется (scope: read, нужен alias)
Параметры запроса:
page, algorithm, online, region, name, chart_algo, period, sort, dir
Строка запроса
?page=1&algorithm=randomx&online=true&chart_algo=randomx&period=24h&sort=last_seen&dir=desc
GET
/v1/workers/counts
Возвращает количество workers: всего, онлайн и офлайн.
Auth: требуется (scope: read, нужен alias)
Строка запроса
GET
/v1/workers/chart
Возвращает временные ряды hashrate, сгруппированные по алгоритму для построения графиков.
Auth: требуется (scope: read, нужен alias)
Параметры запроса:
chart_algo, period (1h|24h)
Строка запроса
?period=24h&chart_algo=randomx
Выплаты
GET
/v1/payments
Постраничные пользовательские выплаты с обогащением по монете/сети и фильтрованными счетчиками.
Auth: требуется (scope: read, нужен alias)
Параметры запроса:
page, coin, network, date_from, date_to, tz, status, sort, dir
Строка запроса
?page=1&coin=BTC&network=BTC&date_from=2026-03-01&date_to=2026-03-31&tz=-180&status=success&sort=timestamp&dir=desc
POST
/v1/payments
Запрашивает ручную выплату. Сумма выплаты определяется из баланса аккаунта.
Auth: требуется (scope: read_write, нужен alias)
ЗАПРОС
{ "coin": "BTC", "uuid": "addr-uuid" }
GET
/v1/payments/:uuid/events
Возвращает временную шкалу событий для конкретной выплаты.
Auth: требуется (scope: read, нужен alias)
Путь
/v1/payments/550e8400-e29b-41d4-a716-446655440001/events
Активы
GET
/v1/assets
Возвращает смешанный каталог активов аккаунта, включая активы монет и прикрепленные устаревшие адреса.
Auth: требуется (scope: read, нужен alias)
Параметры запроса:
is_active, sort, dir
Строка запроса
?is_active=true&sort=amount&dir=desc
GET
/v1/assets/:coin/stats
Возвращает статистику на уровне монеты, включая баланс, награды за майнинг, реферальные награды и суммы выплат.
Auth: требуется (scope: read, нужен alias)
Путь
/v1/assets/BTC/stats
POST
/v1/assets/update
Заменяет текущее распределение наград для вошедшего аккаунта. Принимает { coins: [...] }, { targets: [...] } или простой массив.
Auth: требуется (scope: read_write, нужен alias)
ЗАПРОС
{
  "targets": [
    { "type": "coin", "coin": "BTC", "reward_hashrate_percentage": 0.6, "reward_algorithm": "randomx" },
    { "type": "legacy_address", "uuid": "legacy-address-uuid", "reward_hashrate_percentage": 0.4 }
  ]
}
Устаревшие адреса
POST
/v1/legacy-addresses/attach
Прикрепляет к вошедшему аккаунту существующий общий устаревший адрес.
Auth: требуется (scope: read_write, нужен alias)
ЗАПРОС
{ "uuid": "legacy-address-uuid" }
GET
/v1/legacy-addresses/:uuid
Возвращает текущие настройки одного прикрепленного устаревшего адреса.
Auth: требуется (scope: read, нужен alias)
Путь
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
GET
/v1/legacy-addresses/:uuid/stats
Возвращает общую статистику устаревшего адреса, включая баланс и суммы наград.
Auth: требуется (scope: read, нужен alias)
Путь
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002/stats
PATCH
/v1/legacy-addresses/:uuid
Обновляет настройки прикрепленного устаревшего адреса.
Auth: требуется (scope: read_write, нужен alias)
ЗАПРОС
{ "auto_detach_on_payment": true }
DELETE
/v1/legacy-addresses/:uuid
Отвязывает устаревший адрес от вошедшего аккаунта.
Auth: требуется (scope: read_write, нужен alias)
Путь
/v1/legacy-addresses/550e8400-e29b-41d4-a716-446655440002
POST
/v1/legacy-addresses/:uuid/payments
Запрашивает ручную выплату для прикрепленного устаревшего адреса.
Auth: требуется (scope: read_write, нужен alias)
ЗАПРОС
{ "platform": "api" }
Рефералы
GET
/v1/referrals
Список реферальных workers для вошедшего аккаунта из источников account-flow и legacy.
Auth: требуется (scope: read)
Параметры запроса:
page, type, algorithm, online, sort, dir
Строка запроса
?page=1&type=user,legacy&online=true
Панель
GET
/v1/dashboard/assets
Минимальный вид активов для быстрого рендеринга панели.
Auth: требуется (scope: read, нужен alias)
Путь
/v1/dashboard/assets
GET
/v1/dashboard/summary
Последний сводный снимок данных панели.
Auth: требуется (scope: read, нужен alias)
Путь
/v1/dashboard/summary
GET
/v1/dashboard/events
Постраничные события панели, включая события worker, награды и выплаты.
Auth: требуется (scope: read, нужен alias)
Параметры запроса:
page, type, dir
Строка запроса
?page=1&type=worker,reward,payout&dir=desc
Адреса
GET
/v1/addresses
Список всех адресов вывода, принадлежащих текущему аккаунту.
Auth: требуется (scope: read, нужен alias)
Параметры запроса:
network, enabled, page, sort, dir
Строка запроса
?network=BTC,ETH&enabled=1&page=1
POST
/v1/addresses
Создает новый адрес вывода.
Auth: требуется (scope: read_write, нужен alias)
ЗАПРОС
{
  "network": "ETH",
  "alias": "Main Wallet",
  "address": "0xabc123...",
  "memo": "",
  "platform": "api"
}
PATCH
/v1/addresses/:uuid
Обновляет изменяемые поля существующего адреса вывода.
Auth: требуется (scope: read_write, нужен alias)
Параметры запроса:
dry_run
ЗАПРОС
{ "alias": "New Label", "platform": "api" }
DELETE
/v1/addresses/:uuid
Выполняет мягкое удаление адреса вывода.
Auth: требуется (scope: read_write, нужен alias)
Параметры запроса:
dry_run
Путь
/v1/addresses/550e8400-e29b-41d4-a716-446655440098
Настройки вывода
GET
/v1/assets/:coin/withdraw/address
Возвращает текущее предпочтение вывода для конкретного актива.
Auth: требуется (scope: read, нужен alias)
Путь
/v1/assets/BTC/withdraw/address
POST
/v1/assets/:coin/withdraw/address
Устанавливает предпочтения вывода для конкретного актива.
Auth: требуется (scope: read_write, нужен alias)
ЗАПРОС
{
  "uuid": "addr-uuid",
  "payment_threshold": "0.005",
  "auto_withdraw": true
}
Метаданные
GET
/v1/meta/coin
Public coin metadata with optional compact mode and categories grouping.
Auth: none
Параметры запроса:
compact, categories
Строка запроса
?compact=true
GET
/v1/meta/coin/:coin
Public coin detail for a specific coin.
Auth: none
Путь
/v1/meta/coin/ADA
Simulator
POST
/v1/simulator
Public forward mining simulator for advanced and device modes.
Auth: none
ЗАПРОС
{
  "mode": "advanced",
  "coin": "BTC",
  "algorithm": "randomx",
  "hashrate_hs": "120000000",
  "scenario_set": "default",
  "referral_discount": false
}
Back to top