The REAPER API is family of data types and C++ functions made available to C++ programmers developing plugins for use with REAPER. Some of these functions are also made available via ReaScript for use by ReaPerl and RePython programmers.
The Complete API Function List is here
The ReaScript Function List is here
State chunk definitions are here
The flimsiest beginnings of a Plug-In Architecture description are here.