# Developer Guide

Welcome to the Hex-Rays Developer Guide, where you can learn how to enhance IDA's capabilities and extend its features.

Whether you're new to IDA development or an experienced reverse engineer, our tools and documentation are designed to help you extend IDA’s capabilities to match your needs.

## Beginner Development Path

### Domain API

Our **beginner-friendly** Domain API is designed for faster scripting and offers an **easy entry point**, perfect for those who value simplicity over complexity.

<table 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>Getting Started</strong></td><td></td><td></td><td><a href="https://ida-domain.docs.hex-rays.com/getting_started/">https://ida-domain.docs.hex-rays.com/getting_started/</a></td></tr><tr><td><strong>Examples</strong></td><td></td><td></td><td><a href="https://ida-domain.docs.hex-rays.com/examples/">https://ida-domain.docs.hex-rays.com/examples/</a></td></tr><tr><td><strong>Reference</strong></td><td></td><td></td><td><a href="https://ida-domain.docs.hex-rays.com/usage/">https://ida-domain.docs.hex-rays.com/usage/</a></td></tr></tbody></table>

## Advanced Development Path

### C++ and IDAPython SDK Fundamentals

For advanced use cases requiring low-level control, explore our C++ and IDAPython SDK. Begin your journey by learning about core concepts and exploring common examples relevant to your language of choice.

<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><th data-hidden></th></tr></thead><tbody><tr><td>Start using C++ SDK</td><td></td><td></td><td><a href="developer-guide/c++-sdk/c++-sdk-getting-started">c++-sdk-getting-started</a></td><td><a href="developer-guide/c++-sdk/c++-sdk-getting-started">c++</a></td></tr><tr><td>Start using IDAPython SDK</td><td></td><td></td><td><a href="developer-guide/idapython/idapython-getting-started">idapython-getting-started</a></td><td><a href="developer-guide/idapython/idapython-getting-started">IDAPython</a></td></tr></tbody></table>

### C++ and IDAPython SDK Reference Documentation

Refer to our detailed C++ and IDAPython SDK documentation for a complete overview of available modules and functions.

<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>C++ reference</strong></td><td></td><td></td><td><a href="https://cpp.docs.hex-rays.com/">https://cpp.docs.hex-rays.com/</a></td></tr><tr><td><strong>IDAPython reference</strong></td><td></td><td></td><td><a href="https://python.docs.hex-rays.com/">https://python.docs.hex-rays.com/</a></td></tr></tbody></table>


---

# 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/9.1/developer-guide.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.
