skillfed

instructure-dap-client

Data Access Platform client library

instructure-dap-client v2.2.0 98.3K downloads/30d#13,095 on PyPI
Permissive license MIT Active released

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-client

uv

uv add instructure-dap-client

poetry

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 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

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: End Users/DesktopLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Typing :: Typed

Tags

instructure data access platform clientbulk data export educational analyticsasync data query libraryinstructure api clientdap cli python library
instructure-integrationasync-http-clientdata-export

More WWW/HTTP packages