--- id: instructure-dap-client version: "2.2.0" license: MIT license_treatment: permissive maintenance: active --- # instructure-dap-client — Data Access Platform client library License: permissive · Maintenance: active · Downloads: 98.3K/mo ## 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 above — 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 pip install instructure-dap-client uv add instructure-dap-client poetry add instructure-dap-client ## Installing 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_current - Install friction: low - Maintenance: active - Downloads: 98.3K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags instructure data access platform client, bulk data export educational analytics, async data query library, instructure api client, dap cli python library, instructure-integration, async-http-client, data-export [View on SkillFed](https://skillfed.io/packages/instructure-dap-client) · [View on PyPI](https://pypi.org/project/instructure-dap-client/)