API /nodes/{node}/network endpoint wont return bridges

ubeF

New Member
Aug 7, 2025
3
0
1
I'm running Proxmox VE 8.4.0 with two ethernet devices and two linux bridges, but when i hit /nodes/{node}/network the result only contains my ethernet devices. When i filter for bridges /nodes/{node}/network?type=any_bridge the result turns up empty.
 
Hey,

what do these
Code:
pvesh get /nodes/localhost/network
pvesh get /nodes/localhost/network --type=any_bridge
say?

How does your /etc/network/interfaces look?
 
config:
Code:
> cat /etc/network/interfaces
auto lo
iface lo inet loopback

iface eno1 inet manual

iface eno2 inet manual

auto vmbr0
iface vmbr0 inet static
        address 172.17.41.12/23
        gateway 172.17.40.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

auto MCNPR
iface MCNPR inet manual
        bridge-ports none
        bridge-stp off
        bridge-fd 0

pvesh works as expected:

Code:
 > pvesh get /nodes/localhost/network
┌───────┬────────┬────────┬──────────────┬──────────┬───────────┬──────────────┬───────────┬───────────────────────┬───────────────┬────────────────────────
│ iface │ type   │ active │ address      │ address6 │ autostart │ bond-primary │ bond_mode │ bond_xmit_hash_policy │ bridge-access │ bridge-arp-nd-suppress
╞═══════╪════════╪════════╪══════════════╪══════════╪═══════════╪══════════════╪═══════════╪═══════════════════════╪═══════════════╪════════════════════════
│ MCNPR │ bridge │ 1      │              │          │ 1         │              │           │                       │               │
├───────┼────────┼────────┼──────────────┼──────────┼───────────┼──────────────┼───────────┼───────────────────────┼───────────────┼────────────────────────
│ eno1  │ eth    │ 1      │              │          │           │              │           │                       │               │
├───────┼────────┼────────┼──────────────┼──────────┼───────────┼──────────────┼───────────┼───────────────────────┼───────────────┼────────────────────────
│ eno2  │ eth    │        │              │          │           │              │           │                       │               │
├───────┼────────┼────────┼──────────────┼──────────┼───────────┼──────────────┼───────────┼───────────────────────┼───────────────┼────────────────────────
│ vmbr0 │ bridge │ 1      │ 172.17.41.12 │          │ 1         │              │           │                       │               │
└───────┴────────┴────────┴──────────────┴──────────┴───────────┴

Code:
 > pvesh get /nodes/localhost/network --type=bridge
┌───────┬────────┬────────┬──────────────┬──────────┬───────────┬──────────────┬───────────┬───────────────────────┬───────────────┬────────────────────────
│ iface │ type   │ active │ address      │ address6 │ autostart │ bond-primary │ bond_mode │ bond_xmit_hash_policy │ bridge-access │ bridge-arp-nd-suppress
╞═══════╪════════╪════════╪══════════════╪══════════╪═══════════╪══════════════╪═══════════╪═══════════════════════╪═══════════════╪════════════════════════
│ MCNPR │ bridge │ 1      │              │          │ 1         │              │           │                       │               │
├───────┼────────┼────────┼──────────────┼──────────┼───────────┼──────────────┼───────────┼───────────────────────┼───────────────┼────────────────────────
│ vmbr0 │ bridge │ 1      │ 172.17.41.12 │          │ 1         │              │           │                       │               │
└───────┴────────┴────────┴──────────────┴──────────┴───────────┴──────────────┴───────────┴───────────────────────┴───────────────┴────────────────────────

the API call made with ansible, targeting the same node:


Code:
ok: [127.0.0.1] => {
    "msg": "API returned: {'content': '{\"data\":[{\"method\":\"manual\",\"method6\":\"manual\",\"exists\":1,\"priority\":4,\"families\":[\"inet\"],\"type\":\"eth\",\"iface\":\"eno2\"},{\"exists\":1,\"method6\":\"manual\",\"method\":\"manual\",\"active\":1,\"priority\":3,\"type\":\"eth\",\"iface\":\"eno1\",\"families\":[\"inet\"]}]}', 'redirected': False, 'url': 'https://<host>:8006/api2/json/nodes/c1b1hyper1/network', 'status': 200, 'cache_control': 'max-age=0', 'connection': 'close', 'date': 'Thu, 07 Aug 2025 11:38:08 GMT', 'pragma': 'no-cache', 'server': 'pve-api-daemon/3.0', 'content_length': '243', 'content_type': 'application/json;charset=UTF-8', 'expires': 'Thu, 07 Aug 2025 11:38:08 GMT', 'cookies_string': '', 'cookies': {}, 'msg': 'OK (243 bytes)', 'elapsed': 0, 'changed': False, 'json': {'data': [{'method': 'manual', 'method6': 'manual', 'exists': 1, 'priority': 4, 'families': ['inet'], 'type': 'eth', 'iface': 'eno2'}, {'exists': 1, 'method6': 'manual', 'method': 'manual', 'active': 1, 'priority': 3, 'type': 'eth', 'iface': 'eno1', 'families': ['inet']}]}, 'failed': False}"
}
 
Last edited:
I turned of privilege separation on the API token i was using. Now i get the expected results. I don't quite get why listing bridges requires higher privileges then listing ethernet ports tho.