SD-WAN Internet Policies: Missing GET method in SDK and missing network-scoped GET in API
Describe how you confirmed the issue is with the library, and not with the API itself, or a server-side issue of some other kind.
The org-scoped GET endpoint GET /organizations/{organizationId}/appliance/sdwan/internetPolicies exists in the Dashboard API (currently x-release-stage: beta, API version 1.70.0-beta.0) and returns a valid 200 response when called directly via Postman and the Python requests library. However, there is no corresponding getOrganizationApplianceSdwanInternetPolicies method in the SDK. Attempting to call it raises an AttributeError, confirming this is a library-level gap rather than a server-side issue.
Python version installed
Not version-specific — reproducible across Python 3.11+.
Meraki library version installed
3.13.2
Have you reproduced the issue with the latest version of this library? And with the latest version of Python?
Yes — confirmed against meraki==3.13.2, the latest available release.
OS Platform
Not OS-specific.
Describe the bug
There are two related gaps:
getOrganizationApplianceSdwanInternetPolicies is absent from the SDK — the endpoint exists in the API spec (beta) but has not been generated into meraki/api/appliance.py or meraki/aio/api/appliance.py.
- There is no
GET /networks/{networkId}/appliance/sdwan/internetPolicies endpoint in the API at all, despite a PUT existing at the same path (updateNetworkApplianceSdwanInternetPolicies). This means there is no way to read SD-WAN internet policy at the network level.
How can we replicate the problem you're reporting?
- Instantiate the SDK:
dashboard = meraki.DashboardAPI(api_key)
- Attempt to call:
dashboard.appliance.getOrganizationApplianceSdwanInternetPolicies(organizationId)
- Observe an
AttributeError — the method does not exist.
- For reference, the endpoint this should wrap: https://developer.cisco.com/meraki/api-v1/get-organization-appliance-sdwan-internet-policies/
Expected behavior
dashboard.appliance.getOrganizationApplianceSdwanInternetPolicies(organizationId) should exist and return the SD-WAN internet traffic preferences for networks within the organisation, consistent with the API spec.
- A network-scoped
dashboard.appliance.getNetworkApplianceSdwanInternetPolicies(networkId) should also exist, consistent with how other read/write pairs are structured in the SDK (e.g. getNetworkApplianceTrafficShapingUplinkSelection / updateNetworkApplianceTrafficShapingUplinkSelection).
Code snippets
import meraki
import requests
api_key = "your_api_key"
organizationId = "your_org_id"
dashboard = meraki.DashboardAPI(api_key)
# Raises AttributeError: 'Appliance' object has no attribute 'getOrganizationApplianceSdwanInternetPolicies'
dashboard.appliance.getOrganizationApplianceSdwanInternetPolicies(organizationId)
# Workaround via requests — confirmed returning HTTP 200, proving the API endpoint
# exists and is accessible, and that the gap is in the SDK library only
response = requests.get(
f"https://api.meraki.com/api/v1/organizations/{organizationId}/appliance/sdwan/internetPolicies",
headers={"X-Cisco-Meraki-API-Key": api_key}
)
print(response.status_code) # 200
print(response.json())
Additional context
SD-WAN internet policies require Advanced (MX Advanced Security) licensing. The absence of a readable GET — particularly at the network scope — creates a practical gap for customers managing mixed license tiers across a large organisation:
- License compliance auditing — without a network-scoped GET, there is no programmatic way to determine which networks have SD-WAN internet policies configured and therefore require Advanced licensing.
- Idempotent automation — a read → compare → write pattern is not possible without a GET, so automation must either blindly overwrite existing policy or skip validation entirely.
- Pre-change validation — automation cannot confirm current state before issuing a PUT.
The org-scoped beta GET partially addresses the audit use case, but does not resolve licensing determination or idempotent automation at the network level.
Requested changes:
- SDK / generator: Generate
getOrganizationApplianceSdwanInternetPolicies from the existing beta spec entry once it graduates to GA, or sooner if the generator supports beta endpoints.
- API team: Please consider adding
GET /networks/{networkId}/appliance/sdwan/internetPolicies to the API spec.
References:
SD-WAN Internet Policies: Missing GET method in SDK and missing network-scoped GET in API
Describe how you confirmed the issue is with the library, and not with the API itself, or a server-side issue of some other kind.
The org-scoped GET endpoint
GET /organizations/{organizationId}/appliance/sdwan/internetPoliciesexists in the Dashboard API (currentlyx-release-stage: beta, API version 1.70.0-beta.0) and returns a valid200response when called directly via Postman and the Pythonrequestslibrary. However, there is no correspondinggetOrganizationApplianceSdwanInternetPoliciesmethod in the SDK. Attempting to call it raises anAttributeError, confirming this is a library-level gap rather than a server-side issue.Python version installed
Not version-specific — reproducible across Python 3.11+.
Meraki library version installed
3.13.2Have you reproduced the issue with the latest version of this library? And with the latest version of Python?
Yes — confirmed against
meraki==3.13.2, the latest available release.OS Platform
Not OS-specific.
Describe the bug
There are two related gaps:
getOrganizationApplianceSdwanInternetPoliciesis absent from the SDK — the endpoint exists in the API spec (beta) but has not been generated intomeraki/api/appliance.pyormeraki/aio/api/appliance.py.GET /networks/{networkId}/appliance/sdwan/internetPoliciesendpoint in the API at all, despite aPUTexisting at the same path (updateNetworkApplianceSdwanInternetPolicies). This means there is no way to read SD-WAN internet policy at the network level.How can we replicate the problem you're reporting?
dashboard = meraki.DashboardAPI(api_key)dashboard.appliance.getOrganizationApplianceSdwanInternetPolicies(organizationId)AttributeError— the method does not exist.Expected behavior
dashboard.appliance.getOrganizationApplianceSdwanInternetPolicies(organizationId)should exist and return the SD-WAN internet traffic preferences for networks within the organisation, consistent with the API spec.dashboard.appliance.getNetworkApplianceSdwanInternetPolicies(networkId)should also exist, consistent with how other read/write pairs are structured in the SDK (e.g.getNetworkApplianceTrafficShapingUplinkSelection/updateNetworkApplianceTrafficShapingUplinkSelection).Code snippets
Additional context
SD-WAN internet policies require Advanced (MX Advanced Security) licensing. The absence of a readable GET — particularly at the network scope — creates a practical gap for customers managing mixed license tiers across a large organisation:
The org-scoped beta GET partially addresses the audit use case, but does not resolve licensing determination or idempotent automation at the network level.
Requested changes:
getOrganizationApplianceSdwanInternetPoliciesfrom the existing beta spec entry once it graduates to GA, or sooner if the generator supports beta endpoints.GET /networks/{networkId}/appliance/sdwan/internetPoliciesto the API spec.References: