Cisco ACI and Meraki APIs. They are the key to automating networks instead of configuring every device by hand. For the 200-901 exam, you need to understand how these APIs work so you can write code that tells the network what to do, which is the whole point of becoming a DevNet professional.
Jump to a section
A simple way to picture Cisco ACI and Meraki APIs
A hotel manager runs a large, busy hotel with hundreds of rooms, multiple floors, a restaurant, a gym, and a conference centre. Every morning, they walk the entire hotel to check if lights are working, if the gym is clean, and if conference rooms are set up correctly. If a guest complains about a broken air conditioner on the fifth floor, the manager walks up, inspects the unit, calls a technician, and waits for the repair. This is slow, tiring, and only works for a small hotel.
Now imagine the hotel uses a smart building system. The manager sits at a single dashboard on a tablet. A sensor reports the broken AC instantly. The manager taps a button that sends a work order to the technician. Meanwhile, the system automatically dims the lights in unoccupied rooms to save energy and adjusts the temperature in the ballroom for tonight's wedding. The manager doesn't need to walk anywhere. The entire hotel is controlled through one central software platform that can talk to every device and follow pre-set rules.
Cisco ACI is like that smart building system for a data centre's network — a way to control hundreds of switches and firewalls from a single dashboard using software instead of walking from room to room. Meraki is like the same concept but for smaller offices or schools, controlled through a cloud website rather than a local dashboard. Both expose Application Programming Interfaces (APIs), which are like the tablet's buttons — standard, programmable commands that let other software tell the network what to do automatically, without a human having to tap each button manually.
Let's start with the big picture. A network is a collection of connected devices like switches, routers, and firewalls. Traditionally, to change anything on the network, a human engineer would log into each device individually and type commands. This is slow, error-prone, and doesn't scale well.
Cisco ACI (Application Centric Infrastructure) is a solution to this problem for large data centres. Instead of managing each switch separately, ACI treats the whole data centre fabric as one giant, programmable switch. The key component is the APIC (Application Policy Infrastructure Controller). The APIC is the central brain. It holds the entire network policy — rules about which applications can talk to each other, security settings, and quality of service. When you tell the APIC a new rule, it automatically pushes that rule to every relevant switch in the fabric. You never touch a switch directly.
How do you talk to the APIC? Through an API (Application Programming Interface). Specifically, ACI exposes a REST API. REST (Representational State Transfer) is a standard way for software to talk to software over HTTP, the same protocol your web browser uses. When you send a REST API request, you use HTTP methods like GET (read data), POST (create), PUT (update), or DELETE (remove). For ACI, you send these requests to the APIC's IP address. The APIC understands JSON (JavaScript Object Notation), a lightweight text format for structuring data, like a very organised shopping list.
An example: say you want to create a new network segment for a web server. You write a Python script that sends a POST request to the APIC with a JSON body describing the segment. The APIC receives it, applies the configuration to all relevant switches, and sends back a success message. This whole process takes under a second. Doing it manually could take 30 minutes.
Now, what about Cisco Meraki? Meraki is a different product line aimed at smaller organisations, like branch offices, schools, or retail stores. Meraki devices (switches, wireless access points, firewalls) are managed through a cloud-based dashboard. You log into a website to see and change settings. But Meraki also offers a REST API. The key difference is that the Meraki API is hosted in the cloud, not on a local controller. You send your API requests to a special Meraki cloud URL (api.meraki.com), and the cloud then pushes changes to your remote devices.
Both ACI and Meraki APIs use authentication. Before you can do anything, you must prove who you are. For ACI, you typically use a username and password, or an API token generated in the APIC. For Meraki, you use an API key, a unique string of letters and numbers that you create in the Meraki dashboard. This key is sent as a header in every request, like a digital ID badge.
The crucial concept for the exam is that these APIs allow for automation. Instead of a human clicking buttons in a dashboard, a script can react to events. For example, if a new server is automatically deployed in your data centre, a script can automatically call the ACI API to open the required firewall rules. This is the heart of DevOps — using code to manage infrastructure (often called Infrastructure as Code or IaC).
ACI focuses on the "fabric" — a group of switches that act as one. Meraki focuses on "cloud-managed" — devices that phone home to the cloud. Both provide programmable control, but their architecture differs. ACI is on-premises, low latency, and very powerful. Meraki is cloud-based, simpler, and better for distributed locations. The 200-901 exam expects you to know these fundamental differences and how to interact with both APIs using HTTP and JSON.
Identify the Target Platform
Determine whether you are automating a data centre (use Cisco ACI) or a branch/cloud-managed network (use Cisco Meraki). This choice affects the base URL, authentication method, and object model.
Acquire Authentication Credentials
For ACI, log into the APIC and generate an API token, or use a username/password in a POST request to get a session token. For Meraki, generate a static API key from the Meraki dashboard under 'API access'.
Construct the REST API Request
Use the appropriate HTTP method (GET, POST, PUT, DELETE) and the correct URL. For ACI, use https://apic-ip/api/mo/... . For Meraki, use https://api.meraki.com/api/v1/... . Include the JSON body for POST/PUT requests.
Send the Request and Handle the Response
Use a tool like Python's requests library or Postman to send the request. The API will return a JSON response. Check the HTTP status code (200 for success, 4xx for client errors) and parse the JSON to extract the data.
Parse and Act on the Response
Read the JSON response to confirm the action succeeded or to retrieve data (e.g., a list of devices). Your script can then take further actions, such as sending alerts or storing the data in a database.
Handle Errors and Retry
If the API returns an error (e.g., 400 Bad Request or 401 Unauthorized), log the error, check the credentials, and adjust the request. Implement retry logic with exponential backoff for transient failures.
An IT professional at a mid-sized company called "GreenLeaf Inc." is responsible for their network. GreenLeaf has one main data centre with 50 servers and 10 branch offices around the country, each with a small Meraki switch and a wireless access point.
In the data centre, the engineer uses Cisco ACI. Every morning, they run a script that checks the health of the network. The script calls the ACI REST API with a GET request to fetch all active faults. The API returns a JSON list. If a fault is critical, the script automatically opens a ticket in the company's helpdesk system using another API. This is a classic example of IT automation — using APIs to connect different systems so they work together without manual intervention.
One day, a new application team needs a new network segment for a customer-facing web app. Instead of opening a ticket and waiting for the network team, the engineer has built a self-service portal. The developer fills out a web form. That form triggers a script that sends a POST request to the ACI API, creating:
- A new bridge domain (a logical network segment) - A contract (a set of firewall rules allowing web traffic) - An endpoint group (EPG, a group of servers bound by a policy) The whole process takes 10 seconds. Without the API, it would take hours of manual configuration across multiple switches.
Meanwhile, a branch office in Manchester reports that its Wi-Fi is slow. The engineer logs into the Meraki cloud dashboard, but they don't click around. Instead, they run a Python script that uses the Meraki REST API to fetch the signal-to-noise ratio for every access point in that office. The script finds one AP with a poor channel. The engineer then sends a PUT request to the Meraki API to change the radio channel on that AP. The change takes effect in seconds.
The engineer also uses the Meraki API to automate onboarding of new branch offices. When a new office opens, they plug in the Meraki switch and AP. The devices automatically connect to the Meraki cloud and appear in the dashboard. The engineer's script detects the new devices via the API and automatically applies a standard configuration template. This is called zero-touch provisioning (ZTP). Without the API, the engineer would have to configure each device manually over a command-line interface (CLI).
In summary, the IT professional uses both ACI and Meraki APIs to:
- Automate repetitive tasks (health checks, configuration changes) - Enable self-service for other teams (developers creating network segments) - Perform remote troubleshooting without logging into a GUI - Standardise deployments across many locations - Integrate network management with other IT systems (ticketing, monitoring) The skill tested in 200-901 is knowing how to structure these API calls, what authentication to use, and how to interpret the JSON responses.
The 200-901 exam focuses specifically on the differences and similarities between the ACI and Meraki REST APIs, and how to use them for automation. Here is what you need to know.
First, you will be tested on authentication. For ACI, the most common method is using a username and password to get an authentication token (a session cookie or token). You send a POST request to the APIC's login API endpoint with JSON containing the username and password. The response contains a token that you must include in subsequent requests. For Meraki, you use a static API key that you put in the header (X-Cisco-Meraki-API-Key). The exam loves to ask which method applies to which.
Second, the base URL. ACI API calls are made to the APIC's IP address or hostname, usually on port 443 (HTTPS). For example, https://apic-ip/api/mo/... . Meraki API calls are made to https://api.meraki.com/api/v1/... . The exam may present a request and ask if it is valid for ACI or Meraki based on the URL.
Third, the use of HTTP methods. They test that you know GET retrieves data, POST creates new objects, PUT updates existing objects, and DELETE deletes. For example, to update an existing Meraki network's name, you would use a PUT request, not a POST. This is a common trap — people think you always use POST to make changes, but HTTP restricts POST to creation only.
Fourth, the exam tests object modelling. In ACI, the key concept is the Managed Object (MO). Everything in ACI is an MO — a physical switch, a policy, a fault. The API lets you create, read, update, or delete these MOs. In Meraki, the equivalent is resources (networks, devices, SSIDs). The exam might ask you to identify the correct URL path to get a list of Meraki networks.
Traps to watch for:
- Mixing up authentication: ACI uses sessions/tokens, Meraki uses static keys. Do not assume they are the same. - Forgetting that ACI returns XML or JSON, but modern use is mostly JSON. The exam often assumes JSON. - Thinking you can manage individual Meraki devices directly via their IP address. You cannot — all Meraki management goes through the cloud API. - Confusing ACI's APIC with Meraki's cloud dashboard. APIC is on-premises, Meraki is cloud-hosted. - Assuming all API responses are plain text. They are structured JSON, and you need to parse them. Key definitions to memorise:
- API Key: A unique identifier used to authenticate a request (used in Meraki). - Token: A temporary credential obtained after login, used in subsequent requests (used in ACI). - REST: An architectural style using HTTP methods for CRUD operations. - JSON: A data format using key-value pairs. - EPG (Endpoint Group): A logical grouping of servers in ACI with common policies. - Contract: A set of rules in ACI defining allowed traffic between EPGs. - APIC: The controller for ACI. - Dashboard: The web GUI for Meraki, also exposed via API. Finally, the exam may present a code snippet in Python using the requests library and ask what it does. Recognise the URL pattern and authentication header to identify whether it targets ACI or Meraki. If you see headers with 'X-Cisco-Meraki-API-Key', it is Meraki. If you see a login step followed by using a cookie, it is ACI.
Cisco ACI uses a local controller called the APIC, while Cisco Meraki uses a cloud-based dashboard, but both expose REST APIs for automation.
ACI authentication requires a username/password login to obtain a session token, whereas Meraki uses a static API key included in the request header.
Both APIs use the same HTTP methods: GET to read, POST to create, PUT to update, and DELETE to remove resources.
All data exchanged with ACI and Meraki APIs is structured in JSON format, which must be parsed by the client code.
Meraki devices cannot be managed directly via API; all management goes through the cloud API endpoint at api.meraki.com.
ACI's core objects are called Managed Objects (MOs), and you interact with them via a hierarchical URL path under /api/mo/.
These come up on the exam all the time. Here's how to tell them apart.
ACI API
Targets the on-premises APIC controller
Uses session-based authentication (token from login)
URL starts with APIC IP address or hostname
Meraki API
Targets the cloud endpoint api.meraki.com
Uses a static API key in request headers
URL always starts with https://api.meraki.com/api/v1/
ACI Managed Object (MO)
Hierarchical object under /api/mo/
Example: 'uni/tn-tenant/ap-app/epg-web'
Represents a physical or logical entity in the fabric
Meraki Resource
Flat resource under /api/v1/
Example: '/networks/networkId/devices'
Represents a cloud-managed device or configuration
ACI Deployment Scenario
Large data centres with many switches
Low-latency, on-site control
Requires dedicated APIC hardware or virtual machine
Meraki Deployment Scenario
Distributed branch offices with few devices
Cloud-managed, accessible anywhere
No local controller; all devices phone home to cloud
Mistake
You must use the same authentication method for both ACI and Meraki APIs.
Correct
ACI uses a session token obtained by logging in with a username and password, while Meraki uses a static API key that never expires.
Newcomers assume all Cisco products work the same way, but ACI is on-premises and uses session-based security, while Meraki is cloud-based and uses key-based security.
Mistake
The Meraki API can be used to configure individual devices directly if you know their IP address.
Correct
All Meraki devices are managed exclusively through the cloud API at api.meraki.com. You cannot send API requests directly to a Meraki switch or access point.
People familiar with traditional networking assume you can SSH into devices, but Meraki's whole model is cloud-controlled, with no direct management IP.
Mistake
ACI and Meraki APIs both use the same API base URL.
Correct
ACI APIs target the APIC's IP address or hostname (e.g., https://apic-ip/api/), while Meraki targets https://api.meraki.com/api/v1/.
Beginners mix up the two products since both are from Cisco, but one is on-premises and the other is cloud-hosted, resulting in completely different endpoints.
Mistake
You do not need authentication to read data from these APIs.
Correct
Both ACI and Meraki APIs require authentication for all requests, including read operations (GET). Unauthenticated requests will return a 401 Unauthorized error.
Some assume that reading public data is allowed, but network configurations are sensitive and always require authentication.
Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.
ACI's API is for managing a local data centre fabric via the APIC controller, while Meraki's API is for managing cloud-connected devices through a remote cloud endpoint.
The 200-901 exam expects you to understand API calls conceptually, but you don't need to be a Python expert. However, Python is the most common language used for automation scripts with these APIs.
Log into the Meraki dashboard, go to 'Organization' then 'Settings', and enable API access. Then generate an API key on the same page.
No, they have different base URLs, authentication methods, and data models. ACI uses the APIC's IP, while Meraki uses api.meraki.com.
A Managed Object (MO) is any resource in ACI, such as a switch, an EPG, or a policy. The API lets you create, read, update, or delete these MOs.
Yes, both ACI and Meraki APIs require HTTPS (port 443) to encrypt all traffic and protect credentials.
You've finished Cisco ACI and Meraki APIs. Continue through the 200-901 study guide to build a complete picture of the exam.
Done with this chapter?