We have an extensive VoIPTools REST/RPC API for exactly that purpose. /Extensions /Groups /Queues, etc. Everything our applications can do, you can do with our API because we use the same API to communicate with 3CX.
We also have websockets (SignalR) events to which you can subscribe to receive call events, extension updates, and much more.
We also have a very carefully crafted read-only REST API for querying 3CX data (including Extensions) and call history information, queue statistics -- for all the 3CX tables. If you want to automate the synchronization of 3CX data to SQL or MySQL, you can use our Exporter tool.