Skip to main content

Headframe API (0.1.0)

Download OpenAPI specification:Download

Definitions

Over this documentation we use several technical terms.

User – a person, which can log into the system using their email and password. A User can have access to multiple accounts – Miners, Operators and Pool.

Miner – an account for mining. Several Users can access one account.

Authorization

api_key

Standard bearer authorization. API key can be requested through pool support.

Security Scheme Type: HTTP
HTTP Authorization Scheme: bearer

user_session_web

User session is created after successful authentication. Cookie is used to store and pass around the session ID. Cookie is set with http-only and secure flags, so you won't be able to read it with on-page javascript.

Security Scheme Type: API Key
Cookie parameter name: ory_session_relaxedwescoffeywmz1r7og

user_session_mobile

User session is created after successful authentication. Mobile app uses token, which is stored on the mobile app side and sent to server using header.

Security Scheme Type: API Key
Header parameter name: X-Session-Token

watcher_token

Watcher token has limited access to only the methods required to view certain pages. Watcher tokens are easily issued and revoked, so they are not usable for anything else except watcher links.

Security Scheme Type: API Key
Header parameter name: X-Watcher-Token

internal_api_key

Internal server-to-server API key is used to access the API for various platform internal integrations.

Security Scheme Type: API Key
Header parameter name: X-Headframe-API-Key

Authentication

We use Ory Kratos as an authentication service. If you are building user-facing service, you must provide user with an authentication interface.

For details on how to build your own UI, you can see Ory Kratos Bring Your Own UI doc.

User

Current user details

Shows information about the current logged-in user.

Authorizations:
user_session_webuser_session_mobileapi_key

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "verification": {
    },
  • "credentials": {
    },
  • "permissions": [
    ]
}

Change User status

Authorizations:
user_session_webuser_session_mobileapi_key
Request Body schema: application/json
required
status
required
string (UserStatus)
Enum: "active" "pending" "inactive"

Responses

Request samples

Content type
application/json
{
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "status": "active"
}

Switch user language

Changes user language in Identity object. Does not affect server response language, but affects notifications. Also, client applications can use the language value to change translation.

Authorizations:
user_session_webuser_session_mobileapi_key
Request Body schema: application/json
required
language
required
string (Language)
Enum: "en" "ru"

Responses

Request samples

Content type
application/json
{
  • "language": "en"
}

Response samples

Content type
application/json
{
  • "language": "en"
}

🧪 Request to delete identity

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
required
string or string

Responses

Response samples

Content type
application/json
{
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4"
}

Current navigation info

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
required
string or string

Responses

Response samples

Content type
application/json
{
  • "accounts": [
    ]
}

Update navigation info

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
required
string or string
Request Body schema: application/json
required
Array of objects (NavigationItem) <= 5 items
Array (<= 5 items)
id
required
string <uuid>
type
required
string
Enum: "miner" "operator" "pool" "watcher"

Responses

Request samples

Content type
application/json
{
  • "accounts": [
    ]
}

Response samples

Content type
application/json
{
  • "accounts": [
    ]
}

Get user's bookmarked watchers

Authorizations:
user_session_webuser_session_mobile
path Parameters
required
string or string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Add a watcher to user's bookmarks

Authorizations:
user_session_webuser_session_mobile
path Parameters
required
string or string
Request Body schema: application/json
required
token
required
string (WatcherToken)

Responses

Request samples

Content type
application/json
{
  • "token": "hfwl_0123456789abcdef000000000000000000000000000000000000000000000000"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete a watcher from user's bookmarks

Authorizations:
user_session_webuser_session_mobile
path Parameters
required
string or string
watcher_token
required
string
Example: hfwl_0123456789abcdef000000000000000000000000000000000000000000000000

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Create a telegram invite for user

Authorizations:
user_session_webuser_session_mobile
path Parameters
required
string or string

Responses

Response samples

Content type
application/json
{
  • "bot": {
    },
  • "invite": {
    }
}

Get user's current telegram invite

Authorizations:
user_session_webuser_session_mobile
path Parameters
required
string or string

Responses

Response samples

Content type
application/json
{
  • "bot": {
    },
  • "invite": {
    }
}

Disconnect user from a telegram chat

Authorizations:
user_session_webuser_session_mobile
path Parameters
required
string or string

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Get user's current telegram chat

Authorizations:
user_session_webuser_session_mobile
path Parameters
required
string or string

Responses

Response samples

Content type
application/json
{
  • "bot": {
    },
  • "chat": {
    }
}

Get user's notifications preferences

Authorizations:
user_session_webuser_session_mobile
path Parameters
required
string or string

Responses

Response samples

Content type
application/json
{
  • "email": {
    },
  • "telegram": {
    }
}

Update user's notifications preferences

Authorizations:
user_session_webuser_session_mobile
path Parameters
required
string or string
Request Body schema: application/json
required
required
object
required
object

Responses

Request samples

Content type
application/json
{
  • "email": {
    },
  • "telegram": {
    }
}

Response samples

Content type
application/json
{
  • "email": {
    },
  • "telegram": {
    }
}

Miners

Miner self-registration

Authorizations:
user_session_webuser_session_mobileapi_key
Request Body schema: application/json
required
account_name
required
string [ 3 .. 32 ] characters ^\w{3,32}$

Responses

Request samples

Content type
application/json
{
  • "account_name": "Superminer123"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "status": "active",
  • "wallets": [
    ],
  • "pool": {
    },
  • "operator": {
    },
  • "owner": {
    }
}

Miner details

Authorizations:
user_session_webuser_session_mobileapi_keywatcher_token
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "status": "active",
  • "wallets": [
    ],
  • "pool": {
    },
  • "operator": {
    },
  • "owner": {
    }
}

Request Miner deletion

Sends a request to delete Miner account. These requests are processed manually, so the account is not deleted right away.

Authorizations:
user_session_webuser_session_mobile
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

List miner access rules

Get a list of users who have access to the miner

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Modify user access to the miner

This method changes specified user access permissions for the miner.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>
roles
required
Array of strings (MinerAccessRole) non-empty
Items Enum: "admin" "viewer" "accountant"

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "roles": [
    ]
}

Invite user to access the miner

This method invites specified user to access the miner.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>
roles
required
Array of strings (MinerAccessRole) non-empty
Items Enum: "admin" "viewer" "accountant"

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "roles": [
    ]
}

Revoke access to the miner

This method revokes access to the miner for the specified user.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Get Miner ID by it's account name

Authorizations:
user_session_webuser_session_mobileapi_key
query Parameters
name
required
string
Example: name=Superminer123

Account name

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_name": "Superminer123"
}

List Miner payments

Authorizations:
user_session_webuser_session_mobileapi_keywatcher_token
path Parameters
miner_id
required
string <uuid>
query Parameters
type
Array of strings
Items Enum: "reward" "payout" "profit_sharing" "virtual_mining_transfer" "virtual_mining_reward" "virtual_mining_topup" "transfer"

Transaction type.

limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Export Miner Payments to CSV

Creates a CSV-file with Miner Payments for the specified period. The file is attached to the response, so the browser should open the file save dialog automatically.

Works only on periods less than or equal to 90 days.

All the date-time strings are returned in the UTC timezone.

File structure example:

created_at effective_at type currency amount status hashrate rate tx_hash
2023-01-02 02:00:00 2023-01-01 00:00:00 reward BTC 0.00472423 completed 827415935642814097 0.000000000000000002192399084736862074189141067444586110763013383
2023-01-02 14:00:20 2023-01-02 14:00:20 payout BTC 0.00472423 completed 97ddfbbae6be97fd6cdf3e7ca13232a3afff2353e29badfab7f73011edd4ced9
Authorizations:
user_session_webuser_session_mobileapi_keywatcher_token
path Parameters
miner_id
required
string <uuid>
query Parameters
type
Array of strings
Items Enum: "reward" "payout" "profit_sharing" "virtual_mining_transfer" "virtual_mining_reward" "virtual_mining_topup" "transfer"

Transaction type.

from
string <datetime>
Example: from=2023-01-01T00:00:00Z
to
string <datetime>
Example: to=2023-01-01T00:00:00Z

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Current Miner balance

Authorizations:
user_session_webuser_session_mobileapi_keywatcher_token
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Miner earnings for today Deprecated

Use /miners/{miner_id}/processing-earnings instead

Authorizations:
user_session_webuser_session_mobileapi_keywatcher_token
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Miner earnings in processing

Authorizations:
user_session_webuser_session_mobileapi_keywatcher_token
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Miner earnings for all time

Authorizations:
user_session_webuser_session_mobileapi_keywatcher_token
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

List referrals invited by the miner

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

List miner's active profit sharings

Returns a list of active profit sharings for which the miner is a donor.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
query Parameters
include_future
boolean

Includes future profit sharings in the response.

limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

List history of profit sharings between two miners

Returns a list of profit sharings for which the miner is a donor and the other miner is a recipient. The list is paginated and sorted in reverse chronological order.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
miner_recipient_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create a new profit sharing between two miners

