I’ve recently published a small Python project called aws-org-view, which lives here: https://github.com/nsmithuk/aws-org-view.
The motivation is simple: the AWS Organizations API is powerful, but it’s also low-level, chatty, and easy to misuse. Answering what should be straightforward questions — Is this account somewhere under this OU? or What does my OU hierarchy actually look like? — often requires multiple API calls, pagination, recursion, and careful caching to avoid throttling.
aws-org-view wraps all of that up behind a small, intentional API.
The library focuses on high-level queries that are common in real systems, especially security, governance, and automation tooling. For example:
Under the hood, the implementation is deliberately lazy and cache-heavy. It only makes the minimum number of API calls required to resolve a query, and aggressively caches results to reduce repeated lookups. This makes it well-suited to Lambda functions, policy engines, and other systems where Organizations data is referenced frequently but changes infrequently.
Another design goal was clean separation of concerns. Instead of tightly coupling the code to boto3 session construction or role-assumption logic, the library accepts a simple client provider interface. That makes it easier to test, easier to extend, and easier to integrate into more complex AWS setups.
This isn’t a full Organizations abstraction layer, and it’s not trying to be one. It’s a focused utility for asking higher-level questions of your AWS org, safely and efficiently.
If you’ve ever found yourself re-implementing the same OU-walking logic yet again, this might save you some time.