Skip to main content
Binary Ninja

Welcome to Binary Ninja API

The Binary Ninja API provides comprehensive access to Binary Ninja’s powerful reverse engineering capabilities through C++, Python, and Rust interfaces. Whether you’re building plugins, creating automation scripts, or developing standalone analysis tools, the Binary Ninja API gives you the tools you need.

Multi-Language Support

Binary Ninja supports three official language bindings, each with their own strengths:

Python API

Perfect for rapid prototyping and scripting. Most popular for plugins.

C++ API

Native performance for advanced plugins and architectures.

Rust API

Type-safe bindings with modern language features.

Key Features

Advanced Intermediate Languages

Binary Ninja’s multi-tiered IL system provides unprecedented insight into binary code:
  • LLIL (Low-Level IL): Architecture-independent representation close to assembly
  • MLIL (Medium-Level IL): Decompiled representation with data flow analysis
  • HLIL (High-Level IL): High-level C-like representation with SSA form
Each IL level supports SSA (Static Single Assignment) form for advanced analysis.

Extensive Architecture Support

Built-in support for multiple architectures:

x86/x86_64

Intel and AMD processors

ARM64 & ARMv7

Modern ARM architectures

MIPS

MIPS32 and MIPS64

PowerPC

PowerPC 32 and 64-bit

RISC-V

Open source RISC architecture

MSP430

TI microcontrollers

Platform & Binary Format Support

Comprehensive support for:
  • Platforms: Windows, Linux, macOS, FreeBSD, EFI, and more
  • Formats: PE/COFF, ELF, Mach-O, kernel caches, shared caches
  • Debug Info: DWARF, PDB, IDB import

Plugin Development

Extend Binary Ninja with custom:
  • Architectures: Add support for new CPU architectures
  • Binary View Types: Parse new file formats
  • Workflows: Customize the analysis pipeline
  • UI Components: Create custom views and panels (with UI license)
  • Analysis Extensions: Custom function recognizers, type libraries

Getting Started

Installation

Set up the Binary Ninja API for your language of choice

Quickstart

Jump right in with working examples in Python, C++, and Rust

Python Examples

Browse dozens of Python examples

Rust Examples

Explore Rust example projects

License Requirements

The Binary Ninja API requires a valid Binary Ninja license. Some features require specific license types:
  • Personal/Commercial: Full API access for plugins and UI scripting
  • Headless: Required for standalone executables and automation servers
  • Enterprise: Additional collaboration and team features

Open Source

The Binary Ninja API is open source and available on GitHub:

Binary Ninja API Repository

Contribute to the API or browse the source code
The repository includes:
  • Complete API source code (MIT licensed)
  • All architecture implementations
  • Binary view type implementations
  • Example plugins and projects
  • Documentation source

Support & Community

Slack Community

Join our active community for help and discussion

Issue Tracker

Report bugs and request features

Documentation

Official Binary Ninja documentation

API Reference

Complete Python API reference

What’s Next?

Ready to start building with Binary Ninja? Head over to the Installation guide to set up your development environment, or jump straight into the Quickstart to see the API in action.

Build docs developers (and LLMs) love