Creates a new profit sharing between two miners. The profit sharing will become active since 00:00 UTC of the next day. The current profit sharing will be deactivated at the same time.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
miner_recipient_id
required
string <uuid>
Request Body schema: application/json
required
rate
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

type
required
string
Enum: "profit_sharing" "referral"

Responses

Request samples

Content type
application/json
{
  • "rate": 0.009,
  • "type": "profit_sharing"
}

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Delete a profit sharing between two miners

Deactivates the current profit sharing between two miners. The profit sharing will be deactivated since 00:00 UTC of the next day.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
miner_recipient_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Set virtual mining limit

Set the maximum virtual hashrate compensation amount per day for a miner donor, measured in hashes.

The optional mining_mode query parameter is accepted and validated, but the limits are not scoped by mining mode yet: any mode other than the default BTC is rejected with a 422 error.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Request Body schema: application/json
required
limit
required
string <decimal>

Positive number or zero

Responses

Request samples

Content type
application/json
{
  • "limit": "100000000000000.00"
}

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Set virtual mining boost limit

Set the maximum boost hashrate compensation amount per day for a miner donor, measured in hashes.

The optional mining_mode query parameter is accepted and validated, but the limits are not scoped by mining mode yet: any mode other than the default BTC is rejected with a 422 error.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Request Body schema: application/json
required
limit
required
string <decimal>

Positive number or zero

Responses

Request samples

Content type
application/json
{
  • "limit": "100000000000000.00"
}

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Get donor hashrate per day

Retrieve the hashrate per day for a specific miner donor on a given date.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
query Parameters
date
required
string <date>
Example: date=2023-03-14
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "hashrate_per_day": "100000000000000.00"
}

List Miner Workers

Authorizations:
user_session_webuser_session_mobileapi_keywatcher_token
path Parameters
miner_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0
status
Array of strings
Items Enum: "stable" "unavailable" "off" "removed"

If empty, then return all workers except removed ones.

sort-by
string
Default: "default"
Enum: "default" "worker_name" "name_similarity" "hash_rate_15m" "hash_rate_1h" "hash_rate_24h" "reject_pct_15m"
sort-direction
string
Default: "asc"
Enum: "asc" "desc"
behavior
Array of strings
Items Enum: "hardware" "boundary"
name
string >= 2 characters
Example: name=Alex21

Used for searching entities by name, supporting both exact and fuzzy matching to find relevant results.

mining_mode
Array of strings
Items Enum: "BTC" "LTC_DOGE" "ZEC"

If empty, then return data for all mining modes.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Workers statistics

Shows how many workers are in the corresponding status at the moment.

Authorizations:
user_session_webuser_session_mobileapi_keywatcher_token
path Parameters
miner_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0
status
Array of strings
Items Enum: "stable" "unavailable" "off" "removed"

If empty, then return all workers except removed ones.

sort-by
string
Default: "default"
Enum: "default" "worker_name" "name_similarity" "hash_rate_15m" "hash_rate_1h" "hash_rate_24h" "reject_pct_15m"
sort-direction
string
Default: "asc"
Enum: "asc" "desc"
behavior
Array of strings
Items Enum: "hardware" "boundary"
name
string >= 2 characters
Example: name=Alex21

Used for searching entities by name, supporting both exact and fuzzy matching to find relevant results.

mining_mode
Array of strings
Items Enum: "BTC" "LTC_DOGE" "ZEC"

If empty, then return data for all mining modes.

Responses

Response samples

Content type
application/json
{
  • "removed": 10,
  • "off": 1,
  • "unavailable": 13,
  • "stable": 150
}

Daily hashrate report for all Workers

Generates report for hashrate and rejectrate for all the Workers connected to the Miner's account.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
query Parameters
from
string <date>
Example: from=2023-03-14
to
string <date>
Example: to=2023-04-14
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2022-09-12",
  • "to": "2022-09-13",
  • "data": [
    ]
}

List miner's referrer codes

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get monthly mining report for the miner

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
query Parameters
year
integer
Example: year=2025

Year in YYYY-format

month
integer [ 1 .. 12 ]
Example: month=1

Month number

currency
string
Default: "BTC"
Enum: "BTC" "LTC" "DOGE" "ZEC"

Scopes the request to a single mining currency. If not provided, the default currency BTC is used.

Responses

Response samples

Content type
application/json
{
  • "miner": {
    },
  • "pool": {
    }
}

List miner's watcher links

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
aplication/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create miner's watcher link

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
Request Body schema: aplication/json
required
extra_permissions
Array of strings
Items Value: "accountant"
title
string [ 1 .. 300 ] characters

If empty, will be generated automatically.

Responses

Request samples

Content type
aplication/json
{
  • "extra_permissions": [
    ],
  • "title": "My new awesome watcher link"
}

Response samples

Content type
aplication/json
{
  • "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
  • "token": "hfwl_0123456789abcdef000000000000000000000000000000000000000000000000",
  • "title": "Watcher for LLC 'Super Miner'",
  • "created_at": "2019-08-24T14:15:22Z",
  • "extra_permissions": [
    ]
}

Delete miner's watcher link

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
watcher_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Workers

Generate a random name for a worker.

Generate a random name for a worker.

Authorizations:
api_keyuser_session_webuser_session_mobilewatcher_tokeninternal_api_key

Responses

Response samples

Content type
application/json
{
  • "name": "AwesomePangolin"
}

Charts for the list of workers.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keywatcher_token
query Parameters
period
string <duration>
Enum: "PT15M" "PT1H" "P1D" "P1W"

The time period for the selected chart. For each of the periods there is a different frequency of points.

  • PT15M: 15-minute time period, the distance between the points is 1 minute.
  • PT1H: 1-hour time period, the distance between the points is 5 minutes.
  • P1D: 24-hour time period, the distance between the points is 20 minutes.
  • P1W: 7-day time period, the distance between the points is 4 hours.
id
Array of strings <uuid> non-empty [ items <uuid > ]
Examples:
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3 - Example of a single ID
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3&id=f6e3e748-16c6-4235-a5bb-d948b9638c6e - Example of multiple IDs

List of entity IDs.

mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "interval": "PT1M",
  • "data": {
    }
}

Get Mining Stats for the list of Workers.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keywatcher_token
query Parameters
id
Array of strings <uuid> non-empty [ items <uuid > ]
Examples:
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3 - Example of a single ID
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3&id=f6e3e748-16c6-4235-a5bb-d948b9638c6e - Example of multiple IDs

List of entity IDs.

mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "f6e3e748-16c6-4235-a5bb-d948b9638c6e": {
    },
  • "0e4ce810-6107-4eb0-a71c-53046e396aa3": {
    }
}

Wallets

Wallet address Deprecated

Method is deprecated. Use GET /wallets/{wallet_id}/addresses instead.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Update wallet address Deprecated

Method is deprecated. Use POST /wallets/{wallet_id}/addresses instead.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>
Request Body schema: application/json
required
address
required
string

Wallet address.

Responses

Request samples

Content type
application/json
{
  • "address": "d8f7f55e689126db5521f8f725aaeba8436fcf60"
}

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Wallet address changes

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Change wallet address

Invalidates the current address and creates a new one.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>
Request Body schema: application/json
required
address
required
string

Wallet address

Responses

Request samples

