Using the Binary Ninja API¶
Welcome to the Binary Ninja API documentation. Much like the User Guide, some larger sections have been split off into their own sections on the left, while the table of contents for this documentation is on the right.
Language Specific Bindings¶
The Binary Ninja API is available through a Core API, through the C++ API, through a Python API, and a Rust API.
Python API¶
The Python API is the most common third-party API and is used in many public plugins. Here's a list of the most important Python API documentation resources:
- Writing Python Plugins
- Applying Annotations
- Script Cookbook with common examples and concepts explained
- Python API Reference (available offline via the Help menu)
- API Source
Core API¶
The Core API is designed to only be used as a shim from other languages and is not currently intended to be used to build C plugins directly.
- Header (used by all other bindings)
C++ API¶
The C++ API is what the Binary Ninja UI itself is built using so it's a robust and fully feature-complete interface to the core, however, it does not have the same level of detail in the documentation.
- C++ Header (along with the rest of the repository)
- Build Instructions
- C++ / UI API Documentation
Rust API¶
The Rust API is still experimental and lacks complete coverage for all core APIs. Documentation is available at: