Not quite. I have a tool which gets one IP for each firewall, then use CPRID to run something on each of them (thread, Github). I've used that to collect all of the IPs actually in use on the firewalls (and to collect interface status, version information, and more).
VSX support in the API is very limited, but seems to be good enough in R81.20 that I think this should be possible. Poking one of my managements for a bit, it looks like this should do it:
domains="$(mgmt_cli -f json -r true show domains limit 500 | jq '.objects[].name' | tr -d '"' | tr ' ' '\n')";echo "${domains}" | while read domainName;do mgmt_cli -f json -r true -d "${domainName}" show gateways-and-servers limit 500 details-level full | jq -c ".objects[]|{domain:\"${domainName:-$(hostname)}\",name:.name,interface:.interfaces[]|{name:.\"interface-name\",ipv4:.\"ipv4-address\",ipv6:.\"ipv6-address\"}}";done
I don't have any VSX in a multi-domain environment, so I'm not 100% sure how that will interact.
Edit: bumped the call limits up to 500 (the highest they'll go). This could still miss some firewalls if some CMA has more than 100 or so.