Content type
application/json
{
  • "address": "mubUpE11SXEuyM7EhSYEcnptbwvfcV72Nx"
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Wallet min payment Deprecated

Method is deprecated. Use GET /wallets/{wallet_id}/min-payments instead.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Update wallet min payment Deprecated

Method is deprecated. Use POST /wallets/{wallet_id}/min-payments instead.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>
Request Body schema: application/json
required
amount
required
string <decimal>

Minimal value is 0.001.

Responses

Request samples

Content type
application/json
{
  • "amount": 0.01
}

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Wallet min payment changes

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Change wallet min payment

Invalidates the current min payment and creates a new one.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>
Request Body schema: application/json
required
amount
required
string <decimal>

Minimal value is 0.001.

Responses

Request samples

Content type
application/json
{
  • "amount": 0.01
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Wallet max payment changes

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Change wallet max payment

Invalidates the current max payment and creates a new one.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
wallet_id
required
string <uuid>
Request Body schema: application/json
required
amount
required
string or null <decimal>

Maximal value. Can be null to reset to default.

Responses

Request samples

Content type
application/json
{
  • "amount": 100
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Pools

Rename the Miner

Rename the Miner

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
Request Body schema: application/json
required
title
required
string

Responses

Request samples

Content type
application/json
{
  • "title": "LLC 'Super Miner'"
}

Response samples

Content type
application/json
{
  • "title": "LLC 'Super Miner'"
}

Delete Miner's title

Delete Miner's title

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Miner tariff plan Deprecated

Method is deprecated. Use GET /miners/{miner_id}/fees instead.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Update Miner tariff plan. Deprecated

Method is deprecated. Use POST /miners/{miner_id}/fees instead.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
Request Body schema: application/json
required
rate
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

Responses

Request samples

Content type
application/json
{
  • "rate": 0.009
}

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Miner->pool commission changes

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update miner->pool commission schedule

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
Request Body schema: application/json
required
required
Array of objects [ 1 .. 100 ] items

The schedule of miner commission changes.

Array ([ 1 .. 100 ] items)
fee
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

valid_from
required
string <date>

The date when the commission becomes valid. The date is assumed to be midnight of the specified day in the UTC timezone. For example, 2019-01-01 means 2019-01-01T00:00:00Z. Minimum date is tomorrow.

comment
string [ 1 .. 300 ] characters

Responses

Request samples

Content type
application/json
{
  • "schedule": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Get current miner->pool commission

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "fee": 0.009,
  • "valid_from": "2019-08-24",
  • "valid_until": "2019-08-24",
  • "comment": "New tariff plan"
}

Current Pool public info.

Get the current pool info and configuration.

Authorizations:
api_keyuser_session_webuser_session_mobilewatcher_tokeninternal_api_key
header Parameters
X-Headframe-Domain
required
string <host>
Example: bestpool.demo.headframe.io

The address of the pool at which the configuration is requested.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "active",
  • "title": "Demo Pool",
  • "addresses": [],
  • "settings": {
    }
}

Private Pool info.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "active",
  • "title": "Demo Pool",
  • "addresses": [],
  • "settings": {
    },
  • "wallets": [
    ]
}

List pool access rules

Get a list of users who have access to the pool

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Modify user access to the pool

This method changes specified user access permissions for the pool.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>
roles
required
Array of strings (PoolAccessRole) non-empty
Items Enum: "admin" "viewer"

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "roles": [
    ]
}

Invite user to access the pool

This method invites specified user to access the pool.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>
roles
required
Array of strings (PoolAccessRole) non-empty
Items Enum: "admin" "viewer"

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "roles": [
    ]
}

Revoke access to the pool

This method revokes access to the pool for the specified user.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

List pool payments.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
type
Array of strings
Items Enum: "reward" "payout" "profit_sharing" "virtual_mining_transfer" "virtual_mining_reward" "virtual_mining_topup" "transfer"

Transaction type.

limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Export list of the pool's payments as CSV file.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
type
Array of strings
Items Enum: "reward" "payout" "profit_sharing" "virtual_mining_transfer" "virtual_mining_reward" "virtual_mining_topup" "transfer"

Transaction type.

from
string <datetime>
Example: from=2023-01-01T00:00:00Z
to
string <datetime>
Example: to=2023-01-01T00:00:00Z

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Pool account balance.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Pool earnings for today. Deprecated

Use /pools/{pool_id}/processing-earnings instead

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Pool earnings being processed

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Pool earnings for all time.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Pool earnings from the specific miner for all time.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Chart for the whole pool.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
period
string <duration>
Enum: "PT15M" "PT1H" "P1D" "P1W"

The time period for the selected chart. For each of the periods there is a different frequency of points.

  • PT15M: 15-minute time period, the distance between the points is 1 minute.
  • PT1H: 1-hour time period, the distance between the points is 5 minutes.
  • P1D: 24-hour time period, the distance between the points is 20 minutes.
  • P1W: 7-day time period, the distance between the points is 4 hours.
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "interval": "PT1M",
  • "data": {
    }
}

Get Mining Stats for the entire pool.

Only pool owner, pool accountant and pool admin can call this method.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "15m": {
    },
  • "1h": {
    },
  • "1d": {
    },
  • "1w": {
    }
}

List operators of the pool.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

List miners of the pool

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0
name
string >= 2 characters
Example: name=Alex21

Used for searching entities by name, supporting both exact and fuzzy matching to find relevant results.

mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Invite miner to the pool

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
Request Body schema: application/json
required
account_name
required
string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$
title
string
email
required
string <email>
rate
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

Responses

Request samples

Content type
application/json
{
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "email": "user@example.com",
  • "rate": 0.009
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "status": "active",
  • "wallets": [
    ],
  • "pool": {
    },
  • "operator": {
    },
  • "owner": {
    }
}

List workers of the pool.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0
status
Array of strings
Items Enum: "stable" "unavailable" "off" "removed"

If empty, then return all workers except removed ones.

sort-by
string
Default: "default"
Enum: "default" "worker_name" "name_similarity" "hash_rate_15m" "hash_rate_1h" "hash_rate_24h" "reject_pct_15m"
sort-direction
string
Default: "asc"
Enum: "asc" "desc"
behavior
Array of strings
Items Enum: "hardware" "boundary"
name
string >= 2 characters
Example: name=Alex21

Used for searching entities by name, supporting both exact and fuzzy matching to find relevant results.

mining_mode
Array of strings
Items Enum: "BTC" "LTC_DOGE" "ZEC"

If empty, then return data for all mining modes.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Workers' status statistics.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
mining_mode
Array of strings
Items Enum: "BTC" "LTC_DOGE" "ZEC"

If empty, then return data for all mining modes.

Responses

Response samples

Content type
application/json
{
  • "removed": 10,
  • "off": 1,
  • "unavailable": 13,
  • "stable": 150
}

🧪 List users in the pool

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
email
string >= 2 characters
Example: email=Alex21

Used for searching users by email, supporting both exact and fuzzy matching to find relevant results.

active
bool

Show only active/inactive users. True by default.

sort-by
string
Default: "default"
Enum: "default" "registered_date" "email_similarity"
sort-direction
string
Default: "asc"
Enum: "asc" "desc"
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

🧪 Get user's details

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
user_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "active",
  • "email": {
    },
  • "registered_at": "2019-08-24T14:15:22Z",
  • "language": "en",
  • "credentials": {
    }
}

🧪 Completely delete user

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
user_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

🧪 Get user's deletion request

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
user_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4"
}

🧪 List user's sessions

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
user_id
required
string <uuid>
query Parameters
active
bool

Show only active/inactive sessions. True by default.

limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

🧪 Deactivate user's session

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
session_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

🧪 Reset user's 2FA

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
user_id
required
string <uuid>
Request Body schema: application/json
required
type
required
string
Enum: "totp" "lookup_secret"

Type of 2FA to reset

Responses

Request samples

Content type
application/json
{
  • "type": "totp"
}

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

🧪 List user's invites

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
user_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

🧪 Send a new invite to user

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
user_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "code": "22728fe186490f2d5ae0849e77e157fd29424f5f5f2bf1b7cb66f1ce00d0dfcb",
  • "created_at": "2019-08-24T14:15:22Z",
  • "valid_until": "2019-08-24T14:15:22Z",
  • "activated_at": "2019-08-24T14:15:22Z",
  • "status": "pending"
}

🧪 List user's permissions

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
user_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Mining charts for multiple Miners

Gets charts for the list of specified miners.

Please note that the list of ids is limited by browser request address length.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keywatcher_token
query Parameters
period
string <duration>
Enum: "PT15M" "PT1H" "P1D" "P1W"

The time period for the selected chart. For each of the periods there is a different frequency of points.

  • PT15M: 15-minute time period, the distance between the points is 1 minute.
  • PT1H: 1-hour time period, the distance between the points is 5 minutes.
  • P1D: 24-hour time period, the distance between the points is 20 minutes.
  • P1W: 7-day time period, the distance between the points is 4 hours.
id
Array of strings <uuid> non-empty [ items <uuid > ]
Examples:
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3 - Example of a single ID
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3&id=f6e3e748-16c6-4235-a5bb-d948b9638c6e - Example of multiple IDs

List of entity IDs.

mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "interval": "PT1M",
  • "data": {
    }
}

Mining stats for multiple Miners

Gets stats for the list of specified miners.

Please note that the list of ids is limited by browser request address length.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keywatcher_token
query Parameters
id
Array of strings <uuid> non-empty [ items <uuid > ]
Examples:
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3 - Example of a single ID
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3&id=f6e3e748-16c6-4235-a5bb-d948b9638c6e - Example of multiple IDs

List of entity IDs.

mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "f6e3e748-16c6-4235-a5bb-d948b9638c6e": {
    },
  • "0e4ce810-6107-4eb0-a71c-53046e396aa3": {
    }
}

Operators

Info about the operator.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "Pool operator",
  • "status": "active",
  • "wallets": [
    ],
  • "owner": {
    },
  • "settings": {
    }
}

Update default operator fee for miners

This method updates default operator fee for miners. The new value will be applied only to new miners. All existing miners will retain the old fee value.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
Request Body schema: application/json
required
fee
required
string <decimal>

Responses

Request samples

Content type
application/json
{
  • "fee": "0.005"
}

Response samples

Content type
application/json
{
  • "fee": "0.005"
}

List operator access rules

Get a list of users who have access to the operator

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Modify user access to the operator

This method changes specified user access permissions for the operator.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>
roles
required
Array of strings (OperatorAccessRole) non-empty
Items Enum: "admin" "viewer" "accountant" "treasurer"

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "roles": [
    ]
}

