The Cisco Meraki Dashboard API is a modern, RESTful API using HTTPS for transport and JSON for object serialization.

Detailed online documentation that is automatically kept up-to-date can be found by logging into Dashboard and going to Help > API docs, or it can be viewed via our Postman Collection.

Enabling the Dashboard API

1. Begin by logging into Meraki Dashboard (dashboard.meraki.com) and navigating to Organization > Settings

2. Locate the section titled Dashboard API access and select Enable Access, then Save your changes

3. After enabling the API, choose your username at the top-right of the Meraki Dashboard and select my profile

4. Locate the section titled “Dashboard API access” and select Generate new API key

 Note: The API key is associated with a Dashboard administrator account. You can generate, revoke, and regenerate your API key on your profile.

Keep your API key safe as it provides authentication to all of your organizations with the API enabled. If your API key is shared, you can regenerate your API key at any time. This will revoke the existing API key.

 Copy and store your API key in a safe place. Dashboard does not store API keys in plaintext for security reasons, so this is the only time you will be able to record it. If you lose or forget your API key, you will have to revoke it and generate a new one.

What can Dashboard API be used for?

The dashboard API can be used for many purposes. It’s meant to be an open-ended tool. Here are some examples of use cases:

  • Add new organizations, admins, networks, devices, VLANs, and more
  • Configure 1800 networks in 9 minutes with just a few API calls
  • Automatically on-board and off-board new employees’ teleworker setup
  • Build your own dashboard for store managers, field techs, or unique use cases

Requirements

Every request must specify an API key via a request header

The API key must be specified in the URL. The API will return 404 (rather than a 403) in response to a request with a missing or incorrect API key in order to prevent leaking the existence of resources to unauthorized users.

X-Cisco-Meraki-API-Key: <secret key>

The API version must be specified in the URL:
https://api.meraki.com/api/v0/<resource>

Once an API version is released, we will make only backwards-compatible changes to it. Backwards-compatible changes include:

  • Adding new API resources
  • Adding new optional request parameters to existing API methods

  • Adding new properties to existing API responses

  • Changing the order of properties in existing API responses

Identifiers in the API are opaque strings. A <network_id>, for example, might be the string “126043”, whereas an <order_id> might contain characters, such as “4S1234567”. Client applications must not try to parse them as numbers. Even identifiers that look like numbers might be too long to encode without loss of precision in Javascript, where the only numeric type is IEEE 754 floating point.

Verbs in the API follow the usual REST conventions: GET returns the value of a resource or a list of resources, depending on whether an identifier is specified. For example, a GET of /v0/organizations returns a list of organizations, whereas a GET of /v0/organizations/<org_id> returns a particular organization. POST adds a new resource, as in a POST to /v0/organizations/<org_id>/admins, or performs some other non-idempotent change. PUT updates a resource. PUTs are idempotent; they update a resource, creating it first if it does not already exist. A PUT should specify all the fields of a resource; the API will revert omitted fields to their default value. DELETE removes a resource. Call volume is limited to 5 calls per second (per organization).

Status and error codes

Responses from the API generally use standard HTTP status codes. Some examples:

  • 400: Bad Request- You did something wrong, e.g. a malformed request or missing parameter.
  • 403: Forbidden- You don’t have permission to do that.
  • 404: Not found- No such URL, or you don’t have access to the API or organization at all.

If the response code is not specific enough to determine the cause of the issue, error messages will be included in the response in JSON format, for example:

{
    "errors": [
       "VLANs are not enabled for this network"
    ]
}

API Docs

The API endpoints are extensively documented in the Postman collection as well as within the Meraki Dashboard.

Postman

Postman is a graphical tool for interacting with REST APIs. Quickly interact with each of the endpoints and export the code into your application.

Meraki Dashboard

The official docs are located within the Meraki Dashboard Help menu.