{"id":23642,"library":"duckdb-extension-httpfs","title":"DuckDB HTTPFS Extension","description":"Pip-installable DuckDB httpfs extension for reading/writing remote files via HTTP(S) and S3. Version 1.5.1 is the latest, compatible with DuckDB 1.5.1. Releases track DuckDB versions. Development is active.","status":"active","version":"1.5.1","language":"python","source_language":"en","source_url":"https://github.com/santosh-d3vpl3x/duckdb_extensions","tags":["duckdb","extension","httpfs","s3","parquet"],"install":[{"cmd":"pip install duckdb-extension-httpfs==1.5.1","lang":"bash","label":"Install httpfs extension"},{"cmd":"pip install duckdb duckdb-extension-httpfs","lang":"bash","label":"Install DuckDB with httpfs"}],"dependencies":[{"reason":"The extension must be loaded into a DuckDB database connection.","package":"duckdb","optional":false}],"imports":[{"note":"The extension is not a Python module; use duckdb.load_extension() to register it.","wrong":"from duckdb_extension_httpfs import httpfs","symbol":"httpfs","correct":"import duckdb; duckdb.load_extension('httpfs')"}],"quickstart":{"code":"import duckdb\n\nduckdb.load_extension('httpfs')\n\ndb = duckdb.connect()\ndb.execute(\"\"\"\nSET s3_access_key_id = 'ACCESS_KEY';\nSET s3_secret_access_key = 'SECRET_KEY';\nSET s3_region = 'us-east-1';\nCREATE TABLE test AS SELECT * FROM read_parquet('s3://bucket/file.parquet')\n\"\"\")\nprint(db.execute('SELECT COUNT(*) FROM test').fetchone())","lang":"python","description":"Load the httpfs extension and query S3 data. Replace ACCESS_KEY/SECRET_KEY with your credentials."},"warnings":[{"fix":"Upgrade to Python 3.9+ or use duckdb-extension-httpfs==1.3.2 for Python 3.8 support.","message":"Python 3.8 is no longer supported starting from version 1.4.0. Requires Python >=3.9.","severity":"breaking","affected_versions":">=1.4.0"},{"fix":"Use the same DuckDB and duckdb-extension-httpfs version (e.g., both 1.5.1).","message":"The extension version must exactly match the DuckDB major.minor version (e.g., both 1.5.x). Mixing versions (e.g., httpfs 1.5.0 with DuckDB 1.4.4) will cause load failures.","severity":"gotcha","affected_versions":"all"},{"fix":"Use duckdb.load_extension('httpfs') after importing duckdb.","message":"Direct Python module import (from duckdb_extension_httpfs import ...) was never officially supported. The only supported way is duckdb.load_extension('httpfs').","severity":"deprecated","affected_versions":"all"},{"fix":"Set S3 configuration via SET s3_access_key_id = '...'; SET s3_secret_access_key = '...'; SET s3_region = '...'; in the session.","message":"S3 credentials are set with session-level SET statements, not using environment variables by default. Forgetting to set s3_access_key_id/s3_secret_access_key causes permission errors.","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":"Replace 'from duckdb_extension_httpfs import httpfs' with 'import duckdb; duckdb.load_extension('httpfs')'.","cause":"Trying to import the extension as a Python module instead of loading it with duckdb.load_extension().","error":"ImportError: cannot import name 'httpfs' from 'duckdb_extension_httpfs'"},{"fix":"Install the matching duckdb-extension-httpfs version (e.g., pip install duckdb-extension-httpfs==1.5.1) and ensure DuckDB is same version.","cause":"DuckDB version does not match the extension version, or the extension is not installed.","error":"IO Error: Failed to download extension \"httpfs\" at URL \"https://extensions.duckdb.org/...\""},{"fix":"Use the official DuckDB Python wheel and install the corresponding extension wheel; check platform support on https://github.com/santosh-d3vpl3x/duckdb_extensions.","cause":"Extension not built for the current platform (e.g., running DuckDB from source or unsupported OS).","error":"Invalid Input Error: Extension \"httpfs\" is not available on this platform"},{"fix":"Set correct s3_access_key_id, s3_secret_access_key, and s3_region before running queries, or configure IAM role if using AWS.","cause":"Missing or incorrect S3 credentials or permissions.","error":"HTTP Error: 403 Forbidden (s3)"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}