Invite user to access the operator

This method invites specified user to access the operator.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>
roles
required
Array of strings (OperatorAccessRole) non-empty
Items Enum: "admin" "viewer" "accountant" "treasurer"

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "roles": [
    ]
}

Revoke access to the operator

This method revokes access to the operator for the specified user.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
Request Body schema: application/json
required
email
required
string <email>

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

List operator payments.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
type
Array of strings
Items Enum: "reward" "payout" "profit_sharing" "virtual_mining_transfer" "virtual_mining_reward" "virtual_mining_topup" "transfer"

Transaction type.

limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Export list of the operator's payments as CSV file.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
type
Array of strings
Items Enum: "reward" "payout" "profit_sharing" "virtual_mining_transfer" "virtual_mining_reward" "virtual_mining_topup" "transfer"

Transaction type.

from
string <datetime>
Example: from=2023-01-01T00:00:00Z
to
string <datetime>
Example: to=2023-01-01T00:00:00Z

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Current operator balance.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Operator earnings for today. Deprecated

Use /operators/{operator_id}/processing-earnings instead

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Operator earnings being processed

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Operator earnings for all time.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Operator earnings from the specific miner for all time.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

List miners managed by operator

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
name
string >= 2 characters
Example: name=Alex21

Used for searching entities by name, supporting both exact and fuzzy matching to find relevant results.

mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Add a miner managed by operator

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
Request Body schema: application/json
required
account_name
required
string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$
email
required
string <email>
rate
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

Responses

Request samples

Content type
application/json
{
  • "account_name": "Superminer123",
  • "email": "user@example.com",
  • "rate": 0.009
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "status": "active",
  • "wallets": [
    ],
  • "pool": {
    },
  • "operator": {
    },
  • "owner": {
    }
}

List workers managed by the operator.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0
status
Array of strings
Items Enum: "stable" "unavailable" "off" "removed"

If empty, then return all workers except removed ones.

sort-by
string
Default: "default"
Enum: "default" "worker_name" "name_similarity" "hash_rate_15m" "hash_rate_1h" "hash_rate_24h" "reject_pct_15m"
sort-direction
string
Default: "asc"
Enum: "asc" "desc"
behavior
Array of strings
Items Enum: "hardware" "boundary"
name
string >= 2 characters
Example: name=Alex21

Used for searching entities by name, supporting both exact and fuzzy matching to find relevant results.

mining_mode
Array of strings
Items Enum: "BTC" "LTC_DOGE" "ZEC"

If empty, then return data for all mining modes.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Workers statistics

Shows how many workers are in the corresponding status at the moment.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
mining_mode
Array of strings
Items Enum: "BTC" "LTC_DOGE" "ZEC"

If empty, then return data for all mining modes.

Responses

Response samples

Content type
application/json
{
  • "removed": 10,
  • "off": 1,
  • "unavailable": 13,
  • "stable": 150
}

Chart for the operator.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
period
string <duration>
Enum: "PT15M" "PT1H" "P1D" "P1W"

The time period for the selected chart. For each of the periods there is a different frequency of points.

  • PT15M: 15-minute time period, the distance between the points is 1 minute.
  • PT1H: 1-hour time period, the distance between the points is 5 minutes.
  • P1D: 24-hour time period, the distance between the points is 20 minutes.
  • P1W: 7-day time period, the distance between the points is 4 hours.
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "interval": "PT1M",
  • "data": {
    }
}

Get Mining Stats for the operator.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "15m": {
    },
  • "1h": {
    },
  • "1d": {
    },
  • "1w": {
    }
}

Miner->operator commission changes

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
miner_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update miner->operator commission schedule

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
miner_id
required
string <uuid>
Request Body schema: application/json
required
required
Array of objects [ 1 .. 100 ] items

The schedule of miner commission changes.

Array ([ 1 .. 100 ] items)
fee
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

valid_from
required
string <date>

The date when the commission becomes valid. The date is assumed to be midnight of the specified day in the UTC timezone. For example, 2019-01-01 means 2019-01-01T00:00:00Z. Minimum date is tomorrow.

comment
string [ 1 .. 300 ] characters

Responses

Request samples

Content type
application/json
{
  • "schedule": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Get current miner->operator commission

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "fee": 0.009,
  • "valid_from": "2019-08-24",
  • "valid_until": "2019-08-24",
  • "comment": "New tariff plan"
}

Operator tariff plan for the miner Deprecated

Method is deprecated. Use GET /operators/{operator_id}/miners/{miner_id}/fees instead.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Update operator's tariff plan for the miner Deprecated

Method is deprecated. Use POST /operators/{operator_id}/miners/{miner_id}/fees instead.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
miner_id
required
string <uuid>
Request Body schema: application/json
required
rate
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

Responses

Request samples

Content type
application/json
{
  • "rate": 0.009
}

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Charts

Chart for the whole pool.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
period
string <duration>
Enum: "PT15M" "PT1H" "P1D" "P1W"

The time period for the selected chart. For each of the periods there is a different frequency of points.

  • PT15M: 15-minute time period, the distance between the points is 1 minute.
  • PT1H: 1-hour time period, the distance between the points is 5 minutes.
  • P1D: 24-hour time period, the distance between the points is 20 minutes.
  • P1W: 7-day time period, the distance between the points is 4 hours.
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "interval": "PT1M",
  • "data": {
    }
}

Chart for the operator.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
period
string <duration>
Enum: "PT15M" "PT1H" "P1D" "P1W"

The time period for the selected chart. For each of the periods there is a different frequency of points.

  • PT15M: 15-minute time period, the distance between the points is 1 minute.
  • PT1H: 1-hour time period, the distance between the points is 5 minutes.
  • P1D: 24-hour time period, the distance between the points is 20 minutes.
  • P1W: 7-day time period, the distance between the points is 4 hours.
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "interval": "PT1M",
  • "data": {
    }
}

Charts for the list of workers.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keywatcher_token
query Parameters
period
string <duration>
Enum: "PT15M" "PT1H" "P1D" "P1W"

The time period for the selected chart. For each of the periods there is a different frequency of points.

  • PT15M: 15-minute time period, the distance between the points is 1 minute.
  • PT1H: 1-hour time period, the distance between the points is 5 minutes.
  • P1D: 24-hour time period, the distance between the points is 20 minutes.
  • P1W: 7-day time period, the distance between the points is 4 hours.
id
Array of strings <uuid> non-empty [ items <uuid > ]
Examples:
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3 - Example of a single ID
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3&id=f6e3e748-16c6-4235-a5bb-d948b9638c6e - Example of multiple IDs

List of entity IDs.

mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "interval": "PT1M",
  • "data": {
    }
}

Mining Stats

Get Mining Stats for the entire pool.

Only pool owner, pool accountant and pool admin can call this method.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "15m": {
    },
  • "1h": {
    },
  • "1d": {
    },
  • "1w": {
    }
}

Get Mining Stats for the operator.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "15m": {
    },
  • "1h": {
    },
  • "1d": {
    },
  • "1w": {
    }
}

Get Mining Stats for the list of Workers.

Authorizations:
user_session_webuser_session_mobileapi_keyuser_session_webuser_session_mobileapi_keywatcher_token
query Parameters
id
Array of strings <uuid> non-empty [ items <uuid > ]
Examples:
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3 - Example of a single ID
  • id=0e4ce810-6107-4eb0-a71c-53046e396aa3&id=f6e3e748-16c6-4235-a5bb-d948b9638c6e - Example of multiple IDs

List of entity IDs.

mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "f6e3e748-16c6-4235-a5bb-d948b9638c6e": {
    },
  • "0e4ce810-6107-4eb0-a71c-53046e396aa3": {
    }
}

Invites

Add a new miner to the pool as a donor recipient

This method creates a new miner and sends invitation link.

Authorizations:
user_session_webuser_session_mobileapi_key
Request Body schema: application/json
required
account_name
required
string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$
email
required
string <email>

Responses

Request samples

Content type
application/json
{
  • "account_name": "Superminer123",
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "status": "active",
  • "wallets": [
    ],
  • "pool": {
    },
  • "operator": {
    },
  • "owner": {
    }
}

Invite miner to the pool

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
pool_id
required
string <uuid>
Request Body schema: application/json
required
account_name
required
string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$
title
string
email
required
string <email>
rate
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

Responses

Request samples

Content type
application/json
{
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "email": "user@example.com",
  • "rate": 0.009
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "status": "active",
  • "wallets": [
    ],
  • "pool": {
    },
  • "operator": {
    },
  • "owner": {
    }
}

Add a miner managed by operator

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
Request Body schema: application/json
required
account_name
required
string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$
email
required
string <email>
rate
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

Responses

Request samples

Content type
application/json
{
  • "account_name": "Superminer123",
  • "email": "user@example.com",
  • "rate": 0.009
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "status": "active",
  • "wallets": [
    ],
  • "pool": {
    },
  • "operator": {
    },
  • "owner": {
    }
}

