Network Device REST APIs: Automate Without a CLI
Network automation via REST APIs without a CLI: FortiGate (FortiOS REST API), Panorama (Palo Alto), Meraki Dashboard API, and Cisco DNA Center. Python + Requests for rapid scripts and dashboards. 2026 guide.
Why Use REST APIs
- Structured data (JSON) vs. fragile CLI parsing
- No resource-intensive SSH sessions
- Idempotent + stateless
- Multi-language bindings (Python, Go, JS)
- Native support for cloud SaaS platforms (Meraki, Prisma Access)
Authentication
- API key: Meraki (X-Cisco-Meraki-API-Key header)
- OAuth 2.0: Cisco DNA Center, Prisma Access
- Basic Auth: legacy systems
- Token-based authentication: FortiOS
- Certificates: secure mTLS
FortiOS REST API
- URL: https://fortigate.example.com/api/v2/
- Example endpoint: GET /api/v2/cmdb/firewall/policy
- Authentication: token in the header
- Rate limit: 1200 req/min by default
Python example
- import requests
- headers = {'Authorization': 'Bearer TOKEN', 'Content-Type': 'application/json'}
- resp = requests.get('https://fg.example.com/api/v2/cmdb/firewall/policy', headers=headers, verify=False)
- policies = resp.json()['results']
- for p in policies: print(p['name'], p['action'])
Meraki Dashboard API
- Simple + well documented (developer.cisco.com/meraki)
- Python SDK: meraki
- Use cases: automatically create networks and deploy configurations to 1000 devices
- Rate limit: 10 req/s
Cisco DNA Center API
- Token-based OAuth
- Intent API: high-level operations
- Integration API: CRUD operations on resources
- Webhooks: real-time events
Panorama API (Palo Alto)
- XML-based (not JSON)
- Python SDK: pan-python
- Use cases: policy deployment, address objects, and reports
Tools
- Postman: develop and test APIs
- Swagger/OpenAPI: documentation
- Insomnia: an alternative to Postman
- curl: quick CLI access
Order from OPTINOC
Network automation via REST APIs. Training + custom script development. DevOps integration. Quote within 48 hours.
