Skip to main content

Read-only Python SDK for Netskope SD-WAN APIs.

Project description

netskope-sdwan-py-sdk

netskope-sdwan-py-sdk is a read-only Python SDK for Netskope SD-WAN APIs.

⚠️ Unofficial SDK – community maintained

Design Principles

This SDK is intentionally opinionated and focused. It is designed as:

  • GET-only (initial phase)
    The SDK currently provides read-only access to the Netskope SD-WAN APIs.
    This is a deliberate first stage to establish a stable, predictable foundation before introducing mutation operations (POST, PUT, PATCH, DELETE).

  • v2-first client surface
    All primary functionality is built around the Netskope SD-WAN v2 API.
    New features and coverage are added to v2 managers first, making it the default and recommended interface.

  • Explicit handling of legacy v1 endpoints
    Endpoints that only exist in Netskope SD-WAN v1 are clearly separated under client.v1.*.
    This avoids ambiguity, keeps the main client clean, and makes it obvious when legacy APIs are being used.

  • Lightweight and pragmatic data modeling
    The SDK avoids heavy abstractions and complex object hierarchies.
    A structured Gateway model is provided for high-value resources, while most other endpoints return shallow ResourceRecord objects with direct access to the raw API payload.

  • Close-to-API behavior
    The SDK mirrors the API closely, with minimal transformation or hidden logic.
    This makes it easier to reason about requests, debug issues, and map directly to API documentation.

  • Explicit over implicit
    Parameters, filters, and required fields are intentionally not hidden behind convenience layers.
    The goal is to make API interactions transparent rather than “magic”.

  • Composable and script-friendly
    Designed for engineers automating workflows, building tooling, or running diagnostics — not as a full abstraction layer.

  • Small surface area, easy to extend
    The codebase is structured to allow incremental addition of new endpoints without introducing breaking changes or unnecessary complexity.

Requirements

  • Python 3.11+

Installation

pip install netskope-sdwan-py-sdk

For local development:

python3.11 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Quick Start

from netskopesdwan import SDWANClient, __version__

print(__version__)

client = SDWANClient(
    base_url="https://customer.api.eu.infiot.net",
    api_token="TOKEN",
)

gateways = client.gateways.list()
gateway = client.gateways.get("gw-001")

Legacy v1 Namespace

V2 is the primary surface. Transitional v1-only GET endpoints remain isolated under client.v1.

from netskopesdwan import SDWANClient

client = SDWANClient(
    base_url="https://customer.api.eu.infiot.net",
    api_token="TOKEN",
)

edges = client.v1.edges.list()
interfaces = client.v1.monitoring.get_interfaces_latest("gw-001")
groups = client.v1.users.get_groups("user-001")

Behavior Notes

  • client.audit_events.list(...) requires both created_at_from and created_at_to.
  • client.site_commands.get_output(...) returns a DownloadResult with bytes and response headers.
  • Gateways return a structured Gateway model. Most other JSON resources return shallow ResourceRecord objects with the original payload in .raw.

Tenant Resolution

Direct API URLs work as-is:

from netskopesdwan import SDWANClient

client = SDWANClient(
    base_url="https://legacy123.api.eu.infiot.net",
    api_token="TOKEN",
)

Supported goskope tenant URLs can also be resolved when the SD-WAN tenant name is known:

from netskopesdwan import SDWANClient

client = SDWANClient(
    tenant_url="customer.de.goskope.com",
    sdwan_tenant_name="legacy123",
    api_token="TOKEN",
)

Local Commands

Install dev dependencies:

pip install -e .[dev]

Run tests:

pytest -q

Run lint:

ruff check .

Run the smoke example:

python examples/smoke_all_gets.py

Scope

Implemented:

  • read-only v2 managers for gateways, infrastructure, policy, identity, software, controller, cloud, and certificate resources
  • selected nested or special GET helpers such as address objects, controller operator status, JWKS, software downloads, and site command output
  • transitional v1 managers under client.v1.edges, client.v1.monitoring, and client.v1.users

Not implemented:

  • POST, PUT, PATCH, DELETE
  • async support
  • live DNS or CNAME discovery

Disclaimer

This project is an unofficial SDK and is not affiliated with, endorsed by, or supported by Netskope.

The SDK is provided on an "as-is" basis without warranties of any kind, express or implied.
Users are responsible for validating functionality and suitability for their own use cases.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netskope_sdwan_py_sdk-0.1.1.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netskope_sdwan_py_sdk-0.1.1-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file netskope_sdwan_py_sdk-0.1.1.tar.gz.

File metadata

  • Download URL: netskope_sdwan_py_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for netskope_sdwan_py_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 338691371788aa5050c3418ac32348fd8b3a8e18aa0a71f7e1120bfdb8c7dc65
MD5 a6199c582dd0d5a84f3fd07ae8fc10cb
BLAKE2b-256 7ecc683f97bb4fbc661b2464a5a3fb886b1d96da638c96e36078cec828d86706

See more details on using hashes here.

File details

Details for the file netskope_sdwan_py_sdk-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for netskope_sdwan_py_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 882aac02b5b90c15c119a743e363ff76858daddb78ec8ba9df51f9d6938d697d
MD5 45c15848b547334606b9f212b245a130
BLAKE2b-256 3dac57cac577d786c559d3216f18d67652b9684f8f27cff2c30913ad151fd2ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page