Interestingly, there is an endpoint that gets non WAN ports. Hmmm. Maybe one could make this call and assume the others are the WAN ports? This should not be so difficult.
Example:
curl -L --request GET \
--url 'https://api.meraki.com/api/v1/networks/[Network_ID Here]/appliance/ports' \
--header 'Authorization: Bearer [API Key Here]' \
--header 'Accept: application/json'
[
{"number":3,"enabled":true,"type":"access","dropUntaggedTraffic":false,"vlan":10,"accessPolicy":"open"},{"number":4,"enabled":true,"type":"trunk","dropUntaggedTraffic":true,"allowedVlans":"all"},{"number":5,"enabled":true,"type":"trunk","dropUntaggedTraffic":true,"allowedVlans":"all"},{"number":6,"enabled":true,"type":"trunk","dropUntaggedTraffic":true,"allowedVlans":"all"},{"number":7,"enabled":true,"type":"trunk","dropUntaggedTraffic":true,"allowedVlans":"all"},{"number":8,"enabled":true,"type":"trunk","dropUntaggedTraffic":false,"vlan":11,"allowedVlans":"10,11"},{"number":9,"enabled":true,"type":"trunk","dropUntaggedTraffic":false,"vlan":11,"allowedVlans":"10,11"},{"number":10,"enabled":true,"type":"trunk","dropUntaggedTraffic":true,"allowedVlans":"all"},{"number":11,"enabled":true,"type":"trunk","dropUntaggedTraffic":true,"allowedVlans":"all"}
]