list_meraki_orgs
const url = 'https://example.com/api/v1/meraki/orgs';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/meraki/orgs \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Every onboarded organization, each with the id of the credential holding its key — never the key
object
The collect tiers the Dashboard API is not answering right now, each with why and since when. Empty when none is known to be failing.
Distinct from last_sync_error, which is the inventory sync — this server asking what the
organization holds. A collect is a poller asking how the devices are, and it is what a
device’s state depends on: while availability is listed here the organization’s nodes keep
the last state they had, and after three failures in a row one alert is raised about the
organization (subject_kind: meraki_org) — never one per device. uplink, wireless,
switch_ports or traffic listed alone raises nothing: readings are missing, liveness is not.
One collect tier the Dashboard API is not answering (see MerakiOrgView.collect_failures).
object
How many collects in a row have failed.
Which of the tier’s reads failed, when one did while the others answered (ADR-164 decision 25):
uplinks_loss_and_latency, appliance_uplink_statuses, appliance_vpn_statuses, … — the
uplink tier reads three, the switch-port tier up to four (switch_port_statuses,
switch_port_usage, switch_port_topology, switch_port_config), the wireless tier up to three
(wireless_clients, wireless_channel_utilization, wireless_ssid_statuses). Absent when
the whole collect failed, or a poller from before this reported it.
Why the most recent collect of this tier failed. The vocabulary of last_sync_error, plus
no_answer: the collect was sent and nothing came back.
When this run of failures began.
availability, uplink, wireless, switch_ports or traffic.
Which stored credential holds this organization’s API key. An id, not a secret — the key
stays sealed in credentials, and this type has no field that could carry it. Its name is
GET /credentials’s to give, to a caller holding ManageCredentials.
What the last successful sync found, read against which devices are nodes here.
object
Nodes whose device Meraki no longer lists.
Of those, the ones that are nodes.
Of monitored, the ones in a network this organization does not watch (decision 15). Collection
asks the Dashboard about watched networks only, so nothing is collected for these: the
node keeps the last state it was seen in and raises nothing. It happens when a device is
moved into an unwatched network, and when a network holding nodes is un-watched. An
organization that watches no network at all is sent no collect, so there it is every
monitored device (decision 16).
Listed, online at least once, never a node here.
Devices Meraki currently lists, whatever their state here.
How many devices that cap left out on the last sync; zero while automatic import is off.
Whether an imported device is filed by its address into the folder whose IP range holds it.
A whole-organization read asked for or running (ADR-164 decision 30–32); null when there is
none. “Sync now” asks for one; an organization’s first sync is one nobody asked for.
object
How many networks’ LAN sides it reads; null until it has begun.
How many of those it has asked so far — a network whose read failed counts; null until
it has begun.
When “Sync now” asked for it; null for a read nobody asked for — an organization’s first,
or the one a sync makes when it finds networks it has never read.
When it began; null while it waits for the organization’s slow collect lane.
Whether the sync turns newly listed devices into nodes, and watches newly found networks.
When the last successful inventory sync ran. A failed sync does not move it.
null until a sync has run — “has not synced yet” is not “failed”.
The most nodes automatic import lets this organization hold. A new organization starts at 10,000; one added by an earlier version keeps the 1,000 it started with.
The switch-port tier’s interval (seconds) — every switch port’s status, speed and traffic.
Requests per second this organization may be sent, in total (ADR-169). Its collects run in two lanes that can be asking at once — a fast one for availability, uplink, traffic and a wireless round, a slow one for the switch ports, the SSID read and the inventory sync (periodic, or asked for by “Sync now”) — and each paces at half of this. The one exception is the LAN reads of an organization with no node yet, which take all of it: nothing is collected for it, so the fast lane is idle. Below 0.2 each lane stops at 0.1, the slowest a session paces, so the two together can then send up to 0.2 whatever this says.
The wireless tier’s interval (seconds) — every access point’s clients and each radio’s channel utilization (ADR-168). The SSIDs and radio settings are read every twenty minutes whatever this says.
Example
[ { "collect_failures": [ { "reason": "credential" } ], "last_sync_error": "credential" }]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 View
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" }}Inventory storage is unavailable (skeleton mode)
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" }}