--- layout: community_extension_doc title: Download Metrics description: How download metrics for DuckDB Community Extensions are collected and reported. --- ## What Do We Measure? We use an estimate provided by Cloudflare for the `INSTALL` events of Community Extensions (as well as regular extensions) that triggered downloads from the `http[s]://community-extensions.duckdb.org` site. We publish data about the total number of downloads, aggregated across DuckDB versions and platforms at the [`https://community-extensions.duckdb.org/downloads-last-week.json`](https://community-extensions.duckdb.org/downloads-last-week.json) endpoint. ## Analyzing Downloads An example query to return the list of community extensions sorted by descending number of downloads would be: ```sql UNPIVOT ( SELECT 'community' AS repository, * FROM 'https://community-extensions.duckdb.org/downloads-last-week.json' ) ON COLUMNS(* EXCLUDE (_last_update, repository)) INTO NAME extension VALUE downloads_last_week ORDER BY downloads_last_week DESC; ``` For example, to return the download counts for the weeks since January 4, 2026: ```sql PIVOT ( UNPIVOT ( FROM read_json([ printf( 'https://community-extensions.duckdb.org/download-stats-weekly/%s/%s.json', week.strftime('%Y'), week.strftime('%V').regexp_replace('^0', '') ) FOR week IN range(TIMESTAMP '2026-01-04', now()::TIMESTAMP, INTERVAL 1 WEEK) IF strftime(week, '%V') != '53' ], union_by_name := true) ) ON COLUMNS(* EXCLUDE _last_update) INTO NAME extension VALUE downloads ) ON date_trunc('day', _last_update::TIMESTAMP) USING any_value(downloads) ORDER BY extension; ```