An organization's devices as the last successful sync recorded them — monitored or not — with each one's state. Served from PostgreSQL: it never calls the Dashboard API.
const url = 'https://example.com/api/v1/meraki/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/devices';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/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/devices \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Organization row id
Responses
Section titled “Responses”The organization’s devices; empty until its first sync
One device of an organization, as the last successful sync recorded it.
object
Where an import would file the device, and why. null for a device that is already a
node: it is where it is, and no import moves it.
object
How many folders claim the address equally; only with ambiguous.
The IP range that claimed the address; only with matched.
Why a device would be filed where it would be. Serialized as the snake_case token; never stored.
The folder the device is filed in, when it is a node — or the folder an import would file
it in, when filing.reason is matched. null for a node at the top of the tree, and for
a device an import would put under the organization’s own folder, in one named after its
network (that folder is created by the import that first needs it).
The device’s LAN address, when a usable one is known: the lanIp Meraki reports. An MX
(appliance) reports none, so its address is one of its own VLAN IPs — never its WAN
address. An IP another network of the organization also uses is skipped; of the rest, the
lowest-numbered VLAN inside a folder’s IP range, else the lowest-numbered — and when every IP
is shared, the lowest-numbered of them all. null for an MX until its network’s VLANs have
been read (such an MX is not imported automatically until then), and for good for an MX whose
network has no LAN side at all.
When a complete listing first failed to contain the device; null while Meraki lists it.
Whether the device’s network is one this organization watches.
The network’s name; null for a network the sync has not recorded.
The node this device is monitored as; null unless state is monitored or missing.
What a device’s row is shown as: read from the facts the inventory keeps about it (ADR-164 decision 3), never stored. Serialized as the snake_case token.
Example
[ { "filing": { "reason": "matched" }, "ha_role": "primary", "state": "monitored" }]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, or the account is restricted to folders (scope_unsupported)
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" }}No such organization
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" }}