Hi Ajit,
Nearly all APM data is exposed via one or more APIs. But APM is a high-performance database system optimized for writing 100K to millions of data points to disk every 15 seconds and doing some calculations and alerting on that data. Every query puts additional load on the system. So you should keep your queries to the minimum needed to meet your requirements.
Speaking of which, what exactly are your requirements for getting data from APM? Which data do you need for which use case? Which granularity of data? Which subsets?
E.g. If you want to get the agents, you will only query them once an hour or once a day. For metrics only query a small subset, e.g. Frontend metrics, every 5 minutes already aggregated into 5 minute intervals.
You can start either with web services (see API Guide) at http://<EM>:8081/introscope-web-services/services.
Or you use the command line workstation (see Admin Guide):
java -Xmx128M -Duser=$EM_USER -Dpassword=$EM_PWD -Dhost=$EM_HOST -Dport=$EM_PORT -jar $CLW_PATH/CLWorkstation.jar "get historical data from agents matching .* and metrics matching (Frontends\|Apps\|[^\|]+:Average Response Time \(ms\)) for past 5 minutes with frequency of 300 s"
Ciao,
Guenter