{"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":[{"note":"Package name uses underscores, not hyphens.","wrong":"from dap_client import DAPClient","symbol":"DAPClient","correct":"from instructure_dap_client 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,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `pip install instructure-dap-client` and use `from instructure_dap_client import DAPClient`.","cause":"Package installed as 'instructure-dap-client' but import uses underscores.","error":"ImportError: No module named 'instructure_dap_client'"},{"fix":"Use `DAPClient(base_url='...', api_key='...')` instead.","cause":"Using old constructor pattern from version <2.0.","error":"TypeError: __init__() got an unexpected keyword argument 'config'"},{"fix":"Set the `DAP_API_KEY` environment variable or pass `api_key` to `DAPClient`.","cause":"Client instantiated without an API key.","error":"instructure_dap_client.exceptions.AuthenticationError: No API key provided"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}