Accept invitation

Authorizations:
api_keyuser_session_webuser_session_mobilewatcher_tokeninternal_api_key
Request Body schema: application/json
required
code
string
email
string <email>

Responses

Request samples

Content type
application/json
{
  • "code": "9fd9e1dcfc6dedfaa81c3ba4898366a8e06128a75efb9c62dfe147029831914c",
  • "email": "miner@pool.io"
}

Response samples

Content type
application/json

Accounting

🧪 Reward rates list

This method is unstable and could be a subject of change in the future.

Authorizations:
api_keyuser_session_webuser_session_mobilewatcher_tokeninternal_api_key
query Parameters
from
string <date>
Example: from=2023-03-14
to
string <date>
Example: to=2023-04-14
currency
string
Default: "BTC"
Enum: "BTC" "LTC" "DOGE" "ZEC"

Scopes the request to a single mining currency. If not provided, the default currency BTC is used.

Responses

Response samples

Content type
application/json
{
  • "rates": [
    ]
}

List of completed workflows for the date

Retrieve a list of completed workflows for a specified date, optionally filtered by workflow type. The response may include empty array if no workflows are completed for the date yet.

Authorizations:
user_session_mobileuser_session_webapi_key
query Parameters
created_date
required
string <date>
Example: created_date=2023-03-14
type
string <string>
Enum: "reward" "payout"
Example: type=reward

Workflow type

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Conversion

Auto-conversion turns mining rewards into another currency automatically, without a manual exchange step.

An auto-conversion rule belongs to a miner or an operator and lists routessource_currency -> target_currency directions. A rule works in one of two modes:

  • percentage — a fixed share of every incoming reward in the rule currency is split across one or more target currencies;
  • limit — rewards in several source currencies are converted into a single target currency until a shared limit is used up.

Converted amounts are accumulated per route until they reach the platform minimum for the currency, and only then an operation is sent to the exchange. Deleting a rule releases whatever is still accumulated back to the owner in the source currency.

Conversion pairs and their spreads are configured by the platform, not by the client — see GET /conversion/pairs. USDT is a settlement-only currency: it can be a conversion target and can be paid out, but it is never mined.

Available conversion pairs

The conversion pairs enabled on the platform. A pair is configured by the platform together with its spread, it cannot be requested through the API. Only pairs returned by this endpoint may be used in conversion rule routes.

Authorizations:
api_keyuser_session_webuser_session_mobilewatcher_tokeninternal_api_key
query Parameters
source
string
Enum: "BTC" "LTC" "DOGE" "ZEC" "USDT"

Scopes the pairs to a single source currency.

target
string
Enum: "BTC" "LTC" "DOGE" "ZEC" "USDT"

Scopes the pairs to a single target currency.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Miner auto-conversion rules

All auto-conversion rules of the miner, including the rules that have already been closed. Use is_active and effective_to to tell the currently applied rules apart.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a miner auto-conversion rule

Creates an auto-conversion rule for the miner. The rule becomes effective at midnight UTC of the next day.

Every route must reference a conversion pair enabled on the platform, and the miner must own an account in every target_currency.

Only one rule per (owner, rule_currency) may be effective at a time, a second one is rejected with 409.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
Request Body schema: application/json
required
mode
required
string
Enum: "percentage" "limit"
  • percentage – every route must share the same source_currency, which becomes the rule_currency, and must carry a percentage.
  • limit – every route must share the same target_currency, which becomes the rule_currency, and must not carry a percentage. limit is required in this mode.
required
Array of objects (ConversionRoute) non-empty

The source -> target directions of the rule. Every pair must be enabled on the platform, see GET /conversion/pairs.

limit
string <decimal>

The shared conversion limit expressed in rule_currency. Required and must be greater than 0 for limit rules, ignored otherwise.

limit_used
string <decimal>

The initially consumed part of limit. Optional, must not be negative, defaults to 0.

Responses

Request samples

Content type
application/json
{
  • "mode": "percentage",
  • "routes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "rule_currency": "BTC",
  • "mode": "percentage",
  • "is_active": true,
  • "effective_from": "2019-08-24T14:15:22Z",
  • "effective_to": "2019-08-24T14:15:22Z",
  • "limit": "1000",
  • "limit_used": "250.5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "routes": [
    ]
}

Miner auto-conversion rule events

The audit trail of the miner auto-conversion rules. Every event carries a snapshot of the rule at the moment of the change.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
query Parameters
rule_id
string <uuid>

Scopes the events to a single conversion rule. The rule must belong to the owner from the path.

limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Miner auto-conversion rule

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
rule_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "rule_currency": "BTC",
  • "mode": "percentage",
  • "is_active": true,
  • "effective_from": "2019-08-24T14:15:22Z",
  • "effective_to": "2019-08-24T14:15:22Z",
  • "limit": "1000",
  • "limit_used": "250.5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "routes": [
    ]
}

Update a miner auto-conversion rule

Replaces the routes of the rule and switches it on or off. The mode and the rule_currency of the rule are immutable, so the new routes must stay anchored to the same currency.

Changing the routes records a change event, toggling is_active records a paused or a resumed event.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
rule_id
required
string <uuid>
Request Body schema: application/json
required
required
Array of objects (ConversionRoute) non-empty

The full new set of routes. The existing routes are replaced. The mode and the rule_currency of the rule cannot be changed, so the routes must stay anchored to the same currency.

limit
string <decimal>

The new shared conversion limit expressed in rule_currency. Only meaningful for limit rules. The limit is left unchanged when omitted.

is_active
boolean

Switches the rule on or off. Omitting the field switches the rule off, so send the intended value explicitly. Toggling records a paused or resumed rule event.

Responses

Request samples

Content type
application/json
{
  • "routes": [
    ],
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "rule_currency": "BTC",
  • "mode": "percentage",
  • "is_active": true,
  • "effective_from": "2019-08-24T14:15:22Z",
  • "effective_to": "2019-08-24T14:15:22Z",
  • "limit": "1000",
  • "limit_used": "250.5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "routes": [
    ]
}

Delete a miner auto-conversion rule

Closes the rule at the closest reward run boundary. The rule is not erased, it stays readable through the rules list with a past effective_to.

The amounts accumulated but not yet converted under this rule are released back to the owner account in the source currency before the rule is closed.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
rule_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Miner conversion operations

The conversion operations executed for the miner. One operation covers one source -> target direction of one rule for one reward date.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
query Parameters
currency
string
Enum: "BTC" "LTC" "DOGE" "ZEC" "USDT"

Scopes the operations to a single currency, matching either the source or the target side of the operation.

status
string
Enum: "pending" "filling" "success" "failed"

Scopes the operations to a single status. Note: the server does not reject unknown values on this filter — an unrecognised value simply matches no operations.

from
string <date>
Example: from=2023-03-14
to
string <date>
Example: to=2023-04-14
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Operator auto-conversion rules

All auto-conversion rules of the operator, including the rules that have already been closed. Use is_active and effective_to to tell the currently applied rules apart.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an operator auto-conversion rule

Creates an auto-conversion rule for the operator. The rule becomes effective at midnight UTC of the next day.

Every route must reference a conversion pair enabled on the platform, and the operator must own an account in every target_currency.

Only one rule per (owner, rule_currency) may be effective at a time, a second one is rejected with 409.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
Request Body schema: application/json
required
mode
required
string
Enum: "percentage" "limit"
  • percentage – every route must share the same source_currency, which becomes the rule_currency, and must carry a percentage.
  • limit – every route must share the same target_currency, which becomes the rule_currency, and must not carry a percentage. limit is required in this mode.
required
Array of objects (ConversionRoute) non-empty

The source -> target directions of the rule. Every pair must be enabled on the platform, see GET /conversion/pairs.

limit
string <decimal>

The shared conversion limit expressed in rule_currency. Required and must be greater than 0 for limit rules, ignored otherwise.

limit_used
string <decimal>

The initially consumed part of limit. Optional, must not be negative, defaults to 0.

Responses

Request samples

Content type
application/json
{
  • "mode": "percentage",
  • "routes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "rule_currency": "BTC",
  • "mode": "percentage",
  • "is_active": true,
  • "effective_from": "2019-08-24T14:15:22Z",
  • "effective_to": "2019-08-24T14:15:22Z",
  • "limit": "1000",
  • "limit_used": "250.5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "routes": [
    ]
}

Operator auto-conversion rule events

The audit trail of the operator auto-conversion rules. Every event carries a snapshot of the rule at the moment of the change.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
rule_id
string <uuid>

Scopes the events to a single conversion rule. The rule must belong to the owner from the path.

limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "pagination": {
    }
}

Operator auto-conversion rule

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
rule_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "rule_currency": "BTC",
  • "mode": "percentage",
  • "is_active": true,
  • "effective_from": "2019-08-24T14:15:22Z",
  • "effective_to": "2019-08-24T14:15:22Z",
  • "limit": "1000",
  • "limit_used": "250.5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "routes": [
    ]
}

