(reference:api)=

# API Reference

PtyRAD is designed to be used primarily through params files using CLI commands or Jupyter notebooks. This section is intended for developers and advanced users interested in extending, debugging, or understanding the internal structure of the codebase.

Many of the functions and modules documented here are not part of a stable public API and may change without warning.

For typical usage, see the Using PtyRAD and Tutorials sections.

```{eval-rst}
.. autosummary::
   :toctree: ../_autosummary
   :template: custom-module-template.rst
   :recursive:

   ptyrad.cli
   ptyrad.reconstruction
   ptyrad.initialization
   ptyrad.models
   ptyrad.forward
   ptyrad.losses
   ptyrad.constraints
   ptyrad.load
   ptyrad.save
   ptyrad.visualization
   ptyrad.utils
```