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
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
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
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
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
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
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
email
required
string <email>
roles
required
Array of strings (MinerAccessRole) non-empty
Items Enum: "admin" "viewer" "accountant"

Responses

Request samples

Content type
application/json
{}

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
email
required
string <email>
roles
required
Array of strings (MinerAccessRole) non-empty
Items Enum: "admin" "viewer" "accountant"

Responses

Request samples

Content type
application/json
{}

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
email
required
string <email>

Responses

Request samples

Content type
application/json
{}

Response samples

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

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" "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" "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>

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
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": {
    }
}

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" "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"

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>

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

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": [
    ]
}

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
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
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.

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
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.

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
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
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
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
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": [
    ]
}

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
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
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
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
email
required
string <email>
roles
required
Array of strings (PoolAccessRole) non-empty
Items Enum: "admin" "viewer"

Responses

Request samples

Content type
application/json
{}

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
email
required
string <email>
roles
required
Array of strings (PoolAccessRole) non-empty
Items Enum: "admin" "viewer"

Responses

Request samples

Content type
application/json
{}

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
email
required
string <email>

Responses

Request samples

Content type
application/json
{}

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" "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" "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.

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>

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

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
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": "[email protected]",
  • "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" "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"

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>

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
limit
integer [ 1 .. 100 ]
Default: 10
offset
integer
Default: 0
active
bool

Show only active/inactive users. True by default.

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
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
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.

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
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.

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": {
    }
}

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
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
{}

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
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
{}

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
email
required
string <email>

Responses

Request samples

Content type
application/json
{}

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" "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" "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>

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
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
{}

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" "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"

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>

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.

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>

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
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
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.

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.

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
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.

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>

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>

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
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.

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
account_name
required
string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$
email
required
string <email>

Responses

Request samples

Content type
application/json
{}

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
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": "[email protected]",
  • "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
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
{}

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
code
string
email
string <email>

Responses

Request samples

Content type
application/json
{
  • "code": "9fd9e1dcfc6dedfaa81c3ba4898366a8e06128a75efb9c62dfe147029831914c",
}

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
Value: "BTC"

Responses

Response samples

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

Hashrate Transfers

🧪 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"

Responses

Response samples

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

Boundary Workers status statitstics

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>

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
account_name
required
string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$
email
required
string <email>

Responses

Request samples

Content type
application/json
{}

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.

Authorizations:
user_session_webuser_session_mobileapi_key
path Parameters
miner_donor_id
required
string <uuid>

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

Responses

Response samples

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

Recipient->donor commission changes

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": {
    }
}

Update recipient->donor commission schedule

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
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

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
{
  • "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.

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
{
  • "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.

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
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
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": {
    },
  • "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": {
    },
  • "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
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": {
    },
  • "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": {
    }
}

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.

Responses

Response samples

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

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
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