Thanks for your reply. My question was really asking what the minimum set of permissions were for a read-only API user. As you indicated, if I can get it to work in the the GUI API Explorer, it should work via the Python SDK, PowerShell, etc. My issue was that I could not get sections of the API to work with my read-only user. Adding my user to the Administrator group worked but I don't want my "monitoring" users to be an admin. After a lot trial and error - it turns out I need to add my user to the SystemConfiguration.Administrator role. This is still not ideal (in fact it sucks) but at least it works and is not a full-blown admin!
If there is a better way to achieve read-only API access, or if there are any plans to change this in the future, it would be great to know. If nothing else, it would be useful to explain to our customers why our monitoring user requires admin privileges and where we should redirect their queries.