Skip to main content
These notes supplement the migration guide. Check the fields and filters your integration actually uses.

Legacy filter behavior

v1 converts offline to stale and ignores deprecated health values. The mixed filter offline,error,low_hashrate,overheated,overpower,stale therefore only applies a stale filter. Use status.in = ["stale"] to preserve that result. A query for all abnormal miners requires separately defined anomaly filters. The legacy GET miner endpoint ignored its search parameter. Converting it into an active filter can change results. If searching was intended, confirm the target field and matching behavior. v2 field search uses substring matching. Exact MAC matching requires reading every candidate page and comparing complete MAC addresses case-insensitively. Legacy SN search can also match serial numbers in hashboards and PSUs; searching only serial_number is not equivalent in every case. SearchMiners has no server-side agent_id or unstable filter. Check the data source and implementation needed for these uses.

Summary and detail fields

ListMiners and SearchMiners do not return every field in the old full object. GetMiner also does not directly replace errors, hashboards, pools, psus, hashrate_24h, reboot_count, or low_uptime_reboot_count. Check the detail contract for network, firmware_version, last_check_succeed, unstable_reason, inlet and outlet temperatures, and chip counts. Confirm GetMiner’s documentation availability in the current Reference. Per-miner detail requests are not a default replacement for large list queries. Join nested farm information from Agent responses using farm_id. GetAgent exposes only hostname, platform, os, and ip within host information; it does not replace arbitrary fields in the old host object. Consider the request volume before adding detail calls to fill missing fields. If a missing field affects a feature, record the old field, its purpose, and the affected page or job, then confirm a supported solution with the Nonce team. A migration is incomplete until it preserves the required behavior.

Authorization and resource scope

ListWorkspaces returns effective access relations and permissions, not the full /me/grants record. Cross-workspace API key access depends on a valid grant and its farm scope. OAuth access depends on user membership, role, and farm scope. Use the target workspace and farm in v2 resource paths. A legacy /granted/ path does not imply broader v2 permissions. Handle failed authentication, insufficient permissions, and inaccessible resources separately from empty data.

Task results and historical metrics

Read task result, error, log_download_url, and log_file_size according to the new contract. Batch unsuccessful_count includes failures, timeouts, and cancellations; the detail field failed_count counts execution failures only. Historical queries return a complete grid in ascending order. The latest N time buckets and the latest N records with data require different selection logic. Preserve null values, hashrate in H/s, energy in kWh, and amounts in USD or BTC as specified by each field. Check which metrics are available at the granularity your integration uses. Historical queries use from_time and to_time. Miner search still uses last_updated_at.gt/lt; these are separate request types, so do not rename them globally.