{"openapi":"3.1.0","info":{"title":"PyPI Download Stats API","version":"1.0.0","description":"Live PyPI (Python Package Index) download analytics from pypistats.org — no key, nothing stored. The adoption view of a Python package: how much it is downloaded, the daily trend, and the breakdown by Python version and operating system, distinct from the PyPI registry-metadata API in the catalogue (which describes a package — this measures how much the community actually uses it). The recent endpoint returns the headline download counts: last day, last week and last month. The overall endpoint returns the daily download timeline so you can chart growth. The python endpoint breaks downloads down by Python version, showing which versions the package's users are actually on. The system endpoint breaks downloads down by operating system — Linux, Windows and macOS. Build package-popularity dashboards, dependency-adoption trackers, \"which Python version should we still support\" tools and ecosystem-trend widgets on top of real PyPI download data. Look up any package by its PyPI name (requests, numpy, flask); names are normalised to lowercase and the version and system splits include each category's share of total downloads.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/pypistats-api","description":"oanor gateway"}],"tags":[{"name":"Recent"},{"name":"Overall"},{"name":"Python"},{"name":"System"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/recent":{"get":{"operationId":"get_v1_recent","tags":["Recent"],"summary":"Headline download counts — day, week, month","description":"","parameters":[{"name":"package","in":"query","required":true,"description":"PyPI package name","schema":{"type":"string"},"example":"requests"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"pypistats.org","package":"requests","last_day":63643270,"last_week":323515989,"last_month":1572094434},"meta":{"timestamp":"2026-06-12T01:42:25.210Z","request_id":"b664d43d-81b3-4fc4-98f8-bea3b7bd5d2a"},"status":"ok","message":"Recent downloads retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/overall":{"get":{"operationId":"get_v1_overall","tags":["Overall"],"summary":"Daily download timeline","description":"","parameters":[{"name":"package","in":"query","required":true,"description":"PyPI package name","schema":{"type":"string"},"example":"requests"},{"name":"limit","in":"query","required":false,"description":"Days (default 30, max 180)","schema":{"type":"string"},"example":"30"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":30,"source":"pypistats.org","mirrors":false,"package":"requests","timeline":[{"date":"2026-05-12","downloads":64191630},{"date":"2026-05-13","downloads":61920814},{"date":"2026-05-14","downloads":61120946},{"date":"2026-05-15","downloads":57961455},{"date":"2026-05-16","downloads":41320667},{"date":"2026-05-17","downloads":41659961},{"date":"2026-05-18","downloads":59418023},{"date":"2026-05-19","downloads":62083507},{"date":"2026-05-20","downloads":61546528},{"date":"2026-05-21","downloads":63123361},{"date":"2026-05-22","downloads":57666405},{"date":"2026-05-23","downloads":40837194},{"date":"2026-05-24","downloads":41758740},{"date":"2026-05-25","downloads":51802211},{"date":"2026-05-26","downloads":56984444},{"date":"2026-05-27","downloads":59213128},{"date":"2026-05-28","downloads":58828468},{"date":"2026-05-29","downloads":56140051},{"date":"2026-05-30","downloads":39212546},{"date":"2026-05-31","downloads":37648190},{"date":"2026-06-01","downloads":55389898},{"date":"2026-06-02","downloads":59776323},{"date":"2026-06-03","downloads":61279504},{"date":"2026-06-04","downloads":61886081},{"date":"2026-06-05","downloads":58313380},{"date":"2026-06-06","downloads":41038616},{"date":"2026-06-07","downloads":39656021},{"date":"2026-06-08","downloads":59493148},{"date":"2026-06-09","downloads":61371554},{"date":"2026-06-11","downloads":63643270}]},"meta":{"timestamp":"2026-06-12T01:42:26.267Z","request_id":"a8b7a4c3-3a71-47e8-82fb-e15450601e21"},"status":"ok","message":"Overall timeline retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/python":{"get":{"operationId":"get_v1_python","tags":["Python"],"summary":"Downloads by Python version","description":"","parameters":[{"name":"package","in":"query","required":true,"description":"PyPI package name","schema":{"type":"string"},"example":"requests"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"pypistats.org","package":"requests","total_downloads":7546740025,"by_python_version":[{"downloads":1970972772,"share_pct":26.12,"python_version":"3.12"},{"downloads":1869564711,"share_pct":24.77,"python_version":"3.11"},{"downloads":1169111483,"share_pct":15.49,"python_version":"3.10"},{"downloads":878762193,"share_pct":11.64,"python_version":"3.13"},{"downloads":500312994,"share_pct":6.63,"python_version":"3.9"},{"downloads":363479584,"share_pct":4.82,"python_version":"3.14"},{"downloads":286303558,"share_pct":3.79,"python_version":"3.8"},{"downloads":270750601,"share_pct":3.59,"python_version":"3.7"},{"downloads":159042613,"share_pct":2.11,"python_version":"null"},{"downloads":55087710,"share_pct":0.73,"python_version":"3.6"},{"downloads":22140987,"share_pct":0.29,"python_version":"2.7"},{"downloads":607715,"share_pct":0.01,"python_version":"3.5"},{"downloads":546983,"share_pct":0.01,"python_version":"3.15"},{"downloads":48395,"share_pct":0,"python_version":"3.4"},{"downloads":7014,"share_pct":0,"python_version":"3.16"},{"downloads":381,"share_pct":0,"python_version":"3.2"},{"downloads":291,"share_pct":0,"python_version":"3.3"},{"downloads":30,"share_pct":0,"python_version":"2.6"},{"downloads":6,"share_pct":0,"python_version":"3.1"},{"downloads":4,"share_pct":0,"python_version":"2.8"}]},"meta":{"timestamp":"2026-06-12T01:42:26.740Z","request_id":"33dc3a91-364f-480f-9031-dc4db50187e2"},"status":"ok","message":"Python breakdown retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/system":{"get":{"operationId":"get_v1_system","tags":["System"],"summary":"Downloads by operating system","description":"","parameters":[{"name":"package","in":"query","required":true,"description":"PyPI package name","schema":{"type":"string"},"example":"requests"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"pypistats.org","package":"requests","by_system":[{"system":"Linux","downloads":7168426068,"share_pct":94.99},{"system":"Windows","downloads":252156979,"share_pct":3.34},{"system":"Darwin","downloads":89983560,"share_pct":1.19},{"system":"null","downloads":34069391,"share_pct":0.45},{"system":"other","downloads":2104027,"share_pct":0.03}],"total_downloads":7546740025},"meta":{"timestamp":"2026-06-12T01:42:26.978Z","request_id":"e3828ca3-20ce-49b0-a075-dfebaac10e62"},"status":"ok","message":"System breakdown retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Look up a package by its PyPI name (package=requests, numpy, flask). Names are normalised to lowercase. Version and system breakdowns are totalled over the available ~180-day window with each category's share of total downloads.","source":"pypistats.org public API (live)","service":"pypistats-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/python":"Downloads broken down by Python version (package=requests).","GET /v1/recent":"Headline download counts — last day, week and month (package=requests).","GET /v1/system":"Downloads broken down by operating system (package=requests).","GET /v1/overall":"Daily download timeline (package=requests, limit=30, max 180)."},"description":"Live PyPI (Python Package Index) download analytics from pypistats.org — the adoption view of a Python package. recent = the headline download counts (last day, last week, last month); overall = the daily download timeline; python = the breakdown by Python version (which versions the package's users are on); system = the breakdown by operating system (Linux, Windows, macOS). Live, no key, nothing stored. Distinct from the PyPI registry-metadata API — this measures how much the community actually uses a package.","upstream_status":"ok","requests_last_month":1572094434},"meta":{"timestamp":"2026-06-12T01:42:27.064Z","request_id":"bbbed346-54ea-4865-8d3f-bbdc936bacbf"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":22000,"rps_limit":3,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":520,"monthly_call_quota":300000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1520,"monthly_call_quota":1250000,"rps_limit":25,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":3480,"monthly_call_quota":4400000,"rps_limit":55,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/pypistats-api"}