In Kibana there is a separation between the actual data from your indices and configuration objects (called saved objects) like dashboards and visualization configurations. The Kibana works by first fetching the saved objects, then building ES queries based on the configuration and fetching the data in a second step.
To get the configuration objects you can use the saved objects api. The returned JSON will give you information like what visualizations are located on a dashboard, how is the grid arranged, and so on. The visualizations itself are stored in separate saved objects referenced from the dashboard saved object. In those saved objects the configuration for the individual charts is stored - like type of visualization, how to split up the data, what metrics to fetch and so on.