- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would strongly recommend that you check out the official Python client library. It takes most of the work off your shoulder.
In order to retrieve data by interacting with DAP API endpoints directly, you must first start a query job by invoking the API endpoint
https://api-gateway.instructure.com/dap/query/{namespace}/table/{table}/data
This is an asynchronous call; it will trigger the job but the job will take time to process. You can monitor the status by invoking the status endpoint. Once the job is complete, it returns a series of object IDs. You will need to exchange these object IDs to pre-signed URLs with URL exchange endpoint. Finally, you need to download the files that the pre-signed URLs point to with plain HTTP file download.
DAP API returns full table dumps for a single root account. There is no API for passing row-level filters.
If you think the process is complicated, I agree. This is why we have created the DAP client library, which has the commands snapshot and incremental to do all these steps for you.