What is the Cisco DevNet Associate certification?
The Cisco DevNet Associate certification validates skills in software development and design for Cisco platforms. The 200-901 DEVASC exam covers software development fundamentals, APIs, Cisco platforms, application deployment, security, and automation. It is aimed at developers and network engineers learning to automate Cisco infrastructure using Python, REST APIs, and infrastructure-as-code tools.
The Cisco Certified DevNet Associate is Cisco's certification for network automation and software development professionals. The 200-901 DEVASC (Developing Applications and Automating Workflows using Cisco Core Platforms) exam validates the foundation of network programmability, API usage, software development practices, and Cisco platform integration.
As network automation becomes essential in modern enterprise environments, the DevNet Associate bridges the gap between traditional network engineering and software development. Professionals with this certification work on automation projects, API integrations, and CI/CD pipelines for infrastructure. The exam costs $300 USD and is 120 minutes long.
Exam Overview
| Detail | Information |
|---|---|
| Exam Code | 200-901 DEVASC |
| Full Name | Developing Applications and Automating Workflows using Cisco Core Platforms |
| Number of Questions | 95-105 |
| Time Limit | 120 minutes |
| Passing Score | ~825/1000 |
| Cost | $300 USD |
| Prerequisites | None formal; programming experience recommended |
| Certification | Cisco Certified DevNet Associate |
| Validity | 3 years |
The exam covers six domains:
- Software development and design (15%)
- Understanding and using APIs (20%)
- Cisco platforms and development (15%)
- Application deployment and security (15%)
- Infrastructure and automation (20%)
- Network fundamentals (15%)
"DevNet Associate is unlike any previous Cisco exam because it requires you to actually understand code. You need to know Python at a basic level -- reading scripts, understanding what they accomplish, identifying bugs, and knowing which libraries to use for network automation. Candidates who skip the programming fundamentals struggle with 30-40% of the questions." -- Cisco DevNet learning community
Domain 1: Software Development and Design (15%)
Python Fundamentals
Python is the primary language for network automation and the language tested on DevNet Associate:
Data types: Strings, integers, floats, booleans, lists, tuples, dictionaries, sets
Control flow:
# Conditional
if response.status_code == 200:
print("Success")
elif response.status_code == 404:
print("Not found")
else:
print(f"Error: {response.status_code}")
# Loop
for device in device_list:
configure_device(device)
Functions and error handling:
def get_device_info(device_ip):
try:
response = requests.get(f"https://{device_ip}/api/v1/info")
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"Error connecting to {device_ip}: {e}")
return None
Version Control with Git
Git is essential for modern software and automation development:
git init,git clone,git add,git commit,git push,git pull- Branching:
git checkout -b feature-branch - Merging:
git mergeand pull request workflows .gitignore: Preventing sensitive files (credentials, API keys) from being committed
Software Design Patterns
- MVC (Model-View-Controller): Separation of data, presentation, and business logic
- REST: Stateless, resource-based web API architecture style
- Microservices: Application architecture where functionality is split into small, independently deployable services
Domain 2: Understanding and Using APIs (20%)
REST API Fundamentals
REST (Representational State Transfer) APIs use HTTP methods:
| HTTP Method | Operation | Description |
|---|---|---|
| GET | Read | Retrieve a resource |
| POST | Create | Create a new resource |
| PUT | Update (full) | Replace an entire resource |
| PATCH | Update (partial) | Update specific fields |
| DELETE | Delete | Remove a resource |
HTTP status codes:
- 200 OK, 201 Created, 204 No Content (success)
- 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found (client errors)
- 500 Internal Server Error (server error)
Authentication Methods
- Basic Auth: Base64-encoded username:password in Authorization header (not secure without HTTPS)
- Token authentication: Bearer token in Authorization header (common for REST APIs)
- API keys: Key passed in query parameter or header
- OAuth 2.0: Delegated authorization framework for third-party application access
Cisco REST APIs
Cisco DNA Center (Catalyst Center) API:
import requests
# Authenticate
auth_url = "https://dnac.example.com/dna/system/api/v1/auth/token"
response = requests.post(auth_url, auth=("admin", "password"), verify=False)
token = response.json()["Token"]
# Get devices
devices_url = "https://dnac.example.com/dna/intent/api/v1/network-device"
headers = {"x-auth-token": token}
devices = requests.get(devices_url, headers=headers).json()
Domain 3: Cisco Platforms and Development (15%)
Key Cisco Platforms with APIs
| Platform | API Type | Use Case |
|---|---|---|
| Cisco DNA Center/Catalyst Center | REST | Network automation and assurance |
| Cisco Meraki | REST | Cloud-managed network configuration |
| Cisco Webex | REST | Messaging and collaboration automation |
| Cisco IOS-XE | REST (RESTCONF), NETCONF | Device configuration and monitoring |
| Cisco NSO | REST/NETCONF | Multi-vendor network service orchestration |
| Cisco Intersight | REST | Data center infrastructure management |
Cisco Webex API
Cisco Webex provides APIs for:
- Sending messages to rooms and users
- Creating and managing rooms (spaces)
- Creating webhooks to receive event notifications
- Bot development for automated responses
Webex Bots are created in the Webex Developer portal, receive a bot token, and can send messages in response to commands or events.
Domain 4: Application Deployment and Security (15%)
Containers and Docker
Docker containers package applications with their dependencies for consistent deployment:
Dockerfile: Defines the container image build processdocker build: Creates an image from a Dockerfiledocker run: Starts a container from an imagedocker-compose: Defines and runs multi-container applications
CI/CD Concepts
Continuous Integration (CI): Automatically building and testing code changes when committed to version control. Tools: Jenkins, GitHub Actions, GitLab CI.
Continuous Deployment (CD): Automatically deploying tested code to production or staging environments. Includes infrastructure-as-code deployment.
Application Security
- HTTPS/TLS: Encrypting API communication in transit
- Secret management: Never hardcoding credentials; using environment variables or secret management services
- Certificate verification: Verifying SSL certificates in API calls (not using
verify=Falsein production) - Input validation: Sanitizing inputs to prevent injection attacks
Domain 5: Infrastructure and Automation (20%)
Ansible for Network Automation
Ansible uses YAML playbooks to automate network device configuration:
- name: Configure VLAN on Cisco switch
hosts: switches
gather_facts: no
tasks:
- name: Add VLAN 100
cisco.ios.ios_vlans:
config:
- vlan_id: 100
name: Production
state: merged
Key Ansible concepts:
- Inventory: Defines the hosts and groups being automated
- Modules: Pre-built functions for specific actions (cisco.ios.ios_config, cisco.ios.ios_vlans)
- Playbooks: YAML files defining automation tasks
- Roles: Reusable groups of tasks, variables, and files
Terraform for Infrastructure as Code
Terraform uses declarative configuration to provision infrastructure:
resource "meraki_networks_appliance_vlans" "example" {
network_id = "N_1234567890"
vlan_id = "100"
name = "Production"
subnet = "192.168.100.0/24"
appliance_ip = "192.168.100.1"
}
NETCONF and YANG
NETCONF is a standards-based network management protocol:
- Uses XML for data encoding
- Provides operations: get, get-config, edit-config, copy-config, delete-config, commit, lock, unlock
- Runs over SSH (port 830)
YANG is the data modeling language that defines the structure of data used in NETCONF and RESTCONF operations.
"NETCONF/YANG appears on every DevNet exam at every level. Understanding the difference between get (running state) and get-config (configuration), and knowing the four configuration datastores (running, startup, candidate, intended), is fundamental knowledge that must be solid before exam day." -- Cisco DevNet certification community
Domain 6: Network Fundamentals (15%)
This domain tests basic networking knowledge expected of candidates entering the DevNet path:
- OSI model and TCP/IP model
- IP addressing and subnetting (IPv4 and IPv6)
- TCP vs. UDP and common well-known ports
- DNS resolution process
- HTTP/HTTPS request/response cycle
- Basic understanding of VLANs, routing, and switching
Frequently Asked Questions
Do I need networking experience or programming experience for DevNet Associate? DevNet Associate sits at the intersection of networking and programming. You need basic Python programming ability (reading and writing simple scripts) and basic networking knowledge (IP addressing, HTTP, DNS). Candidates with strong networking backgrounds but no programming experience should invest 2-4 weeks learning Python fundamentals before studying DevNet-specific content. Candidates with programming backgrounds but no networking experience need to study networking fundamentals.
What is the best way to practice for the DevNet Associate lab questions? Cisco DevNet Sandbox provides free access to Cisco platforms including DNA Center, IOS-XE devices, and Webex. The Cisco DevNet Learning Labs provide guided exercises for API interactions. Building a Postman collection to interact with Cisco DNA Center and IOS-XE REST APIs is highly recommended. Writing Python scripts using requests, Netmiko, and NAPALM libraries for common automation tasks solidifies the practical knowledge tested in exam questions.
Is DevNet Associate worth getting for traditional network engineers? Yes, especially as automation becomes standard practice in enterprise networking. DevNet Associate demonstrates ability to automate Cisco infrastructure, which is increasingly required in senior network engineering and architecture roles. It also serves as a prerequisite for DevNet Professional certifications that specialize in specific automation domains. Many network engineers use DevNet Associate preparation to build practical Python and API skills they immediately apply on the job.
References
- Cisco. (2025). Cisco Certified DevNet Associate Certification. https://developer.cisco.com/certification/devnet-associate/
- Cisco DevNet. (2025). Learning Labs. https://developer.cisco.com/learning/
- Cisco. (2025). DNA Center API Documentation. https://developer.cisco.com/docs/dna-center/
- Stubblebine, S. (2022). Cisco DevNet Associate DEVASC 200-901 Official Cert Guide. Cisco Press.
- Lutz, M. (2019). Learning Python (5th ed.). O'Reilly Media.
- HashiCorp. (2025). Terraform Documentation. https://developer.hashicorp.com/terraform/docs
