A Node-RED node for interacting with the Cisco Meraki Dashboard API v1.
This node provides access to 933 API endpoints covering the full Meraki Dashboard API v1.70.0, including devices, networks, organizations, appliances, switches, wireless, cameras, sensors, and more. All endpoints utilize OpenAPI Specification version 3, pulled directly from Meraki's spec3.json file from GitHub.
msg propertiesCopy the 'node-red-contrib-meraki-dashboard-api-v1' folder to your Node-Red modules directory.
Default location:
C:\Users\username\.node-red\node_modules\node-red-contrib-meraki-dashboard-api-v1
Then restart Node-RED.
https://api.meraki.com/api/v1 (default)X-Cisco-Meraki-API-KeySee the Meraki API documentation for more details.
| Property | Type | Description |
|---|---|---|
msg.payload |
object | For POST/PUT methods, the request body as a JSON object |
msg.service |
object | Optional. Override API host and/or key: { host: "https://...", apiKey: "..." } |
msg.operationId |
string | Optional. Dynamically select which API method to call |
msg.<paramName> |
string | Any parameter can be passed as a message property (e.g., msg.serial, msg.networkId) |
| Property | Type | Description |
|---|---|---|
msg.payload |
object | The API response body |
msg.statusCode |
number | HTTP status code |
msg.headers |
object | Response headers |
msg.responseUrl |
string | Final URL after redirects |
[
{
"id": "example1",
"type": "inject",
"name": "Get Org Devices",
"props": [
{ "p": "organizationId", "v": "YOUR_ORG_ID", "vt": "str" }
],
"wires": [["meraki1"]]
},
{
"id": "meraki1",
"type": "meraki-dashboard-api-v1",
"name": "getOrganizationDevices",
"method": "getOrganizationDevices",
"wires": [["debug1"]]
},
{
"id": "debug1",
"type": "debug",
"name": "Output"
}
]This node uses a data-driven architecture. All API endpoints are defined in endpoints.json and the code is fully generic. No per-endpoint logic exists in the source files.
To update to the latest Meraki API version:
cd node_modules/node-red-contrib-meraki-dashboard-api-v1
node update_from_openapi.js
node build.jsThis downloads the latest Meraki OpenAPI spec from GitHub, regenerates endpoints.json, and rebuilds node.html. Restart Node-RED to pick up the changes.
| File | Purpose |
|---|---|
endpoints.json |
All API endpoint definitions (operationId, method, path, params, tags, summary) |
lib.js |
Generic API client with a single callEndpoint() method |
node.js |
Node-RED node logic — generic parameter resolution and API invocation |
node.html |
Node-RED editor UI — dynamically generated from endpoint data |
node.html.template |
Template for node.html with placeholder for endpoint data |
build.js |
Build script that injects endpoints.json into the HTML template |
update_from_openapi.js |
Downloads the latest Meraki OpenAPI spec and regenerates endpoints.json |
If you need to add an endpoint manually (e.g., a beta or private API), add an entry to endpoints.json:
{
"operationId": "getMyCustomEndpoint",
"method": "GET",
"path": "/organizations/{organizationId}/custom/endpoint",
"params": [
{ "name": "organizationId", "in": "path", "type": "string", "required": true },
{ "name": "perPage", "in": "query", "type": "string", "required": false }
],
"tags": ["organizations", "custom"],
"summary": "Description of what this endpoint does"
}Then run node build.js and restart Node-RED.
This project is licensed under the Apache License 2.0.
See the LICENSE file for details.
Originally created by Cory Guynn.
Updated and maintained by Austin Kutzer.
The Meraki Dashboard API is developed and maintained by Cisco Meraki. This node is a community project and is not officially supported by Cisco.
Owner
Contributors
Categories
ToolsNetworkingCollaborationProducts
MerakiLicense
Code Exchange Community
Get help, share code, and collaborate with other developers in the Code Exchange community.View Community