Last tested: Sep 27, 2019
For PDF: Yes. Use
create_render_task() to schedule a job to render a dashboard (or other content) as a PDF file.
render_task(id) to check the
status of the render task. When it completes, use
render_task_results() to fetch the PDF file.
Note that PDF files are binary data, not JSON text. Client apps calling the
render_task_results() may need to take special steps to fetch the HTTP response body as binary data, not as json text.
For CSV of dashboard data: Yes, with some work. We don't offer an API to run all queries for a dashboard and return all the results. What you can do is fetch the dashboard, iterate through its tiles and find all the queries it refers to, and run those queries via the API, in CSV format. Don't forget to apply filters!
If you are familiar with the SDKs, there are some examples there as well: