I would start by upgrading to a supported version of FreePBX, then review the links provided above. 2.11 has been EOL for many, many years.
There is a new GraphQL API in FreePBX 15 that may be helpful too.
But I personally wouldn’t spend any time building anything on an obsolete FreePBX / Asterisk version as getting support will be very difficult and things will break when you upgrade most likely.
In my opinion, CLI is the most basic and you can write shells to call commands and extract the data. You can run a help command from within the CLI to see what is available. In the past I have built a webpage that runs a series of CLI commands to create a dashboard.
I am already using fop2 but I don’t want to use it anymore. I need something more robust and with better UI. however I am developing this on Freepbx 14 but can also use it on 2.11 for now