# IDAPython SDK

IDAPython SDK allows you to use Python code in IDA to write scripts and customize basic IDA functionality. It offers more advanced and powerful automation than the IDC language and gives you access to Python modules and native Python abilities to interact with our API.

## Basic Resources

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>IDAPython Getting Started</strong></td><td>Check this guide to kickstart learning IDAPython with simple snippets.</td><td></td><td><a href="/pages/StiVkq4c6Cz4X63yisdC">/pages/StiVkq4c6Cz4X63yisdC</a></td></tr><tr><td><strong>IDAPython Reference</strong></td><td>Explore the technical details of all functions, classes, and more.</td><td></td><td><a href="https://python.docs.hex-rays.com">https://python.docs.hex-rays.com</a></td></tr><tr><td><strong>IDA SDK Source Code</strong></td><td>Open-source Software Development Kit for IDA</td><td></td><td><a href="https://github.com/HexRaysSA/ida-sdk">https://github.com/HexRaysSA/ida-sdk</a></td></tr></tbody></table>

## Typical use cases

When you are asking yourself how to automate work in IDA, like renaming variables or performing custom analyses, the IDAPython API comes in handy. You can use simple code snippets directly inside the IDA output window to perform specific tasks or more advanced scripts for complex usage. Moreover, with IDAPython, you can write plugins to expand basic IDA capabilities even further.

## Looking for a beginner-friendly entry point?

We’ve got you covered. The [Domain API](https://ida-domain.docs.hex-rays.com/), built on top of the IDAPython SDK, provides a simple and intuitive starting point for those new to scripting in IDA. For more advanced use cases or finer control, you can fall back to the IDAPython SDK. The Domain API is fully compatible with the IDAPython SDK, so both can be used together to complement each other.

## What to check next?

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>IDAPython Examples</strong></td><td>Dig into complex examples that showcase the full potential and versatility of our PythonAPI.</td><td></td><td><a href="/pages/FSaMlIbs7GfsIrjVsFaM">/pages/FSaMlIbs7GfsIrjVsFaM</a></td></tr><tr><td><strong>Writing Plugins in IDAPython</strong></td><td>Learn the best practices for creating plugins with IDAPython.</td><td></td><td><a href="/pages/PjpaUVgNigN4g2QxHOtV">/pages/PjpaUVgNigN4g2QxHOtV</a></td></tr></tbody></table>

### IDAPython Porting Guide

Check out our [Porting Guide](/developer/idapython/how-tos/idapython-porting-guide-ida-9.md), which is prepared to help you migrate and adapt your existing scripts and plugins from IDA 8.x to IDA 9.0.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/developer/idapython.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
