The registered poller fleet plus the per-pool summary.
const url = 'https://example.com/api/v1/pollers';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/pollers \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Every known poller (live ∪ durable inventory) and the per-pool summary
The GET /api/v1/pollers body: the fleet of pollers + the per-pool summary.
object
One poller in the GET /api/v1/pollers response — a merge of the live registry (current
status/telemetry) and the durable inventory (so an offline poller still lists). No secrets.
object
The node this poller attaches to, naming where it sits in the derived dependency graph.
null ⇒ core places it from mgmt_addrs instead.
Current host CPU utilization % (0–100) from its latest heartbeat; null when the poller is
offline or on an N-1 build without host telemetry.
Highest watched-filesystem used % (0–100); null when unavailable.
First durably-recorded contact (RFC 3339); null if not yet persisted.
Sanitized poller id (stable across restarts).
Last durably-recorded contact (RFC 3339); null for a live poller not yet persisted (it
registers within the 60s inventory-upsert throttle window).
Current host memory-used % (0–100); null when unavailable.
Interface addresses the poller reported for itself. Empty for an older poller build, and empty for a containerized poller whose only address is a container-network one.
Pool it serves (live view wins; else the durable row).
Poll results core has consumed from it since core started.
"online" when it is beating within the offline window, else "offline".
Build version from its latest heartbeat (or the durable row when it is offline).
Working-set node count it last reported (0 when offline / never reported).
Working-set spec count it last reported.
One pool in the GET /api/v1/pollers response — node count vs. live pollers, its dispatch mode,
and a warning when it has nodes but no live poller (they would go unmonitored).
object
Live (online) pollers serving this pool.
"working_set" when a live poller serves it, else "legacy" (per-job fallback).
Non-Meraki nodes assigned to this pool.
Pool name (default for unassigned nodes).
"nodes_without_live_poller" when the pool has nodes but no live poller, else null.
Examplegenerated
{ "pollers": [ { "anchor_node_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "cpu_pct": 1, "disk_used_pct": 1, "first_seen": "example", "id": "example", "last_seen": "example", "mem_used_pct": 1, "mgmt_addrs": [ "example" ], "pool": "example", "results_total": 1, "status": "example", "version": "example", "working_set_nodes": 1, "working_set_specs": 1 } ], "pools": [ { "live_pollers": 1, "mode": "example", "nodes": 1, "pool": "example", "warning": "example" } ]}No valid bearer token
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Role lacks the View permission
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Skeleton mode: no poller inventory
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}