Update an operator auto-conversion rule

Replaces the routes of the rule and switches it on or off. The mode and the rule_currency of the rule are immutable, so the new routes must stay anchored to the same currency.

Changing the routes records a change event, toggling is_active records a paused or a resumed event.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
rule_id
required
string <uuid>
Request Body schema: application/json
required
required
Array of objects (ConversionRoute) non-empty

The full new set of routes. The existing routes are replaced. The mode and the rule_currency of the rule cannot be changed, so the routes must stay anchored to the same currency.

limit
string <decimal>

The new shared conversion limit expressed in rule_currency. Only meaningful for limit rules. The limit is left unchanged when omitted.

is_active
boolean

Switches the rule on or off. Omitting the field switches the rule off, so send the intended value explicitly. Toggling records a paused or resumed rule event.

Responses

Request samples

Content type
application/json
{
  • "routes": [
    ],
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "rule_currency": "BTC",
  • "mode": "percentage",
  • "is_active": true,
  • "effective_from": "2019-08-24T14:15:22Z",
  • "effective_to": "2019-08-24T14:15:22Z",
  • "limit": "1000",
  • "limit_used": "250.5",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "routes": [
    ]
}

Delete an operator auto-conversion rule

Closes the rule at the closest reward run boundary. The rule is not erased, it stays readable through the rules list with a past effective_to.

The amounts accumulated but not yet converted under this rule are released back to the owner account in the source currency before the rule is closed.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
rule_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Operator conversion operations

The conversion operations executed for the operator. One operation covers one source -> target direction of one rule for one reward date.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
operator_id
required
string <uuid>
query Parameters
currency
string
Enum: "BTC" "LTC" "DOGE" "ZEC" "USDT"

Scopes the operations to a single currency, matching either the source or the target side of the operation.

status
string
Enum: "pending" "filling" "success" "failed"

Scopes the operations to a single status. Note: the server does not reject unknown values on this filter — an unrecognised value simply matches no operations.

from
string <date>
Example: from=2023-03-14
to
string <date>
Example: to=2023-04-14
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Hashrate Transfers

Virtual hashrate transfers deliver the hashrate of a boundary donor miner to a recipient: either a single miner or, for a broadcast transfer, the donor's boundary workers.

A transfer works in one of two modes:

  • actual — the donor's real hashrate is passed through as is;
  • modified — the delivered hashrate is guaranteed to be at least the total nominal hashrate of the recipient boundary workers multiplied by modified_coeff. The shortfall against the donor's real hashrate is paid from a reserve locked out of the donor's compensation balance.

An optional random interval adds noise to the hashrate series: in the ui mode the noise only affects the displayed values, in the actual mode it changes the actually delivered hashrate.

Configuration changes never mutate a transfer in place: every change creates an immutable version that takes effect at the nearest five-minute slot boundary. The delivery itself is recorded in the slot ledger — one entry per processed five-minute slot.

