Skip to main content

Wingpy: Cisco APIs for Humans

wingpy is an elegant and simple Cisco API library for Python, built for network engineers by Wingmen Solutions.

All Cisco APIs differ in how they handle authentication, session management, rate limiting, path construction, pagination and concurrency. With wingpy you don't need to worry about all of the complexities associated with this.

Although many Cisco platforms have dedicated SDKs, each of them is designed and maintained individually and have notable differences. With wingpy, just start coding and interact directly with API endpoints! This makes it much easier to work with new Cisco platform APIs and automate across domains.

Plenty of examples and explanations are available in the User Guide

Features

  • Session maintenance
  • Rate limit handling
  • Authentication
  • Path building
  • Concurrency
  • Fully typed
  • Pagination
  • Headers

Installation

Install via uv

uv add wingpy

Install via pip

pip install wingpy

Install via poetry

poetry add wingpy

Supported APIs

  • Cisco APIC (Application Centric Infrastructure / ACI)

    from wingpy import CiscoAPIC
    
  • Cisco Catalyst Center

    from wingpy import CiscoCatalystCenter
    
  • Cisco FMC (Secure Firewall Management Center)

    from wingpy import CiscoFMC
    
  • Cisco Hyperfabric

    from wingpy import CiscoHyperfabric
    
  • Cisco ISE (Identity Service Engine)

    from wingpy import CiscoISE
    
  • Cisco Meraki Dashboard

    from wingpy import CiscoMerakiDashboard
    
  • Cisco Nexus Dashboard

    from wingpy import CiscoNexusDashboard
    

Configuration

The recommended way to specify API authentication parameters is through environment variables:

  • WINGPY_*_BASE_URL
  • WINGPY_*_USERNAME
  • WINGPY_*_PASSWORD
  • WINGPY_*_TOKEN

See more in the User Guide

Usage

Import the class matching the API you want to use. See full list in the User Guide, API section

Connect to an API

Parameters can be specified as environment variables or with static values. It is your responsibility to keep your secrets safe!

from wingpy import CiscoFMC
fmc = CiscoFMC(base_url="https://1.2.3.4", username="admin", password="passw0rd")

Retrieve all items from a paginated API endpoint

Pages are retrieved in parallel for maximum performance.

networks = fmc.get_all("/api/fmc_config/v1/domain/{domainUUID}/object/hosts")
# Domain UUID is automatically substituted.
# Authentication is done automatically when needed.
# Paginated results are automatically fetched and combined.
for network in networks:
    print(network["name"])

Getting help

Check the FAQ or search the documentation

To report bugs or request features, please open a GitHub issue.

Release files for wingpy 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wingpy 1.7.0
File Size Uploaded
wingpy-1.7.0.tar.gz 7.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for wingpy 1.7.0
File Interpreter ABI Platform
wingpy-1.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 7.6 MB

Release files / wingpy-1.7.0.tar.gz

Download URL wingpy-1.7.0.tar.gz
Size 7.5 MB
Tags Source
SHA-256 checksum
How to use checksums
4db4302ca8815d1b86a698c37ce8c1b2114e712cd98b711e8d42e265bc0a811e
BLAKE2b-256 checksum
How to use checksums
6148a66938526cb51c174b643d2718ded9625c80fcb61992f43e414499f7cc61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / wingpy-1.7.0-py3-none-any.whl

Download URL wingpy-1.7.0-py3-none-any.whl
Size 100.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
05e46f52d99b24407d73d338669291f60dd8723d986dc69800fc7916b6af49c9
BLAKE2b-256 checksum
How to use checksums
89293a6ab32b441bc96bbd7a1cfb5770d40b7a5471311df18849896c76c6ebfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.7.0 This release

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.4.2

2 release files

1.3.1

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page