{"id":23891,"library":"instructure-dap-client","title":"Instructure DAP Client","description":"Official Python client for Instructure's Data Access Platform (DAP). Current version 2.2.0, requires Python >=3.11. Provides async and sync access to DAP REST API, with built-in retry and error handling. Released under Apache 2.0.","status":"active","version":"2.2.0","language":"python","source_language":"en","source_url":"https://github.com/instructure/dap-client-python","tags":["instructure","dap","data-access-platform","client","api"],"install":[{"cmd":"pip install instructure-dap-client","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"wrong":"from instructure_dap_client import DAPClient","symbol":"DAPClient","correct":"from dap import DAPClient"}],"quickstart":{"code":"import os\nfrom instructure_dap_client import DAPClient\n\nclient = DAPClient(\n    base_url=os.environ.get('DAP_BASE_URL', 'https://dap.instructure.com'),\n    api_key=os.environ.get('DAP_API_KEY', '')\n)\n\n# Example: list jobs\njobs = client.list_jobs()\nprint(jobs)","lang":"python","description":"Initialize client with environment variables for base URL and API key, then make a request."},"warnings":[{"fix":"Use `DAPClient(base_url='...', api_key='...')` directly.","message":"In version 2.0, the constructor signature changed: `DAPClient(base_url, api_key)` replaced the old `DAPClient(config=...)` pattern. Old code will break.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Convert to list first: `list(client.list_jobs())` or iterate directly.","message":"The `list_jobs()` method now returns an iterator instead of a list. Calling `len()` on the result will fail.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Always set the `DAP_API_KEY` environment variable or pass `api_key` to the constructor.","message":"API key is required for all requests. If not provided, the client will raise an `AuthenticationError`.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'2.0':40 '2.2.0':16 '3.11':19 'access':11,24,45 'apach':39 'api':28,48 'async':21 'built':31 'built-in':30 'client':3,6,47 'current':14 'dap':2,13,26,42 'data':10,44 'data-access-platform':43 'error':35 'handl':36 'instructur':1,8,41 'offici':4 'platform':12,46 'provid':20 'python':5,18 'releas':37 'requir':17 'rest':27 'retri':33 'sync':23 'version':15","created_at":"2026-05-01T08:10:10.571013+00:00","updated_at":"2026-05-01T08:10:10.571013+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nImportError: cannot import name 'DAPClient' from 'dap' (/tmp/tmpd_0vyp8w/venv/lib/python3.12/site-packages/dap/__init__.py)"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"2.2.0","cli_name":"","cli_version":null,"type":"library","homepage":"https://instructure.com","github":null,"docs":null,"changelog":"https://community.canvaslms.com/t5/Canvas-Change-Log/2025-API-and-CLI-Change-Log/ta-p/626858","pypi":"https://pypi.org/project/instructure-dap-client/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["http-networking"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}