The operator/* endpoints expose the platform-scoped configuration: the modified-mode parameters and the commission rates.

🧪 List miners by email

This method is unstable and could be a subject of change in the future.

Authorizations:
user_session_webuser_session_mobileapi_key
query Parameters
email
required
string <email>
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

List Hashrate Transfers created by Miner

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0
status
Array of strings
Items Enum: "stable" "off"

If empty, then return all boundary workers.

sort-by
string
Default: "default"
Enum: "default" "worker_name" "nominal_hashrate" "created_at"
sort-direction
string
Default: "asc"
Enum: "asc" "desc"
mining_mode
Array of strings
Items Enum: "BTC" "LTC_DOGE" "ZEC"

If empty, then return data for all mining modes.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Boundary Workers status statitstics

Query parameters are decoded strictly: any unknown query parameter is rejected with a 400 error.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
query Parameters
mining_mode
Array of strings
Items Enum: "BTC" "LTC_DOGE" "ZEC"

If empty, then return data for all mining modes.

Responses

Response samples

Content type
application/json
{
  • "off": 1,
  • "stable": 150
}

Add a new miner to the pool as a donor recipient

This method creates a new miner and sends invitation link.

Authorizations:
user_session_webuser_session_mobileapi_key
Request Body schema: application/json
required
account_name
required
string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$
email
required
string <email>

Responses

Request samples

Content type
application/json
{
  • "account_name": "Superminer123",
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_name": "Superminer123",
  • "title": "LLC 'Super Miner'",
  • "status": "active",
  • "wallets": [
    ],
  • "pool": {
    },
  • "operator": {
    },
  • "owner": {
    }
}

Boundary Workers hashrate statistics

Get summarized Mining Stats for the boundary workers for which the miner is a donor.

Query parameters are decoded strictly: any unknown query parameter is rejected with a 400 error.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
query Parameters
mining_mode
Array of strings
Items Enum: "BTC" "LTC_DOGE" "ZEC"

If empty, then return data for all mining modes.

Responses

Response samples

Content type
application/json
{
  • "15m": {
    },
  • "1h": {
    },
  • "1d": {
    },
  • "1w": {
    }
}

Daily hashrate report for all Donor Boundary Workers

Generates report with hashrate and rejectrate for all the Hashrate Transfers of the Boundary type created by the Miner.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
query Parameters
from
string <date>
Example: from=2023-03-14
to
string <date>
Example: to=2023-04-14
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2022-09-12",
  • "to": "2022-09-13",
  • "data": [
    ]
}

Recipient->donor commission changes

The optional mining_mode query parameter scopes the commission schedule to a single mining mode. It takes precedence over the legacy currency query parameter when both are provided.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
miner_recipient_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update recipient->donor commission schedule

The optional mining_mode query parameter scopes the commission schedule to a single mining mode. It takes precedence over the legacy currency query parameter when both are provided.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
miner_recipient_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Request Body schema: application/json
required
required
Array of objects [ 1 .. 100 ] items

The schedule of miner commission changes.

Array ([ 1 .. 100 ] items)
fee
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

valid_from
required
string <date>

The date when the commission becomes valid. The date is assumed to be midnight of the specified day in the UTC timezone. For example, 2019-01-01 means 2019-01-01T00:00:00Z. Minimum date is tomorrow.

comment
string [ 1 .. 300 ] characters

Responses

Request samples

Content type
application/json
{
  • "schedule": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Get current recipient->donor commission

The optional mining_mode query parameter scopes the commission to a single mining mode. It takes precedence over the legacy currency query parameter when both are provided.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
miner_recipient_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "fee": 0.009,
  • "valid_from": "2019-08-24",
  • "valid_until": "2019-08-24",
  • "comment": "New tariff plan"
}

Tariff plan for Hashrate Transfers Deprecated

Method is deprecated. Use GET /miners/{miner_donor_id}/virtual-mining-fees/{miner_recipient_id} instead.

The optional mining_mode query parameter scopes the tariff plan to a single mining mode. It takes precedence over the legacy currency query parameter when both are provided.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
miner_recipient_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Update tariff plan for Hashrate Transfers Deprecated

Method is deprecated. Use POST /miners/{miner_donor_id}/virtual-mining-fees/{miner_recipient_id} instead.

The optional mining_mode query parameter scopes the tariff plan to a single mining mode. It takes precedence over the legacy currency query parameter when both are provided.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
miner_recipient_id
required
string <uuid>
query Parameters
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Request Body schema: application/json
required
rate
required
string <decimal> (FlatRateValue)

Flat fee value, min = 0, max = 1 (0.01 = 1%).

Responses

Request samples

Content type
application/json
{
  • "rate": 0.009
}

Response samples

Content type
application/json
{
  • "current": {
    },
  • "future": {
    }
}

Create a new boundary worker

Authorizations:
api_key
Request Body schema: application/json
required
name
required
string [ 3 .. 64 ] characters ^[\w\-%$#@!\^&\*\(\)\[\]\{\}\<\>\/\\\'\"~]{3,...

Supported characters:

  • English letters: a-z, A-Z
  • Digits: 0-9
  • Special symbols: _- %$#@!^&*()[]{}<>/\'"~
recipient_miner_id
required
string <uuid>
donor_miner_id
required
string <uuid>
hashrate
required
string <decimal>

Hashrate in hashes per second. Example: 100000000000000 means 100 TH/s. Must be not less than 4294967296.

Responses

Request samples

Content type
application/json
{
  • "name": "MyBoundaryWorker",
  • "recipient_miner_id": "c74d946f-9377-4a0f-87cd-24559ff208ec",
  • "donor_miner_id": "d743da2c-7751-4b2a-ad71-6e157d053aff",
  • "hashrate": "100000000000000"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "AwesomeBTCWorker",
  • "behavior": "boundary",
  • "status": "stable",
  • "miner": {
    },
  • "donor": {
    },
  • "hashrate": {
    },
  • "boost_hashrate": {
    },
  • "created_at": "2019-08-24T14:15:22Z"
}

Get the boundary worker

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
worker_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "AwesomeBTCWorker",
  • "behavior": "boundary",
  • "status": "stable",
  • "miner": {
    },
  • "donor": {
    },
  • "hashrate": {
    },
  • "boost_hashrate": {
    },
  • "created_at": "2019-08-24T14:15:22Z"
}

Update the boundary worker hashrate

Authorizations:
api_key
path Parameters
worker_id
required
string <uuid>
Request Body schema: application/json
required
hashrate
required
string <decimal>

Hashrate in hashes per second. Example: 100000000000000 means 100 TH/s. Must be not less than 4294967296.

Responses

Request samples

Content type
application/json
{
  • "hashrate": "100000000000000"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "AwesomeBTCWorker",
  • "behavior": "boundary",
  • "status": "stable",
  • "miner": {
    },
  • "donor": {
    },
  • "hashrate": {
    },
  • "boost_hashrate": {
    },
  • "created_at": "2019-08-24T14:15:22Z"
}

Disconnect the boundary worker

Authorizations:
api_key
path Parameters
worker_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Update the boundary worker boost hashrate

Authorizations:
api_key
path Parameters
worker_id
required
string <uuid>
Request Body schema: application/json
required
hashrate
required
string <decimal>

Hashrate in hashes per second. Example: 100000000000000 means 100 TH/s. Must be not less than 4294967296.

Responses

Request samples

Content type
application/json
{
  • "hashrate": "100000000000000"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "AwesomeBTCWorker",
  • "behavior": "boundary",
  • "status": "stable",
  • "miner": {
    },
  • "donor": {
    },
  • "hashrate": {
    },
  • "boost_hashrate": {
    },
  • "created_at": "2019-08-24T14:15:22Z"
}

Summary chart for all workers for which the miner is a donor

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
query Parameters
period
string <duration>
Enum: "PT15M" "PT1H" "P1D" "P1W"

The time period for the selected chart. For each of the periods there is a different frequency of points.

  • PT15M: 15-minute time period, the distance between the points is 1 minute.
  • PT1H: 1-hour time period, the distance between the points is 5 minutes.
  • P1D: 24-hour time period, the distance between the points is 20 minutes.
  • P1W: 7-day time period, the distance between the points is 4 hours.
mining_mode
string
Default: "BTC"
Enum: "BTC" "LTC_DOGE" "ZEC"

Scopes the request to a single mining mode. If not provided, the default mining mode BTC is used.

Hashrate units depend on the mode: BTC and LTC_DOGE report hashes per second (H/s), ZEC (Equihash) reports solutions per second (Sol/s).

Responses

Response samples

Content type
application/json
{
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "interval": "PT1M",
  • "data": {
    }
}

Create a hashrate transfer

Creates a virtual hashrate transfer from a boundary donor miner.

The recipient is either a single miner (recipient_miner_id) or, when recipient_miner_id is omitted, the donor's boundary workers (a broadcast transfer). A donor may have at most one non-deleted transfer per recipient, and a broadcast transfer cannot coexist with addressed transfers of the same donor — a 409 is returned otherwise. All transfers of one donor must use the same currency.

The transfer is created in the active state with its first configuration version in the actual mode, effective from the nearest five-minute slot boundary. Use PUT /hashrate-transfers/{transfer_id}/config to switch it to the modified mode.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
Request Body schema: application/json
required
recipient_miner_id
string <uuid>

The recipient miner. Omit for a broadcast transfer to the donor's boundary workers.

currency
required
string
Enum: "BTC" "ZEC"

The currency the transfer is accounted in.

Responses

Request samples

Content type
application/json
{
  • "recipient_miner_id": "c74d946f-9377-4a0f-87cd-24559ff208ec",
  • "currency": "BTC"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "donor_miner_id": "d743da2c-7751-4b2a-ad71-6e157d053aff",
  • "recipient_miner_id": "c74d946f-9377-4a0f-87cd-24559ff208ec",
  • "state": "active",
  • "reserve_account_id": "a6e3a132-0cb1-4b9f-a849-7b2c39a00401",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted_at": "2019-08-24T14:15:22Z",
  • "current_version": {
    }
}

List donor hashrate transfers

All hashrate transfers of the donor miner. Without the state filter every transfer is returned, including the soft-deleted ones.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>
query Parameters
state
Array of strings
Items Enum: "active" "paused" "deleted"

Keeps only the transfers in the given states. May be repeated.

Responses

Response samples

Content type
application/json
{
  • "transfers": [
    ]
}

Donor hashrate transfers summary

The donor dashboard: the compensation account balance, the total locked reserve, the delivery totals of the current accounting day (UTC) and the current configuration with the last processed slot of every non-deleted transfer of the donor.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "donor_miner_id": "d743da2c-7751-4b2a-ad71-6e157d053aff",
  • "currency": "BTC",
  • "compensation_account_id": "e959e6ea-cf6f-460c-b015-2218befb9613",
  • "compensation_balance": "0.02000000",
  • "reserve_balance": "0.01056000",
  • "today": {
    },
  • "transfers": [
    ]
}

List recipient hashrate transfers

All hashrate transfers directed to the recipient miner. Without the state filter every transfer is returned, including the soft-deleted ones.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_recipient_id
required
string <uuid>
query Parameters
state
Array of strings
Items Enum: "active" "paused" "deleted"

Keeps only the transfers in the given states. May be repeated.

Responses

Response samples

Content type
application/json
{
  • "transfers": [
    ]
}

Get virtual transfer operator settings

The operator parameters of the modified mode for the given currency. When no settings have been stored for the currency yet, the platform defaults are returned.

Authorizations:
user_session_webuser_session_mobileapi_key
query Parameters
currency
required
string
Enum: "BTC" "LTC" "DOGE" "ZEC"

Responses

Response samples

Content type
application/json
{
  • "currency": "BTC",
  • "x_hours": 24,
  • "safety_buffer_pct": "10",
  • "buy_rate_markup_pct": "0",
  • "debt_limit_multiplier": "0",
  • "debt_limit_action": "actual_fallback",
  • "daily_dispersion_limit_pct": "2",
  • "max_modified_coeff": "10"
}

Update virtual transfer operator settings

Creates or replaces the operator parameters of the modified mode for the currency of the request body.

Authorizations:
user_session_webuser_session_mobileapi_key
Request Body schema: application/json
required
currency
required
string
Enum: "BTC" "LTC" "DOGE" "ZEC"
x_hours
required
integer >= 1

The length of the sliding window (hours) the donor's average hashrate is calculated over for the required-reserve calculation. Must be positive.

safety_buffer_pct
required
string <decimal>

The extra percent applied on top of the boost cost when the required reserve is calculated. Must be non-negative.

buy_rate_markup_pct
required
string <decimal>

The markup applied to the market buy rate of the shortfall hashrate, percent. Must be non-negative.

debt_limit_multiplier
required
string <decimal>

Scales the daily cost of the full boost into the debt limit. Zero means zero debt tolerance: the boost runs only while the locked reserve covers it. Must be non-negative.

debt_limit_action
required
string
Enum: "actual_fallback" "pause"

What happens when the accumulated donor debt reaches the debt limit:

  • actual_fallback – the boost is switched off (a system version with mode: actual is created), the pass-through of the donor's real hashrate continues;
  • pause – the transfer is stopped entirely.
daily_dispersion_limit_pct
required
string <decimal>

Bounds the daily divergence of the randomized hashrate series from the deterministic one, percent. Must be non-negative.

max_modified_coeff
required
string <decimal>

The cap on the modified_coeff a donor may request for the currency. Must be at least 1.

Responses

Request samples

Content type
application/json
{
  • "currency": "BTC",
  • "x_hours": 24,
  • "safety_buffer_pct": "10",
  • "buy_rate_markup_pct": "0",
  • "debt_limit_multiplier": "0",
  • "debt_limit_action": "actual_fallback",
  • "daily_dispersion_limit_pct": "2",
  • "max_modified_coeff": "10"
}

Response samples

Content type
application/json
{
  • "currency": "BTC",
  • "x_hours": 24,
  • "safety_buffer_pct": "10",
  • "buy_rate_markup_pct": "0",
  • "debt_limit_multiplier": "0",
  • "debt_limit_action": "actual_fallback",
  • "daily_dispersion_limit_pct": "2",
  • "max_modified_coeff": "10"
}

List virtual transfer commission rates

The commission rates of hashrate transfers: the global per-currency defaults and the per-transfer overrides. Without the currency filter the rates of every currency are returned.

Authorizations:
user_session_webuser_session_mobileapi_key
query Parameters
currency
string
Enum: "BTC" "LTC" "DOGE" "ZEC"

Keeps only the rates of the given currency.

Responses

Response samples

Content type
application/json
{
  • "rates": [
    ]
}

Update a virtual transfer commission rate

Creates or replaces a commission rate row. Without transfer_id the global default of the currency is updated; with transfer_id the per-transfer override is updated.

Authorizations:
user_session_webuser_session_mobileapi_key
Request Body schema: application/json
required
transfer_id
string <uuid>

The transfer the override applies to. Omit to update the global default of the currency.

currency
required
string
Enum: "BTC" "LTC" "DOGE" "ZEC"
rate_actual
required
string <decimal>

The commission fraction of the distributed (pass-through) part. Within [0, 1].

rate_modified
required
string <decimal>

The commission fraction of the boosted part. Within [0, 1].

Responses

Request samples

Content type
application/json
{
  • "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05",
  • "currency": "BTC",
  • "rate_actual": "0.01",
  • "rate_modified": "0.02"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05",
  • "currency": "BTC",
  • "rate_actual": "0.01",
  • "rate_modified": "0.02",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Hashrate transfer details

The transfer together with its current configuration version.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
transfer_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "donor_miner_id": "d743da2c-7751-4b2a-ad71-6e157d053aff",
  • "recipient_miner_id": "c74d946f-9377-4a0f-87cd-24559ff208ec",
  • "state": "active",
  • "reserve_account_id": "a6e3a132-0cb1-4b9f-a849-7b2c39a00401",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deleted_at": "2019-08-24T14:15:22Z",
  • "current_version": {
    }
}

Delete a hashrate transfer

Soft-deletes the transfer: the delivery stops at the nearest slot boundary, while the version history and the slot ledger remain available for reading.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
transfer_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Update the hashrate transfer configuration

Changes the transfer configuration by creating a new configuration version. The new version takes effect at the nearest five-minute slot boundary; the previous version is closed and stays in the history.

In the modified mode modified_coeff is required: the delivered hashrate is guaranteed to be at least the total nominal hashrate of the recipient boundary workers multiplied by modified_coeff. The coefficient must not exceed the operator's max_modified_coeff for the currency, otherwise a 400 with the modified_coeff_limit_exceeded code is returned. Enabling or increasing the boost locks the required reserve from the compensation balance; when the balance is not enough, a 409 with the insufficient_compensation_balance code and the required / balance / deficit breakdown is returned. Use POST /hashrate-transfers/{transfer_id}/config/dry-run to preview the requirement first.

random_interval_pct and random_interval_mode must be set together.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
transfer_id
required
string <uuid>
Request Body schema: application/json
required
mode
required
string
Enum: "actual" "modified"
  • actual – the donor's real hashrate is passed through as is.
  • modified – the delivery is boosted up to the guaranteed target.
modified_coeff
string <decimal>

The guaranteed-minimum multiplier. Required when mode is modified and not allowed otherwise. Must be positive and must not exceed the operator's max_modified_coeff.

random_interval_pct
integer [ 0 .. 50 ]

The amplitude of the random interval applied to the delivered hashrate, percent.

random_interval_mode
string
Enum: "ui" "actual"
  • ui – the noise only affects the displayed hashrate.
  • actual – the noise is applied to the actually delivered hashrate.

Responses

Request samples

Content type
application/json
{
  • "mode": "actual",
  • "modified_coeff": "1.2",
  • "random_interval_pct": 10,
  • "random_interval_mode": "ui"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05",
  • "version": 1,
  • "effective_from": "2019-08-24T14:15:22Z",
  • "effective_to": "2019-08-24T14:15:22Z",
  • "currency": "BTC",
  • "mode": "actual",
  • "modified_coeff": "1.2",
  • "random_interval_pct": 10,
  • "random_interval_mode": "ui",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "close_reason": "config_update",
  • "created_at": "2019-08-24T14:15:22Z",
  • "closed_at": "2019-08-24T14:15:22Z"
}

Dry-run the modified mode configuration

Calculates the reserve requirement of a modified mode configuration without applying it: how much would have to be locked until the end of the current accounting day, and whether the compensation balance is sufficient. Nothing is changed or charged. The parameters are validated by the same rules as in PUT /hashrate-transfers/{transfer_id}/config.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
transfer_id
required
string <uuid>
Request Body schema: application/json
required
modified_coeff
required
string <decimal>

The guaranteed-minimum multiplier to evaluate. Must be positive.

random_interval_pct
integer [ 0 .. 50 ]

The amplitude of the random interval applied to the delivered hashrate, percent. Must be set together with random_interval_mode (both or neither).

random_interval_mode
string
Enum: "ui" "actual"
  • ui – the noise only affects the displayed hashrate.
  • actual – the noise is applied to the actually delivered hashrate.

Responses

Request samples

Content type
application/json
{
  • "modified_coeff": "1.2",
  • "random_interval_pct": 10,
  • "random_interval_mode": "ui"
}

Response samples

Content type
application/json
{
  • "currency": "BTC",
  • "from": "2019-08-24T14:15:22Z",
  • "to": "2019-08-24T14:15:22Z",
  • "x_hours": 24,
  • "actual_donor_hashrate": "100000000000000",
  • "nominal_hashrate": "100000000000000",
  • "target_hashrate": "120000000000000",
  • "hashrate_to_buy": "20000000000000",
  • "rate": "0.00000048",
  • "buy_rate_markup_pct": "0",
  • "noise_upper_bound_pct": "10",
  • "safety_buffer_pct": "10",
  • "hashrate_to_buy_cost": "0.00960000",
  • "required_reserve": "0.01056000",
  • "reserve_balance": "0",
  • "required": "0.01056000",
  • "balance": "0.02000000",
  • "deficit": "0",
  • "sufficient": true
}

Pause a hashrate transfer

Pauses an active transfer: the delivery stops at the nearest slot boundary, the configuration is kept. Only an active transfer can be paused, a 409 is returned otherwise.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
transfer_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Resume a hashrate transfer

Resumes a paused transfer: a new configuration version is created and the delivery restarts at the nearest slot boundary. Resuming in the modified mode re-checks the reserve requirement against the compensation balance the same way as PUT /hashrate-transfers/{transfer_id}/config does. Only a paused transfer can be resumed, a 409 is returned otherwise.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
transfer_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05",
  • "version": 1,
  • "effective_from": "2019-08-24T14:15:22Z",
  • "effective_to": "2019-08-24T14:15:22Z",
  • "currency": "BTC",
  • "mode": "actual",
  • "modified_coeff": "1.2",
  • "random_interval_pct": 10,
  • "random_interval_mode": "ui",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "close_reason": "config_update",
  • "created_at": "2019-08-24T14:15:22Z",
  • "closed_at": "2019-08-24T14:15:22Z"
}

Hashrate transfer version history

One page of the transfer configuration version history, newest version first. Every configuration change, pause, resume and system fallback is recorded as an immutable version aligned to the five-minute slot boundaries. The offset must not exceed 10000.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
transfer_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
application/json
{
  • "versions": [
    ],
  • "pagination": {
    }
}

Hashrate transfer slot ledger

The delivery ledger of the transfer: one entry per processed five-minute slot within the [from, to) window. The window must not exceed 31 days.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
transfer_id
required
string <uuid>
query Parameters
from
required
string <date-time>
Example: from=2026-08-01T00:00:00Z

The start of the window, inclusive.

to
required
string <date-time>
Example: to=2026-08-02T00:00:00Z

The end of the window, exclusive.

Responses

Response samples

Content type
application/json
{
  • "slots": [
    ]
}

Public Info

🧪 Anonymous Pool stats

This method is unstable and could be a subject of change in the future.

Authorizations:
api_keyuser_session_webuser_session_mobilewatcher_tokeninternal_api_key

Responses

Response samples

Content type
application/json
{
  • "hashrate": "100000000000000.00",
  • "miners": 3000,
  • "fee": "0.009",
  • "minpay": "0.0001"
}

List miner's watcher links

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0

Responses

Response samples

Content type
aplication/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create miner's watcher link

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
Request Body schema: aplication/json
required
extra_permissions
Array of strings
Items Value: "accountant"
title
string [ 1 .. 300 ] characters

If empty, will be generated automatically.

Responses

Request samples

Content type
aplication/json
{
  • "extra_permissions": [
    ],
  • "title": "My new awesome watcher link"
}

Response samples

Content type
aplication/json
{
  • "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
  • "token": "hfwl_0123456789abcdef000000000000000000000000000000000000000000000000",
  • "title": "Watcher for LLC 'Super Miner'",
  • "created_at": "2019-08-24T14:15:22Z",
  • "extra_permissions": [
    ]
}

Delete miner's watcher link

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_id
required
string <uuid>
watcher_id
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "error": {
    }
}

Get permissions by watcher token

Authorizations:
api_keyuser_session_webuser_session_mobilewatcher_tokeninternal_api_key
path Parameters
watcher_token
required
string
Example: hfwl_0123456789abcdef000000000000000000000000000000000000000000000000

Responses

Response samples

Content type
application/json
{
  • "permissions": [
    ]
}

Platform

Accounts

Miner donor account balance

Retrieves the balance of the account used for virtual hashrate compensations associated with the miner donor.

Authorizations:
user_session_mobileuser_session_webapi_key
path Parameters
account_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "currency": "BTC",
  • "amount": "0.00068716"
}