{"library":"sec-edgar-downloader","title":"SEC EDGAR Downloader","description":"sec-edgar-downloader is a Python package designed for efficiently downloading company filings from the SEC EDGAR database. Currently at version 5.1.0, it underwent a full rewrite in 5.0.0 to leverage the SEC's official EDGAR API and integrates formal rate-limiting using `pyrate-limiter` to comply with SEC fair access policies (10 requests per second). The library actively maintains support for recent Python versions and has a consistent release cadence with new features and fixes.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install sec-edgar-downloader"],"cli":{"name":"sec-edgar-downloader","version":"sh: 1: sec-edgar-downloader: not found"}},"imports":["from sec_edgar_downloader import Downloader"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom sec_edgar_downloader import Downloader\n\n# It's crucial to set a User-Agent to comply with SEC's fair access policy.\n# Replace with your company name and admin contact email.\n# Example: 'MyCompanyName AdminContact@mycompany.com'\ncompany_name = os.environ.get('SEC_EDGAR_COMPANY_NAME', 'My Test Company')\nemail_address = os.environ.get('SEC_EDGAR_EMAIL', 'test@example.com')\n\n# Initialize a downloader instance. Filings will be saved to the current working directory by default.\n# You can specify a different download_folder: dl = Downloader(company_name, email_address, '~/sec_filings')\ndl = Downloader(company_name, email_address)\n\ntry:\n    # Download the latest 10-K filing for Apple (AAPL)\n    # The 'limit' parameter controls the number of most recent filings to download.\n    count = dl.get('10-K', 'AAPL', limit=1)\n    print(f\"Successfully downloaded {count} filing(s) for AAPL.\")\n\n    # Download all 8-K filings for Microsoft (MSFT) after a specific date\n    count = dl.get('8-K', 'MSFT', after='2023-01-01')\n    print(f\"Successfully downloaded {count} 8-K filing(s) for MSFT after 2023-01-01.\")\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n    print(\"Ensure your User-Agent is properly set and you are not exceeding SEC rate limits.\")\n","lang":"python","description":"Initialize the `Downloader` with a valid company name and email address as your `User-Agent` (critical for SEC compliance) and then use the `get()` method to download filings by form type and ticker/CIK. The example demonstrates downloading a single 10-K filing and multiple 8-K filings after a certain date.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"5.0.3","pypi_latest":"5.1.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.3,"avg_import_s":0.98,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.88,"mem_mb":15.4,"disk_size":"21.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.63,"mem_mb":15.4,"disk_size":"22M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.06,"mem_mb":16.9,"disk_size":"23.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.89,"mem_mb":16.9,"disk_size":"24M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.21,"mem_mb":17.1,"disk_size":"15.5M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":1.16,"mem_mb":17.1,"disk_size":"16M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.28,"mem_mb":18,"disk_size":"15.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":1.19,"mem_mb":18,"disk_size":"16M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.79,"mem_mb":14.8,"disk_size":"20.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"sec-edgar-downloader","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.7,"import_time_s":0.7,"mem_mb":14.8,"disk_size":"21M"}]}}