instructure-dap-client
Data Access Platform client library
What it is and what it does
This is a Python client library for Instructure's Data Access Platform, designed to fetch bulk analytics data from educational products (Canvas, Instructure Studio, etc.) with high fidelity and low latency. It wraps the DAP query API in an async-first interface using aiohttp, aiohttp-retry for resilience, and asyncclick for CLI tooling. The library includes built-in JWT authentication (PyJWT), type hints (json_strong_typing, types-aiofiles), and output formatting (rich, tsv2py) to streamline data retrieval workflows.
Developers use it to pull large datasets for analytics, reporting, or data warehouse integration. The async design allows concurrent queries, and the CLI integration means you can use it both as a library in Python code and as a command-line tool. The package collects anonymous usage analytics by default but allows opt-out via the CLI.
Use it for:
- Export bulk student and course data from Canvas for institutional analytics or data warehouse ingestion.
- Build automated reporting pipelines that query DAP on a schedule and transform results into dashboards or CSV exports.
- Integrate Instructure product data into third-party BI tools or custom analytics applications.
- Prototype and test DAP queries interactively via the CLI before embedding them in production code.
- Fetch historical data snapshots for compliance audits or institutional research.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Client library for querying Instructure's Data Access Platform (DAP), providing bulk access to educational product data through async HTTP with built-in retry logic and CLI integration.
Yes, if you are an Instructure customer needing programmatic access to DAP data. The library is actively maintained, has low install friction, carries a permissive MIT license, and integrates well with modern async Python workflows. No known security vulnerabilities. Install only if you have DAP credentials and a use case requiring bulk data export; it is not a general-purpose tool.
Install
instructure-dap-client on PyPI
pip
pip install instructure-dap-clientuv
uv add instructure-dap-clientpoetry
poetry add instructure-dap-clientInstalling instructure-dap-client
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained as of March 2026. Requires Python 3.11 or later, which narrows compatibility to modern environments.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions—suitable for both commercial and open-source projects.
Quickstart
pip install instructure-dap-client
import asyncio
from instructure_dap_client import DAPClient
async def main():
client = DAPClient()
# Query data from DAP
asyncio.run(main())
Requires Python 3.11 or later. Authentication credentials for Instructure DAP must be configured separately.
Verify before relying
- Whether the library supports offline mode or requires live API connectivity for all operations.
- Specific rate limits or throttling behavior when querying large datasets.
- Whether analytics opt-out persists across sessions or requires per-call configuration.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 10 — aiohttp, aiohttp-retry, aiofiles, asyncclick, types-aiofiles, json_strong_typing, pysqlsync, PyJWT, tsv2py, rich |
| Maintenance | actively maintained — 151 days since the last release |
| First released | |
| Downloads | 98,280/month — #13,095 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: instructure_dap_client-2.2.0-py3-none-any.whl
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
sec-apiA Python client for the SEC-API.io service that…
permissive · top 15,000 on PyPI
debugpydebugpy is a Debug Adapter Protocol…
permissive · top 1,000 on PyPI
google-analytics-dataPython client library for querying Google…
permissive · top 5,000 on PyPI
salesforce-bulkPython client library for the Salesforce Bulk…
permissive · top 5,000 on PyPI
devolo-home-control-apiPython client library for the devolo Home…
copyleft · top 15,000 on PyPI
daal4pydaal4py provides a Python API to Intel's oneAPI…
permissive · top 15,000 on PyPI
cua-coreCua Core provides shared utilities, helper…
unclear · top 15,000 on PyPI
groqProvides a Python client library for accessing…
permissive · top 1,000 on PyPI
posthoganalyticsSends event data and user properties to PostHog…
permissive · top 5,000 on PyPI