Огляд

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