
Today, we’re excited to announce the IDA Domain API, a new open-source Python API designed to make scripting in IDA simpler, more consistent, and more approachable.
This is v0.1.0 - the first step in a longer journey. It’s not the finish line, but rather a foundation for ongoing collaboration between Hex-Rays and the reversing community.
The Domain API is available now for IDA 9.1 and will also work with the upcoming IDA 9.2 release.
Why the Domain API?
If you’ve scripted in IDA before, you know the power of the IDA Python SDK, but you also know it can be verbose, and that common tasks sometimes require more boilerplate than you’d like.
The “Domain” in Domain API refers to the domain of reverse engineering - the core problem space we work in. In this domain, concepts like functions, types, xrefs, and more are central. The Domain API makes these concepts first-class citizens, giving you a cleaner, more natural way to work with them.
The Domain API sits on top of the IDA Python SDK, offering a cleaner, domain-focused abstraction for frequent tasks. It’s designed to complement, not replace, the SDK. You can use both side by side, combining the simplicity of Domain API calls with the full flexibility of the SDK when needed.
What Makes It Different
- Domain-focused design: concepts like functions, types, xrefs, ... are first-class citizens
- Open source from day one: anyone can read the code, suggest improvements, or contribute
- Versioned independently: upgrade at your own pace and pin versions for stability
- Developer-centric: built to reduce friction and improve the scripting experience
What’s in v0.1.0
This first release is intentionally focused. You’ll find:
- Simple APIs for navigating and querying functions, xrefs, and other core reversing concepts
- Consistent naming and return types to reduce surprises
- The ability to use the Domain API both inside IDA or outside, thanks to idalib
- Full interoperability with the existing IDA Python SDK
Getting Started
The Domain API is available on PyPI:
pip install ida-domain
If idalib cannot automatically locate your IDA installation, set the IDADIR
environment variable to point to it and you’re ready to go.
-> Read the Getting Started Guide for installation details, code samples, and usage tips.
What’s Next
We’re treating this as an open-ended collaboration. Over the next weeks, we’ll share:
- Use case spotlights showing real-world workflows
- Community Q&A threads to gather feedback and ideas
- Contribution guides so you can help shape the API
This is the start of a faster, more transparent development cycle where community input directly shapes the tool.
Join the Conversation
We want to hear from you:
- Try it out in your scripts and plugins
- Tell us what’s missing
- Help us decide what to build next
-> Join the discussion on the Hex-Rays forum