Luxor PlatformAPI DocumentationCommanderReporting

Get miners

Returns a paginated list of miners with optional filtering by site, agent, status, model, and firmware. For nested AND/OR logic across a larger field set, pass the filter query parameter as URL-encoded JSON; when supplied, it supersedes the flat filter params.

GET
/v2/commander/miners

Authorization

LuxorAPIKey
authorization<token>

Use your API key here.

In: header

Query Parameters

site_id?string
Formatuuid
agent_id?string
Formatuuid
hashing_status?string

Value in

  • "hashing"
  • "idle"
  • "offline"
  • "N/A"
healthy_status?string

Value in

  • "healthy"
  • "failing"
  • "N/A"
model?string
firmware?string

Value in

  • "LuxOS"
  • "Bitmain"
  • "MicroBT"
  • "Avalon"
  • "Bitdeer"
  • "FluxOS"
  • "MaraFW"
filter?

URL-encoded JSON advanced filter, shape { combinator: 'AND'|'OR', groups: [{ combinator, conditions: [{ field, operator, value }] }] }. Filterable fields: site_id, miner_id, agent_id, ip_address, mac_address, firmware, model, os_version, client_id, hashing_status, healthy_status, pool_status, atm_enabled, autotuner_enabled, error_code, hashrate_5s, hashrate_5m, hashrate_30m, nameplate_hashrate, nominal_hashrate, hashrate_uptime, adj_hashrate_uptime, max_temperature, avg_chip_health, max_fan_rpm, power_consumption, active_hashboards, pool_username, pool_workername, atm_min_profile, atm_max_profile, last_seen_at, luxos_support, location_ids, position_row, position_column. Operators must suit the field: ordering only on numeric fields; the LIKE family (contains, not_contains) only on text and uuid fields; date fields take eq or ne only; and a field with a fixed set of values takes eq, ne, in_array, not_in_array or in_comma_separated_list. A malformed uuid, IP address, IP range or date is rejected rather than silently matching nothing. apply_to_all: true targets every miner and makes the tree advisory.

sort_by?string

Value in

  • "hashrate"
  • "max_temperature"
  • "power"
  • "model"
  • "firmware"
  • "ip_address"
  • "last_seen_at"
sort_order?string
Default"asc"

Value in

  • "asc"
  • "desc"
page_number?integer
Range1 <= value
Default1
page_size?integer
Range1 <= value <= 5000
Default25

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v2/commander/miners"
{  "miners": [    {      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",      "ip_address": "10.0.1.42",      "mac_address": "AA:BB:CC:DD:EE:FF",      "model": "S19 Pro",      "firmware": {        "name": "LuxOS",        "version": "2024.12.1"      },      "hashing_status": "hashing",      "healthy_status": "healthy",      "site_id": "b0a5fad8-1234-5678-9abc-def012345678",      "agent_id": "056a4f62-1234-5678-9abc-def012345678",      "hashrate": "110000000000000",      "power": 3250,      "max_temperature": 65,      "fan_speed": [        4200,        4180,        4180,        4100      ],      "pool": {        "url": "stratum+tcp://pool.example.com:3333",        "username": "lux_phx_0",        "worker": "myworker.001"      },      "last_seen_at": "2026-02-20T12:00:00Z",      "url": "/v2/commander/miners/a1b2c3d4-e5f6-7890-abcd-ef1234567890"    }  ],  "pagination": {    "page_number": 1,    "page_size": 1,    "item_count": 0,    "previous_page_url": null,    "next_page_url": null  }}
{  "statusCode": 400,  "code": "FST_ERR_VALIDATION",  "error": "Bad Request",  "message": "body/end_date Required"}
{  "statusCode": 403,  "code": "7",  "error": "Forbidden",  "message": "[permission_denied] site_id does not belong to this workspace"}