Headframe API (0.1.0)
Download OpenAPI specification:Download
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.
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.
ory_session_relaxedwescoffeywmz1r7ogWe 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.
Current user details
Shows information about the current logged-in user.
Authorizations:
Responses
Response samples
- 200
- 429
- 500
{- "user": {
- "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
- "status": "active",
- "email": "alice@headframe.io",
- "language": "en"
}, - "verification": {
- "intercom": "bd20ce4799fe8a181a019a3c1f0d28e18d087e8643e64541a0ba9e879e72554b"
}, - "credentials": {
- "totp": false,
- "lookup_secret": false
}, - "permissions": [
- {
- "type": "platform",
- "id": "headframe"
}
]
}Change User status
Authorizations:
Request Body schema: application/jsonrequired
| status required | string (UserStatus) Enum: "active" "pending" "inactive" |
Responses
Request samples
- Payload
{- "status": "active"
}Response samples
- 200
- 400
- 429
- 500
{- "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:
Request Body schema: application/jsonrequired
| language required | string (Language) Enum: "en" "ru" |
Responses
Request samples
- Payload
{- "language": "en"
}Response samples
- 200
- 400
- 401
- 404
- 429
- 500
{- "language": "en"
}🧪 Request to delete identity
This method is unstable and could be a subject of change in the future.
Authorizations:
path Parameters
required | string or string |
Responses
Response samples
- 200
- 404
- 429
- 500
{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4"
}Get user's bookmarked watchers
Authorizations:
path Parameters
required | string or string |
Responses
Response samples
- 200
- 404
- 429
- 500
{- "data": [
- {
- "token": "hfwl_0123456789abcdef000000000000000000000000000000000000000000000000",
- "active": true,
- "permissions": [
- {
- "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
- "type": "miner",
- "account_name": "Superminer123",
- "access": [
- "section_payments_read"
]
}
]
}
]
}Add a watcher to user's bookmarks
Authorizations:
path Parameters
required | string or string |
Request Body schema: application/jsonrequired
| token required | string (WatcherToken) |
Responses
Request samples
- Payload
{- "token": "hfwl_0123456789abcdef000000000000000000000000000000000000000000000000"
}Response samples
- 404
- 429
- 500
{- "error": {
- "code": "not_found",
- "message": "The requested page does not exist"
}
}Delete a watcher from user's bookmarks
Authorizations:
path Parameters
required | string or string |
| watcher_token required | string Example: hfwl_0123456789abcdef000000000000000000000000000000000000000000000000 |
Responses
Response samples
- 404
- 429
- 500
{- "error": {
- "code": "not_found",
- "message": "The requested page does not exist"
}
}Create a telegram invite for user
Authorizations:
path Parameters
required | string or string |
Responses
Response samples
- 200
- 400
- 401
- 404
- 500
{- "bot": {
- "username": "TheBestPoolBot",
- "first_name": "The Best Pool Bot"
}, - "invite": {
- "code": "RH409be7cdvscY4Pu5UUVDNY",
- "valid_until": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "activated_at": "2019-08-24T14:15:22Z"
}
}Get user's current telegram invite
Authorizations:
path Parameters
required | string or string |
Responses
Response samples
- 200
- 400
- 401
- 404
- 500
{- "bot": {
- "username": "TheBestPoolBot",
- "first_name": "The Best Pool Bot"
}, - "invite": {
- "code": "RH409be7cdvscY4Pu5UUVDNY",
- "valid_until": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "activated_at": "2019-08-24T14:15:22Z"
}
}Disconnect user from a telegram chat
Authorizations:
path Parameters
required | string or string |
Responses
Response samples
- 400
- 401
- 404
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Get user's current telegram chat
Authorizations:
path Parameters
required | string or string |
Responses
Response samples
- 200
- 400
- 401
- 404
- 500
{- "bot": {
- "username": "TheBestPoolBot",
- "first_name": "The Best Pool Bot"
}, - "chat": {
- "id": 0,
- "user": {
- "id": 0,
- "username": "johnny_appleseed",
- "first_name": "Johnny",
- "last_name": "Appleseed",
- "language_code": "en",
- "is_premium": true
}
}
}Get user's notifications preferences
Authorizations:
path Parameters
required | string or string |
Responses
Response samples
- 200
- 400
- 401
- 404
- 500
{- "email": {
- "delete-miner": {
- "enabled": true,
- "readonly": false
}, - "miner-payout": {
- "enabled": true,
- "readonly": false
}, - "miner-reward": {
- "enabled": true,
- "readonly": false
}, - "miner-wallet-address-changed": {
- "enabled": true,
- "readonly": false
}, - "miner-wallet-minpay-changed": {
- "enabled": true,
- "readonly": false
}, - "user-login": {
- "enabled": true,
- "readonly": false
}
}, - "telegram": {
- "worker-status-changed": {
- "enabled": true,
- "readonly": false
}
}
}Update user's notifications preferences
Authorizations:
path Parameters
required | string or string |
Request Body schema: application/jsonrequired
required | object |
required | object |
Responses
Request samples
- Payload
{- "email": {
- "miner-payout": {
- "enabled": true
}, - "miner-reward": {
- "enabled": true
}
}, - "telegram": {
- "worker-status-changed": {
- "enabled": true
}
}
}Response samples
- 200
- 400
- 401
- 404
- 500
{- "email": {
- "delete-miner": {
- "enabled": true,
- "readonly": false
}, - "miner-payout": {
- "enabled": true,
- "readonly": false
}, - "miner-reward": {
- "enabled": true,
- "readonly": false
}, - "miner-wallet-address-changed": {
- "enabled": true,
- "readonly": false
}, - "miner-wallet-minpay-changed": {
- "enabled": true,
- "readonly": false
}, - "user-login": {
- "enabled": true,
- "readonly": false
}
}, - "telegram": {
- "worker-status-changed": {
- "enabled": true,
- "readonly": false
}
}
}Miner self-registration
Authorizations:
Request Body schema: application/jsonrequired
| account_name required | string [ 3 .. 32 ] characters ^\w{3,32}$ |
Responses
Request samples
- Payload
{- "account_name": "Superminer123"
}Response samples
- 200
- 400
- 401
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
}Miner details
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
}Request Miner deletion
Sends a request to delete Miner account. These requests are processed manually, so the account is not deleted right away.
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}List miner access rules
Get a list of users who have access to the miner
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com"
}, - "roles": [
- "admin"
]
}
]
}Modify user access to the miner
This method changes specified user access permissions for the miner.
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> |
| roles required | Array of strings (MinerAccessRole) non-empty Items Enum: "admin" "viewer" "accountant" |
Responses
Request samples
- Payload
{- "email": "user@example.com",
- "roles": [
- "admin"
]
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 429
- 500
{- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com"
}, - "roles": [
- "admin"
]
}Invite user to access the miner
This method invites specified user to access the miner.
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> |
| roles required | Array of strings (MinerAccessRole) non-empty Items Enum: "admin" "viewer" "accountant" |
Responses
Request samples
- Payload
{- "email": "user@example.com",
- "roles": [
- "admin"
]
}Response samples
- 200
- 400
- 401
- 403
- 409
- 429
- 500
{- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com"
}, - "roles": [
- "admin"
]
}Revoke access to the miner
This method revokes access to the miner for the specified user.
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> |
Responses
Request samples
- Payload
{- "email": "user@example.com"
}Response samples
- 400
- 401
- 403
- 409
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Get Miner ID by it's account name
Authorizations:
query Parameters
| name required | string Example: name=Superminer123 Account name |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123"
}List Miner payments
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "type": "reward",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "direction": "incoming",
- "currency": "BTC",
- "amount": "0.000003850292003",
- "status": "completed",
- "created_at": "2006-01-02T15:04:05Z07:00",
- "effective_at": "2006-01-02T15:04:05Z07:00",
- "metadata": {
- "rate": "0.00000000000000000282",
- "hashrate": "178469469608370",
- "description": "Reward for participation in the competition"
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}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:
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
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Miner earnings for today Deprecated
Use /miners/{miner_id}/processing-earnings instead
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "currency": "BTC",
- "amount": "0.00068716"
}
]
}Miner earnings in processing
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "currency": "BTC",
- "amounts": {
- "yesterday": "0.00157816",
- "today": "0.00068716"
}
}
]
}List referrals invited by the miner
Authorizations:
path Parameters
| miner_id required | string <uuid> |
query Parameters
| limit | integer [ 1 .. 100 ] Default: 10 |
| offset | integer Default: 0 |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "rate": "0.001",
- "hashrate": {
- "day": "100000000000000.00",
- "week": "100000000000000.00",
- "month": "100000000000000.00"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}List miner's active profit sharings
Returns a list of active profit sharings for which the miner is a donor.
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "rate": 0.009,
- "type": "profit_sharing",
- "recipient": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123"
}, - "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
]
}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:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "rate": 0.009,
- "type": "profit_sharing",
- "recipient": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123"
}, - "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}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:
path Parameters
| miner_donor_id required | string <uuid> |
| miner_recipient_id required | string <uuid> |
Request Body schema: application/jsonrequired
| 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
- Payload
{- "rate": 0.009,
- "type": "profit_sharing"
}Response samples
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}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:
path Parameters
| miner_donor_id required | string <uuid> |
| miner_recipient_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}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:
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 Hashrate units depend on the mode: |
Request Body schema: application/jsonrequired
| limit required | string <decimal> Positive number or zero |
Responses
Request samples
- Payload
{- "limit": "100000000000000.00"
}Response samples
- 200
- 400
- 403
- 422
- 429
- 500
{- "current": {
- "limit": 5000000000000000,
- "valid_from": "2024-12-05T13:02:00Z",
- "valid_until": "9999-01-01T00:00:00Z"
}, - "future": {
- "limit": 5000000000000000,
- "valid_from": "2024-12-05T13:02:00Z",
- "valid_until": "9999-01-01T00:00:00Z"
}
}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:
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 Hashrate units depend on the mode: |
Request Body schema: application/jsonrequired
| limit required | string <decimal> Positive number or zero |
Responses
Request samples
- Payload
{- "limit": "100000000000000.00"
}Response samples
- 200
- 400
- 403
- 422
- 429
- 500
{- "current": {
- "limit": 5000000000000000,
- "valid_from": "2024-12-05T13:02:00Z",
- "valid_until": "9999-01-01T00:00:00Z"
}, - "future": {
- "limit": 5000000000000000,
- "valid_from": "2024-12-05T13:02:00Z",
- "valid_until": "9999-01-01T00:00:00Z"
}
}Get donor hashrate per day
Retrieve the hashrate per day for a specific miner donor on a given date.
Authorizations:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "hashrate_per_day": "100000000000000.00"
}List Miner Workers
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "AwesomeBTCWorker",
- "behavior": "hardware",
- "status": "stable",
- "miner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Workers statistics
Shows how many workers are in the corresponding status at the moment.
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2022-09-12",
- "to": "2022-09-13",
- "data": [
- {
- "date": "2022-09-12",
- "from": "2022-09-12T00:00:00Z",
- "to": "2022-09-12T23:59:59Z",
- "workers": [
- {
- "account_name": "Superminer123",
- "worker_name": "BTCMiner69",
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
]
}
]
}List miner's referrer codes
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "code": "hfrc_XZKKINF0",
- "pool_flat_rate": 0.009,
- "policy": {
- "pool_rate_multiplier": "0.9",
- "referrer_reward_multiplier": "0.1"
}
}
]
}Get monthly mining report for the miner
Authorizations:
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 |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "miner": {
- "end_of_month_balance": 0.12,
- "reward_amount": 0.0983,
- "working_hours": 114.28,
- "wallet_addresses": [
- "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
]
}, - "pool": {
- "wallet_addresses": {
- "input": [
- "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
], - "output": [
- "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
]
}
}
}List miner's watcher links
Authorizations:
path Parameters
| miner_id required | string <uuid> |
query Parameters
| limit | integer [ 1 .. 100 ] Default: 10 |
| offset | integer Default: 0 |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "data": [
- {
- "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
- "token": "hfwl_0123456789abcdef000000000000000000000000000000000000000000000000",
- "title": "Watcher for LLC 'Super Miner'",
- "created_at": "2019-08-24T14:15:22Z",
- "extra_permissions": [
- "accountant"
]
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Create miner's watcher link
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Request Body schema: aplication/jsonrequired
| extra_permissions | Array of strings Items Value: "accountant" |
| title | string [ 1 .. 300 ] characters If empty, will be generated automatically. |
Responses
Request samples
- Payload
{- "extra_permissions": [
- "accountant"
], - "title": "My new awesome watcher link"
}Response samples
- 200
- 400
- 401
- 403
- 500
{- "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
- "token": "hfwl_0123456789abcdef000000000000000000000000000000000000000000000000",
- "title": "Watcher for LLC 'Super Miner'",
- "created_at": "2019-08-24T14:15:22Z",
- "extra_permissions": [
- "accountant"
]
}Delete miner's watcher link
Authorizations:
path Parameters
| miner_id required | string <uuid> |
| watcher_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Charts for the list of workers.
Authorizations:
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.
|
| id | Array of strings <uuid> non-empty [ items <uuid > ] Examples:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2019-08-24T14:15:22Z",
- "to": "2019-08-24T14:15:22Z",
- "interval": "PT1M",
- "data": {
- "f6e3e748-16c6-4235-a5bb-d948b9638c6e": {
- "status": "ok",
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
]
}, - "0e4ce810-6107-4eb0-a71c-53046e396aa3": {
- "status": "ok",
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
]
}
}
}Get Mining Stats for the list of Workers.
Authorizations:
query Parameters
| id | Array of strings <uuid> non-empty [ items <uuid > ] Examples:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "f6e3e748-16c6-4235-a5bb-d948b9638c6e": {
- "15m": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1h": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1d": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1w": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}
}, - "0e4ce810-6107-4eb0-a71c-53046e396aa3": {
- "15m": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1h": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1d": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1w": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}
}
}Wallet address Deprecated
Method is deprecated. Use GET /wallets/{wallet_id}/addresses instead.
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "current": {
- "address": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5",
- "currency": "BTC",
- "network": "mainnet",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "future": {
- "address": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5",
- "currency": "BTC",
- "network": "mainnet",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Update wallet address Deprecated
Method is deprecated. Use POST /wallets/{wallet_id}/addresses instead.
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Request Body schema: application/jsonrequired
| address required | string Wallet address. |
Responses
Request samples
- Payload
{- "address": "d8f7f55e689126db5521f8f725aaeba8436fcf60"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "current": {
- "address": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5",
- "currency": "BTC",
- "network": "mainnet",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "future": {
- "address": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5",
- "currency": "BTC",
- "network": "mainnet",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Wallet address changes
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "address": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5",
- "currency": "BTC",
- "network": "mainnet",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Change wallet address
Invalidates the current address and creates a new one.
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Request Body schema: application/jsonrequired
| address required | string Wallet address |
Responses
Request samples
- Payload
{- "address": "mubUpE11SXEuyM7EhSYEcnptbwvfcV72Nx"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "address": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5",
- "currency": "BTC",
- "network": "mainnet",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Wallet min payment Deprecated
Method is deprecated. Use GET /wallets/{wallet_id}/min-payments instead.
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "current": {
- "amount": 0.01,
- "currency": "BTC",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "future": {
- "amount": 0.01,
- "currency": "BTC",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Update wallet min payment Deprecated
Method is deprecated. Use POST /wallets/{wallet_id}/min-payments instead.
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Request Body schema: application/jsonrequired
| amount required | string <decimal> Minimal value is 0.001. |
Responses
Request samples
- Payload
{- "amount": 0.01
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "current": {
- "amount": 0.01,
- "currency": "BTC",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "future": {
- "amount": 0.01,
- "currency": "BTC",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Wallet min payment changes
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "amount": 0.01,
- "currency": "BTC",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Change wallet min payment
Invalidates the current min payment and creates a new one.
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Request Body schema: application/jsonrequired
| amount required | string <decimal> Minimal value is 0.001. |
Responses
Request samples
- Payload
{- "amount": 0.01
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "amount": 0.01,
- "currency": "BTC",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Wallet max payment changes
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "amount": 100,
- "currency": "BTC",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Change wallet max payment
Invalidates the current max payment and creates a new one.
Authorizations:
path Parameters
| wallet_id required | string <uuid> |
Request Body schema: application/jsonrequired
| amount required | string or null <decimal> Maximal value. Can be null to reset to default. |
Responses
Request samples
- Payload
{- "amount": 100
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "amount": 100,
- "currency": "BTC",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_until": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Rename the Miner
Rename the Miner
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Request Body schema: application/jsonrequired
| title required | string |
Responses
Request samples
- Payload
{- "title": "LLC 'Super Miner'"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "title": "LLC 'Super Miner'"
}Delete Miner's title
Delete Miner's title
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Miner tariff plan Deprecated
Method is deprecated. Use GET /miners/{miner_id}/fees instead.
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "current": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}Update Miner tariff plan. Deprecated
Method is deprecated. Use POST /miners/{miner_id}/fees instead.
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Request Body schema: application/jsonrequired
| rate required | string <decimal> (FlatRateValue) Flat fee value, min = 0, max = 1 (0.01 = 1%). |
Responses
Request samples
- Payload
{- "rate": 0.009
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "current": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}Miner->pool commission changes
Authorizations:
path Parameters
| miner_id required | string <uuid> |
query Parameters
| limit | integer [ 1 .. 100 ] Default: 10 |
| offset | integer Default: 0 |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "fee": 0.009,
- "valid_from": "2019-08-24",
- "valid_until": "2019-08-24",
- "comment": "New tariff plan"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Update miner->pool commission schedule
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Request Body schema: application/jsonrequired
required | Array of objects [ 1 .. 100 ] items The schedule of miner commission changes. | ||||||
Array ([ 1 .. 100 ] items)
| |||||||
Responses
Request samples
- Payload
{- "schedule": [
- {
- "valid_from": "2019-01-01",
- "fee": 0.01,
- "comment": "Discount for the New Year"
}, - {
- "valid_from": "2019-02-01",
- "fee": 0.02,
- "comment": "Increased commission in honor of Valentine's Day"
}, - {
- "valid_from": "2019-03-01",
- "fee": 0.015,
- "comment": "Default commission"
}
]
}Response samples
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Get current miner->pool commission
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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:
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
- 200
- 400
- 401
- 403
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "title": "Demo Pool",
- "settings": {
- "default_language": "en",
- "available_languages": [
- "en"
]
}
}Private Pool info.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "title": "Demo Pool",
- "settings": {
- "default_language": "en",
- "available_languages": [
- "en"
]
}, - "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}List pool access rules
Get a list of users who have access to the pool
Authorizations:
path Parameters
| pool_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com"
}, - "roles": [
- "admin"
]
}
]
}Modify user access to the pool
This method changes specified user access permissions for the pool.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> |
| roles required | Array of strings (PoolAccessRole) non-empty Items Enum: "admin" "viewer" |
Responses
Request samples
- Payload
{- "email": "user@example.com",
- "roles": [
- "admin"
]
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 429
- 500
{- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com"
}, - "roles": [
- "admin"
]
}Invite user to access the pool
This method invites specified user to access the pool.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> |
| roles required | Array of strings (PoolAccessRole) non-empty Items Enum: "admin" "viewer" |
Responses
Request samples
- Payload
{- "email": "user@example.com",
- "roles": [
- "admin"
]
}Response samples
- 200
- 400
- 401
- 403
- 409
- 429
- 500
{- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com"
}, - "roles": [
- "admin"
]
}Revoke access to the pool
This method revokes access to the pool for the specified user.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> |
Responses
Request samples
- Payload
{- "email": "user@example.com"
}Response samples
- 400
- 401
- 403
- 409
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}List pool payments.
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "type": "reward",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "direction": "incoming",
- "currency": "BTC",
- "amount": "0.000003850292003",
- "status": "completed",
- "created_at": "2006-01-02T15:04:05Z07:00",
- "effective_at": "2006-01-02T15:04:05Z07:00",
- "metadata": {
- "rate": "0.00000000000000000282",
- "hashrate": "178469469608370",
- "description": "Reward for participation in the competition"
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Export list of the pool's payments as CSV file.
Authorizations:
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
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Pool earnings for today. Deprecated
Use /pools/{pool_id}/processing-earnings instead
Authorizations:
path Parameters
| pool_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "currency": "BTC",
- "amount": "0.00068716"
}
]
}Pool earnings from the specific miner for all time.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "currency": "BTC",
- "amount": "0.00068716"
}
]
}Chart for the whole pool.
Authorizations:
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.
|
| 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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2019-08-24T14:15:22Z",
- "to": "2019-08-24T14:15:22Z",
- "interval": "PT1M",
- "data": {
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
], - "status": "ok"
}
}Get Mining Stats for the entire pool.
Only pool owner, pool accountant and pool admin can call this method.
Authorizations:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "15m": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1h": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1d": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1w": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
}List operators of the pool.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
query Parameters
| limit | integer [ 1 .. 100 ] Default: 10 |
| offset | integer Default: 0 |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "Pool operator",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}, - "settings": {
- "default_pool_fee_for_customer": 0.009
}, - "workers": {
- "count": 0,
- "statuses": {
- "removed": 10,
- "off": 1,
- "unavailable": 13,
- "stable": 150
}
}, - "miners": {
- "count": 0
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}List miners of the pool
Authorizations:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "current_plan": 0.009
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "current_plan": 0.009
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}, - "workers": {
- "count": 0,
- "statuses": {
- "removed": 10,
- "off": 1,
- "unavailable": 13,
- "stable": 150
}
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Invite miner to the pool
Authorizations:
path Parameters
| pool_id required | string <uuid> |
Request Body schema: application/jsonrequired
| 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
- Payload
{- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "email": "user@example.com",
- "rate": 0.009
}Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
}List workers of the pool.
Authorizations:
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
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "AwesomeBTCWorker",
- "behavior": "hardware",
- "status": "stable",
- "miner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Workers' status statistics.
Authorizations:
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
- 200
- 400
- 401
- 403
- 429
- 500
{- "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:
path Parameters
| pool_id required | string <uuid> |
query Parameters
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
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "email": {
- "value": "user@example.com",
- "masked": true,
- "verified": true
}, - "registered_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}🧪 Get user's details
This method is unstable and could be a subject of change in the future.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
| user_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "email": {
- "value": "user@example.com",
- "masked": true,
- "verified": true
}, - "registered_at": "2019-08-24T14:15:22Z",
- "language": "en",
- "credentials": {
- "totp": true,
- "lookup_secret": true
}
}🧪 Completely delete user
This method is unstable and could be a subject of change in the future.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
| user_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}🧪 Get user's deletion request
This method is unstable and could be a subject of change in the future.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
| user_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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:
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
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "active": true,
- "expires_at": "2019-08-24T14:15:22Z",
- "authenticated_at": "2019-08-24T14:15:22Z",
- "authenticator_assurance_level": "aal0",
- "issued_at": "2019-08-24T14:15:22Z",
- "devices": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ip_address": "9da1:d882:b78c:fdad:4aae:47d3:3254:142a",
- "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
- "location": "Tbilisi, GE"
}
]
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}🧪 Deactivate user's session
This method is unstable and could be a subject of change in the future.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
| session_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}🧪 Reset user's 2FA
This method is unstable and could be a subject of change in the future.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
| user_id required | string <uuid> |
Request Body schema: application/jsonrequired
| type required | string Enum: "totp" "lookup_secret" Type of 2FA to reset |
Responses
Request samples
- Payload
{- "type": "totp"
}Response samples
- 400
- 401
- 403
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}🧪 List user's invites
This method is unstable and could be a subject of change in the future.
Authorizations:
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
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "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"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}🧪 Send a new invite to user
This method is unstable and could be a subject of change in the future.
Authorizations:
path Parameters
| pool_id required | string <uuid> |
| user_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "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:
path Parameters
| pool_id required | string <uuid> |
| user_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
- "type": "miner",
- "account_name": "Superminer123",
- "roles": [
- "owner"
]
}
]
}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:
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.
|
| id | Array of strings <uuid> non-empty [ items <uuid > ] Examples:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2019-08-24T14:15:22Z",
- "to": "2019-08-24T14:15:22Z",
- "interval": "PT1M",
- "data": {
- "f6e3e748-16c6-4235-a5bb-d948b9638c6e": {
- "status": "ok",
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
]
}, - "0e4ce810-6107-4eb0-a71c-53046e396aa3": {
- "status": "ok",
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
]
}
}
}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:
query Parameters
| id | Array of strings <uuid> non-empty [ items <uuid > ] Examples:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "f6e3e748-16c6-4235-a5bb-d948b9638c6e": {
- "15m": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1h": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1d": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1w": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}
}, - "0e4ce810-6107-4eb0-a71c-53046e396aa3": {
- "15m": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1h": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1d": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1w": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}
}
}Info about the operator.
Authorizations:
path Parameters
| operator_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "Pool operator",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}, - "settings": {
- "default_pool_fee_for_customer": 0.009
}
}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:
path Parameters
| operator_id required | string <uuid> |
Request Body schema: application/jsonrequired
| fee required | string <decimal> |
Responses
Request samples
- Payload
{- "fee": "0.005"
}Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "fee": "0.005"
}List operator access rules
Get a list of users who have access to the operator
Authorizations:
path Parameters
| operator_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com"
}, - "roles": [
- "admin"
]
}
]
}Modify user access to the operator
This method changes specified user access permissions for the operator.
Authorizations:
path Parameters
| operator_id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> |
| roles required | Array of strings (OperatorAccessRole) non-empty Items Enum: "admin" "viewer" "accountant" "treasurer" |
Responses
Request samples
- Payload
{- "email": "user@example.com",
- "roles": [
- "admin"
]
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 429
- 500
{- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com"
}, - "roles": [
- "admin"
]
}Invite user to access the operator
This method invites specified user to access the operator.
Authorizations:
path Parameters
| operator_id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> |
| roles required | Array of strings (OperatorAccessRole) non-empty Items Enum: "admin" "viewer" "accountant" "treasurer" |
Responses
Request samples
- Payload
{- "email": "user@example.com",
- "roles": [
- "admin"
]
}Response samples
- 200
- 400
- 401
- 403
- 409
- 429
- 500
{- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "user@example.com"
}, - "roles": [
- "admin"
]
}Revoke access to the operator
This method revokes access to the operator for the specified user.
Authorizations:
path Parameters
| operator_id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> |
Responses
Request samples
- Payload
{- "email": "user@example.com"
}Response samples
- 400
- 401
- 403
- 409
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}List operator payments.
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "type": "reward",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "direction": "incoming",
- "currency": "BTC",
- "amount": "0.000003850292003",
- "status": "completed",
- "created_at": "2006-01-02T15:04:05Z07:00",
- "effective_at": "2006-01-02T15:04:05Z07:00",
- "metadata": {
- "rate": "0.00000000000000000282",
- "hashrate": "178469469608370",
- "description": "Reward for participation in the competition"
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Export list of the operator's payments as CSV file.
Authorizations:
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
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Operator earnings for today. Deprecated
Use /operators/{operator_id}/processing-earnings instead
Authorizations:
path Parameters
| operator_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "currency": "BTC",
- "amount": "0.00068716"
}
]
}Operator earnings being processed
Authorizations:
path Parameters
| operator_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "currency": "BTC",
- "amounts": {
- "yesterday": "0.00157816",
- "today": "0.00068716"
}
}
]
}Operator earnings from the specific miner for all time.
Authorizations:
path Parameters
| operator_id required | string <uuid> |
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "currency": "BTC",
- "amount": "0.00068716"
}
]
}List miners managed by operator
Authorizations:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "current_plan": 0.009
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "current_plan": 0.009
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}, - "workers": {
- "count": 0,
- "statuses": {
- "removed": 10,
- "off": 1,
- "unavailable": 13,
- "stable": 150
}
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Add a miner managed by operator
Authorizations:
path Parameters
| operator_id required | string <uuid> |
Request Body schema: application/jsonrequired
| 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
- Payload
{- "account_name": "Superminer123",
- "email": "user@example.com",
- "rate": 0.009
}Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
}List workers managed by the operator.
Authorizations:
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
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "AwesomeBTCWorker",
- "behavior": "hardware",
- "status": "stable",
- "miner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Workers statistics
Shows how many workers are in the corresponding status at the moment.
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "removed": 10,
- "off": 1,
- "unavailable": 13,
- "stable": 150
}Chart for the operator.
Authorizations:
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.
|
| 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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2019-08-24T14:15:22Z",
- "to": "2019-08-24T14:15:22Z",
- "interval": "PT1M",
- "data": {
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
], - "status": "ok"
}
}Get Mining Stats for the operator.
Authorizations:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "15m": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1h": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1d": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1w": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
}Miner->operator commission changes
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "fee": 0.009,
- "valid_from": "2019-08-24",
- "valid_until": "2019-08-24",
- "comment": "New tariff plan"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Update miner->operator commission schedule
Authorizations:
path Parameters
| operator_id required | string <uuid> |
| miner_id required | string <uuid> |
Request Body schema: application/jsonrequired
required | Array of objects [ 1 .. 100 ] items The schedule of miner commission changes. | ||||||
Array ([ 1 .. 100 ] items)
| |||||||
Responses
Request samples
- Payload
{- "schedule": [
- {
- "valid_from": "2019-01-01",
- "fee": 0.01,
- "comment": "Discount for the New Year"
}, - {
- "valid_from": "2019-02-01",
- "fee": 0.02,
- "comment": "Increased commission in honor of Valentine's Day"
}, - {
- "valid_from": "2019-03-01",
- "fee": 0.015,
- "comment": "Default commission"
}
]
}Response samples
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Get current miner->operator commission
Authorizations:
path Parameters
| operator_id required | string <uuid> |
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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:
path Parameters
| operator_id required | string <uuid> |
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "current": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}Update operator's tariff plan for the miner Deprecated
Method is deprecated. Use POST /operators/{operator_id}/miners/{miner_id}/fees instead.
Authorizations:
path Parameters
| operator_id required | string <uuid> |
| miner_id required | string <uuid> |
Request Body schema: application/jsonrequired
| rate required | string <decimal> (FlatRateValue) Flat fee value, min = 0, max = 1 (0.01 = 1%). |
Responses
Request samples
- Payload
{- "rate": 0.009
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "current": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}Chart for the whole pool.
Authorizations:
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.
|
| 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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2019-08-24T14:15:22Z",
- "to": "2019-08-24T14:15:22Z",
- "interval": "PT1M",
- "data": {
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
], - "status": "ok"
}
}Chart for the operator.
Authorizations:
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.
|
| 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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2019-08-24T14:15:22Z",
- "to": "2019-08-24T14:15:22Z",
- "interval": "PT1M",
- "data": {
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
], - "status": "ok"
}
}Charts for the list of workers.
Authorizations:
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.
|
| id | Array of strings <uuid> non-empty [ items <uuid > ] Examples:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2019-08-24T14:15:22Z",
- "to": "2019-08-24T14:15:22Z",
- "interval": "PT1M",
- "data": {
- "f6e3e748-16c6-4235-a5bb-d948b9638c6e": {
- "status": "ok",
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
]
}, - "0e4ce810-6107-4eb0-a71c-53046e396aa3": {
- "status": "ok",
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
]
}
}
}Get Mining Stats for the entire pool.
Only pool owner, pool accountant and pool admin can call this method.
Authorizations:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "15m": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1h": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1d": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1w": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
}Get Mining Stats for the operator.
Authorizations:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "15m": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1h": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1d": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1w": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
}Get Mining Stats for the list of Workers.
Authorizations:
query Parameters
| id | Array of strings <uuid> non-empty [ items <uuid > ] Examples:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "f6e3e748-16c6-4235-a5bb-d948b9638c6e": {
- "15m": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1h": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1d": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1w": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}
}, - "0e4ce810-6107-4eb0-a71c-53046e396aa3": {
- "15m": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1h": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1d": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}, - "1w": {
- "hashrate": "90697492495655",
- "rejectrate": "0"
}
}
}Add a new miner to the pool as a donor recipient
This method creates a new miner and sends invitation link.
Authorizations:
Request Body schema: application/jsonrequired
| account_name required | string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$ |
| email required | string <email> |
Responses
Request samples
- Payload
{- "account_name": "Superminer123",
- "email": "user@example.com"
}Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
}Invite miner to the pool
Authorizations:
path Parameters
| pool_id required | string <uuid> |
Request Body schema: application/jsonrequired
| 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
- Payload
{- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "email": "user@example.com",
- "rate": 0.009
}Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
}Add a miner managed by operator
Authorizations:
path Parameters
| operator_id required | string <uuid> |
Request Body schema: application/jsonrequired
| 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
- Payload
{- "account_name": "Superminer123",
- "email": "user@example.com",
- "rate": 0.009
}Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
}Accept invitation
Authorizations:
Request Body schema: application/jsonrequired
| code | string |
string <email> |
Responses
Request samples
- Payload
{- "code": "9fd9e1dcfc6dedfaa81c3ba4898366a8e06128a75efb9c62dfe147029831914c",
- "email": "miner@pool.io"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{
}🧪 Reward rates list
This method is unstable and could be a subject of change in the future.
Authorizations:
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 |
Responses
Response samples
- 200
- 400
- 429
- 500
{- "rates": [
- {
- "date": "2022-12-14",
- "currency": "BTC",
- "rate": "0.00000367"
}
]
}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:
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
- 200
- 400
- 403
- 429
- 500
[- {
- "effective_date": "2024-12-05",
- "type": "reward",
- "created_at": "2024-12-05 12:00:00"
}
]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
routes — source_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:
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
- 200
- 400
- 401
- 429
- 500
[- {
- "source": "BTC",
- "target": "BTC"
}
]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:
path Parameters
| miner_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
[- {
- "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": [
- {
- "source_currency": "BTC",
- "target_currency": "BTC",
- "percentage": "25.50"
}
]
}
]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:
path Parameters
| miner_id required | string <uuid> |
Request Body schema: application/jsonrequired
| mode required | string Enum: "percentage" "limit"
|
required | Array of objects (ConversionRoute) non-empty The source -> target directions of the rule. Every pair must be enabled on the platform, see |
| limit | string <decimal> The shared conversion limit expressed in |
| limit_used | string <decimal> The initially consumed part of |
Responses
Request samples
- Payload
{- "mode": "percentage",
- "routes": [
- {
- "source_currency": "ZEC",
- "target_currency": "USDT",
- "percentage": "50"
}
]
}Response samples
- 201
- 400
- 401
- 403
- 409
- 429
- 500
{- "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": [
- {
- "source_currency": "BTC",
- "target_currency": "BTC",
- "percentage": "25.50"
}
]
}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:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type": "created",
- "payload": {
- "rule_currency": "ZEC",
- "mode": "percentage",
- "routes": [
- {
- "source_currency": "ZEC",
- "target_currency": "USDT",
- "percentage": "50"
}
]
}, - "created_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Miner auto-conversion rule
Authorizations:
path Parameters
| miner_id required | string <uuid> |
| rule_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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": [
- {
- "source_currency": "BTC",
- "target_currency": "BTC",
- "percentage": "25.50"
}
]
}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:
path Parameters
| miner_id required | string <uuid> |
| rule_id required | string <uuid> |
Request Body schema: application/jsonrequired
required | Array of objects (ConversionRoute) non-empty The full new set of routes. The existing routes are replaced. The mode and the |
| limit | string <decimal> The new shared conversion limit expressed in |
| 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 |
Responses
Request samples
- Payload
{- "routes": [
- {
- "source_currency": "ZEC",
- "target_currency": "USDT",
- "percentage": "30"
}
], - "is_active": true
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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": [
- {
- "source_currency": "BTC",
- "target_currency": "BTC",
- "percentage": "25.50"
}
]
}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:
path Parameters
| miner_id required | string <uuid> |
| rule_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}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:
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
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source_currency": "BTC",
- "target_currency": "BTC",
- "source_amount": "0.015",
- "target_amount": "1435.58",
- "rate": "96682.0",
- "spread_amount": "14.65",
- "status": "pending",
- "effective_date": "2026-07-20",
- "payment_out_id": "b1e083bf-655a-42c9-ab6b-3feb07fb0a93",
- "payment_in_id": "ff4b5657-1b16-4a65-b398-31f796d3be3f",
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}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:
path Parameters
| operator_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
[- {
- "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": [
- {
- "source_currency": "BTC",
- "target_currency": "BTC",
- "percentage": "25.50"
}
]
}
]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:
path Parameters
| operator_id required | string <uuid> |
Request Body schema: application/jsonrequired
| mode required | string Enum: "percentage" "limit"
|
required | Array of objects (ConversionRoute) non-empty The source -> target directions of the rule. Every pair must be enabled on the platform, see |
| limit | string <decimal> The shared conversion limit expressed in |
| limit_used | string <decimal> The initially consumed part of |
Responses
Request samples
- Payload
{- "mode": "percentage",
- "routes": [
- {
- "source_currency": "ZEC",
- "target_currency": "USDT",
- "percentage": "50"
}
]
}Response samples
- 201
- 400
- 401
- 403
- 409
- 429
- 500
{- "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": [
- {
- "source_currency": "BTC",
- "target_currency": "BTC",
- "percentage": "25.50"
}
]
}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:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type": "created",
- "payload": {
- "rule_currency": "ZEC",
- "mode": "percentage",
- "routes": [
- {
- "source_currency": "ZEC",
- "target_currency": "USDT",
- "percentage": "50"
}
]
}, - "created_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Operator auto-conversion rule
Authorizations:
path Parameters
| operator_id required | string <uuid> |
| rule_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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": [
- {
- "source_currency": "BTC",
- "target_currency": "BTC",
- "percentage": "25.50"
}
]
}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:
path Parameters
| operator_id required | string <uuid> |
| rule_id required | string <uuid> |
Request Body schema: application/jsonrequired
required | Array of objects (ConversionRoute) non-empty The full new set of routes. The existing routes are replaced. The mode and the |
| limit | string <decimal> The new shared conversion limit expressed in |
| 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 |
Responses
Request samples
- Payload
{- "routes": [
- {
- "source_currency": "ZEC",
- "target_currency": "USDT",
- "percentage": "30"
}
], - "is_active": true
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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": [
- {
- "source_currency": "BTC",
- "target_currency": "BTC",
- "percentage": "25.50"
}
]
}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:
path Parameters
| operator_id required | string <uuid> |
| rule_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}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:
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
- 200
- 400
- 401
- 403
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source_currency": "BTC",
- "target_currency": "BTC",
- "source_amount": "0.015",
- "target_amount": "1435.58",
- "rate": "96682.0",
- "spread_amount": "14.65",
- "status": "pending",
- "effective_date": "2026-07-20",
- "payment_out_id": "b1e083bf-655a-42c9-ab6b-3feb07fb0a93",
- "payment_in_id": "ff4b5657-1b16-4a65-b398-31f796d3be3f",
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}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 bymodified_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:
query Parameters
| email required | string <email> |
| limit | integer [ 1 .. 100 ] Default: 10 |
| offset | integer Default: 0 |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}List Hashrate Transfers created by Miner
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "AwesomeBTCWorker",
- "behavior": "boundary",
- "status": "stable",
- "miner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "donor": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "boost_hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "created_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Boundary Workers status statitstics
Query parameters are decoded strictly: any unknown query parameter is
rejected with a 400 error.
Authorizations:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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:
Request Body schema: application/jsonrequired
| account_name required | string (AccountName) [ 3 .. 32 ] characters ^\w{3,32}$ |
| email required | string <email> |
Responses
Request samples
- Payload
{- "account_name": "Superminer123",
- "email": "user@example.com"
}Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'",
- "status": "active",
- "wallets": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "pool": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "operator": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "owner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "active",
- "contacts": {
- "email": "user@example.com"
}, - "registered_at": "2019-08-24T14:15:22Z"
}
}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:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "15m": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1h": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1d": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}, - "1w": {
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
}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:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2022-09-12",
- "to": "2022-09-13",
- "data": [
- {
- "date": "2022-09-12",
- "from": "2022-09-12T00:00:00Z",
- "to": "2022-09-12T23:59:59Z",
- "workers": [
- {
- "account_name": "Superminer123",
- "worker_name": "BTCMiner69",
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
]
}
]
}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:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 429
- 500
{- "data": [
- {
- "fee": 0.009,
- "valid_from": "2019-08-24",
- "valid_until": "2019-08-24",
- "comment": "New tariff plan"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}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:
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 Hashrate units depend on the mode: |
Request Body schema: application/jsonrequired
required | Array of objects [ 1 .. 100 ] items The schedule of miner commission changes. | ||||||
Array ([ 1 .. 100 ] items)
| |||||||
Responses
Request samples
- Payload
{- "schedule": [
- {
- "valid_from": "2019-01-01",
- "fee": 0.01,
- "comment": "Discount for the New Year"
}, - {
- "valid_from": "2019-02-01",
- "fee": 0.02,
- "comment": "Increased commission in honor of Valentine's Day"
}, - {
- "valid_from": "2019-03-01",
- "fee": 0.015,
- "comment": "Default commission"
}
]
}Response samples
- 400
- 401
- 403
- 404
- 422
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}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:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 429
- 500
{- "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:
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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 429
- 500
{- "current": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}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:
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 Hashrate units depend on the mode: |
Request Body schema: application/jsonrequired
| rate required | string <decimal> (FlatRateValue) Flat fee value, min = 0, max = 1 (0.01 = 1%). |
Responses
Request samples
- Payload
{- "rate": 0.009
}Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 429
- 500
{- "current": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "rate": 0.009,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}Create a new boundary worker
Authorizations:
Request Body schema: application/jsonrequired
| name required | string [ 3 .. 64 ] characters ^[\w\-%$#@!\^&\*\(\)\[\]\{\}\<\>\/\\\'\"~]{3,... Supported characters:
|
| 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
- Payload
{- "name": "MyBoundaryWorker",
- "recipient_miner_id": "c74d946f-9377-4a0f-87cd-24559ff208ec",
- "donor_miner_id": "d743da2c-7751-4b2a-ad71-6e157d053aff",
- "hashrate": "100000000000000"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "AwesomeBTCWorker",
- "behavior": "boundary",
- "status": "stable",
- "miner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "donor": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "boost_hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "created_at": "2019-08-24T14:15:22Z"
}Get the boundary worker
Authorizations:
path Parameters
| worker_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "AwesomeBTCWorker",
- "behavior": "boundary",
- "status": "stable",
- "miner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "donor": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "boost_hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "created_at": "2019-08-24T14:15:22Z"
}Update the boundary worker hashrate
Authorizations:
path Parameters
| worker_id required | string <uuid> |
Request Body schema: application/jsonrequired
| hashrate required | string <decimal> Hashrate in hashes per second. Example: 100000000000000 means 100 TH/s. Must be not less than 4294967296. |
Responses
Request samples
- Payload
{- "hashrate": "100000000000000"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "AwesomeBTCWorker",
- "behavior": "boundary",
- "status": "stable",
- "miner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "donor": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "boost_hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "created_at": "2019-08-24T14:15:22Z"
}Disconnect the boundary worker
Authorizations:
path Parameters
| worker_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Update the boundary worker boost hashrate
Authorizations:
path Parameters
| worker_id required | string <uuid> |
Request Body schema: application/jsonrequired
| hashrate required | string <decimal> Hashrate in hashes per second. Example: 100000000000000 means 100 TH/s. Must be not less than 4294967296. |
Responses
Request samples
- Payload
{- "hashrate": "100000000000000"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "AwesomeBTCWorker",
- "behavior": "boundary",
- "status": "stable",
- "miner": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "donor": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "account_name": "Superminer123",
- "title": "LLC 'Super Miner'"
}, - "hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "boost_hashrate": {
- "current": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}, - "future": {
- "hashrate": 100000000000000,
- "valid_from": "2022-09-12T00:00:00Z",
- "valid_until": "2022-09-12T00:00:00Z"
}
}, - "created_at": "2019-08-24T14:15:22Z"
}Summary chart for all workers for which the miner is a donor
Authorizations:
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.
|
| 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 Hashrate units depend on the mode: |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "from": "2019-08-24T14:15:22Z",
- "to": "2019-08-24T14:15:22Z",
- "interval": "PT1M",
- "data": {
- "points": [
- {
- "timestamp": 1663848000,
- "hashrate": "100000000000000.00",
- "rejectrate": "1048576.00"
}
], - "status": "ok"
}
}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:
path Parameters
| miner_donor_id required | string <uuid> |
Request Body schema: application/jsonrequired
| 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
- Payload
{- "recipient_miner_id": "c74d946f-9377-4a0f-87cd-24559ff208ec",
- "currency": "BTC"
}Response samples
- 201
- 400
- 401
- 403
- 404
- 409
- 429
- 500
{- "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": {
- "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"
}
}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:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "transfers": [
- {
- "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"
}
]
}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:
path Parameters
| miner_donor_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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": {
- "from": "2019-08-24T14:15:22Z",
- "to": "2019-08-24T14:15:22Z",
- "distributed_th": "95.5",
- "boosted_th": "24.5",
- "reserve_charged": "0.00001200",
- "debt_accrued": "0"
}, - "transfers": [
- {
- "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": {
- "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"
}, - "last_slot": {
- "slot_ts": "2019-08-24T14:15:22Z",
- "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05",
- "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c",
- "donor_actual_th": "95.5",
- "distributed_th": "95.5",
- "boosted_th": "24.5",
- "reserve_charged": "0.00001200",
- "debt_accrued": "0",
- "currency": "BTC",
- "status": "ok",
- "processed_at": "2019-08-24T14:15:22Z"
}
}
]
}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:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "transfers": [
- {
- "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"
}
]
}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:
query Parameters
| currency required | string Enum: "BTC" "LTC" "DOGE" "ZEC" |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "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:
Request Body schema: application/jsonrequired
| 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:
|
| 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 |
Responses
Request samples
- Payload
{- "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
- 200
- 400
- 401
- 403
- 429
- 500
{- "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:
query Parameters
| currency | string Enum: "BTC" "LTC" "DOGE" "ZEC" Keeps only the rates of the given currency. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
- 500
{- "rates": [
- {
- "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"
}
]
}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:
Request Body schema: application/jsonrequired
| 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 |
| rate_modified required | string <decimal> The commission fraction of the boosted part. Within |
Responses
Request samples
- Payload
{- "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05",
- "currency": "BTC",
- "rate_actual": "0.01",
- "rate_modified": "0.02"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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:
path Parameters
| transfer_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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": {
- "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"
}
}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:
path Parameters
| transfer_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 409
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}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:
path Parameters
| transfer_id required | string <uuid> |
Request Body schema: application/jsonrequired
| mode required | string Enum: "actual" "modified"
|
| modified_coeff | string <decimal> The guaranteed-minimum multiplier. Required when |
| 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"
|
Responses
Request samples
- Payload
{- "mode": "actual",
- "modified_coeff": "1.2",
- "random_interval_pct": 10,
- "random_interval_mode": "ui"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 429
- 500
{- "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:
path Parameters
| transfer_id required | string <uuid> |
Request Body schema: application/jsonrequired
| 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 | string Enum: "ui" "actual"
|
Responses
Request samples
- Payload
{- "modified_coeff": "1.2",
- "random_interval_pct": 10,
- "random_interval_mode": "ui"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "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:
path Parameters
| transfer_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 409
- 429
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}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:
path Parameters
| transfer_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 429
- 500
{- "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:
path Parameters
| transfer_id required | string <uuid> |
query Parameters
| limit | integer [ 1 .. 100 ] Default: 10 |
| offset | integer Default: 0 |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "versions": [
- {
- "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"
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}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:
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
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "slots": [
- {
- "slot_ts": "2019-08-24T14:15:22Z",
- "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05",
- "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c",
- "donor_actual_th": "95.5",
- "distributed_th": "95.5",
- "boosted_th": "24.5",
- "reserve_charged": "0.00001200",
- "debt_accrued": "0",
- "currency": "BTC",
- "status": "ok",
- "processed_at": "2019-08-24T14:15:22Z"
}
]
}🧪 Anonymous Pool stats
This method is unstable and could be a subject of change in the future.
Authorizations:
Responses
Response samples
- 200
- 400
- 429
- 500
{- "hashrate": "100000000000000.00",
- "miners": 3000,
- "fee": "0.009",
- "minpay": "0.0001"
}List miner's watcher links
Authorizations:
path Parameters
| miner_id required | string <uuid> |
query Parameters
| limit | integer [ 1 .. 100 ] Default: 10 |
| offset | integer Default: 0 |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "data": [
- {
- "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
- "token": "hfwl_0123456789abcdef000000000000000000000000000000000000000000000000",
- "title": "Watcher for LLC 'Super Miner'",
- "created_at": "2019-08-24T14:15:22Z",
- "extra_permissions": [
- "accountant"
]
}
], - "pagination": {
- "limit": 10,
- "offset": 10,
- "total_count": 300
}
}Create miner's watcher link
Authorizations:
path Parameters
| miner_id required | string <uuid> |
Request Body schema: aplication/jsonrequired
| extra_permissions | Array of strings Items Value: "accountant" |
| title | string [ 1 .. 300 ] characters If empty, will be generated automatically. |
Responses
Request samples
- Payload
{- "extra_permissions": [
- "accountant"
], - "title": "My new awesome watcher link"
}Response samples
- 200
- 400
- 401
- 403
- 500
{- "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
- "token": "hfwl_0123456789abcdef000000000000000000000000000000000000000000000000",
- "title": "Watcher for LLC 'Super Miner'",
- "created_at": "2019-08-24T14:15:22Z",
- "extra_permissions": [
- "accountant"
]
}Delete miner's watcher link
Authorizations:
path Parameters
| miner_id required | string <uuid> |
| watcher_id required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 500
{- "error": {
- "code": "invalid_input",
- "message": "json: cannot unmarshal number into struct field account_name of type string"
}
}Get permissions by watcher token
Authorizations:
path Parameters
| watcher_token required | string Example: hfwl_0123456789abcdef000000000000000000000000000000000000000000000000 |
Responses
Response samples
- 200
- 404
- 429
- 500
{- "permissions": [
- {
- "id": "432c99a8-a9c3-45d6-9963-08783e81630f",
- "type": "miner",
- "account_name": "Superminer123",
- "access": [
- "section_payments_read"
]
}
]
}Miner donor account balance
Retrieves the balance of the account used for virtual hashrate compensations associated with the miner donor.
Authorizations:
path Parameters
| account_id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 403
- 429
- 500
{- "currency": "BTC",
- "amount": "0.00068716"
}