Skip to main content

Is PyPI Down?

No — PyPI is up

Reachable from all 8 checked regions

Average response time: 30ms

Last checked · checks run every 6 hours

Official status page: https://status.python.org

PyPI uptime

100%
Last 7 days
100%
Last 30 days
100%
Last 90 days
51ms
Avg response, 30 days

Measured from multiple regions every 6 hours. Percentages count only checks that returned an availability answer — 67 days measured so far. A dash means that window does not yet hold enough measured days to publish a figure.

30-day history

67-day clean streak
Sep 14: 100.00% uptime, 31 checks
Sep 15: 100.00% uptime, 31 checks
Sep 16: 100.00% uptime, 32 checks
Sep 17: 100.00% uptime, 32 checks
Sep 18: 100.00% uptime, 31 checks
Sep 19: 100.00% uptime, 32 checks
Sep 20: 100.00% uptime, 32 checks
Sep 21: 100.00% uptime, 32 checks
Sep 22: 100.00% uptime, 32 checks
Sep 23: 100.00% uptime, 32 checks
Sep 24: 100.00% uptime, 32 checks
Sep 25: 100.00% uptime, 32 checks
Sep 26: 100.00% uptime, 32 checks
Sep 27: 100.00% uptime, 32 checks
Sep 28: 100.00% uptime, 32 checks
Sep 29: 100.00% uptime, 32 checks
Sep 30: 100.00% uptime, 30 checks
Oct 1: 100.00% uptime, 29 checks
Oct 2: 100.00% uptime, 32 checks
Oct 3: 100.00% uptime, 32 checks
Oct 4: 100.00% uptime, 32 checks
Oct 5: 100.00% uptime, 32 checks
Oct 6: 100.00% uptime, 32 checks
Oct 7: 100.00% uptime, 32 checks
Oct 8: 100.00% uptime, 32 checks
Oct 9: 100.00% uptime, 32 checks
Oct 10: 100.00% uptime, 32 checks
Oct 11: 100.00% uptime, 32 checks
Oct 12: 100.00% uptime, 32 checks
Oct 13: 100.00% uptime, 32 checks
Sep 14 Today
No downtime Partial Downtime Not measurable No data

Reachability by region

Each region runs its own request from a different part of the world. A service can be up for one continent and down for another, which is usually the first sign of a routing or CDN problem.

ams
9ms
DNS 0ms TCP 1ms TLS 3ms TTFB 8ms
arn
8ms
DNS 1ms TCP 0ms TLS 4ms TTFB 8ms
cdg
10ms
DNS 0ms TCP 1ms TLS 4ms TTFB 9ms
ord
10ms
DNS 0ms TCP 1ms TLS 4ms TTFB 10ms
sin
12ms
DNS 0ms TCP 1ms TLS 3ms TTFB 10ms
sjc
34ms
DNS 0ms TCP 8ms TLS 11ms TTFB 31ms
syd
7ms
DNS 0ms TCP 0ms TLS 3ms TTFB 7ms
yyz
152ms
DNS 64ms TCP 13ms TLS 54ms TTFB 147ms

What PyPI does

PyPI, the Python Package Index, is where Python packages are published and where pip downloads them from. Package files are served from files.pythonhosted.org behind a CDN. Almost every Python build, container image and CI pipeline reaches PyPI at some point, so an outage stops deployments and test runs across projects that have nothing else in common.

What an outage looks like

The Python Infrastructure status page tracks pypi.org and files.pythonhosted.org separately, each split into backends, CDN and redirects. That split matters: the website can load while package downloads fail, or the index can respond while file fetches time out. In practice a PyPI incident appears as pip install hanging or failing partway through CI rather than as anything a person sees in a browser.

What to do about it

Check status.python.org, which covers pypi.org, files.pythonhosted.org, python.org and docs.python.org as separate components. If only the CDN or file hosting is affected, retrying sometimes succeeds from a different edge location. For builds, a local package mirror or cache removes the dependency entirely, which is the standard answer for teams whose deployments cannot wait out a PyPI incident.

Is it down for everyone, or just you?

If this page says PyPI is up but it is not loading for you, the problem is between you and them. Run a check against any URL from up to 17 cities across three regions to find out where it breaks.

Test it yourself

Related services

PyPI outage FAQ

My pip install is failing. Is PyPI down?
Check status.python.org first, and look at pypi.org and files.pythonhosted.org separately, because a failure fetching a package file is a different component from the index itself. If both read operational, the more common causes are your own network, a proxy, a pinned version that no longer exists, or a package that was removed. The error text usually distinguishes them.
Does a PyPI outage break running applications?
No. Applications already installed and running do not contact PyPI. What breaks is anything that installs packages: CI pipelines, container builds, deployments and fresh environment setup. That is why a PyPI incident can be invisible in production while stopping every deploy, and why the impact lands on build systems rather than on end users.
Why does the PyPI website work when downloads fail?
They are different components. The status page lists pypi.org with its own backends and CDN, and files.pythonhosted.org separately for files and redirects. Package downloads go to the file host, so its CDN can be degraded while the web interface serves normally. Browsing a package page successfully tells you very little about whether pip will succeed.
How do I keep builds working during a PyPI outage?
Run a local mirror or a caching proxy so builds pull from your own infrastructure rather than reaching PyPI on every run. Pinning versions and vendoring wheels into the build image achieves something similar for a single project. Both are set up before an incident rather than during one, which is why PyPI outages hurt teams that have not done it.

How we measure this

  • We request PyPI's public endpoint every 6 hours from Fly.io regions across six continents — the most recent check ran from 8 of them.
  • A region counts as down only when it gets no usable HTTP response. A 403 or 429 means the origin answered and refused us, which we report as blocked, never as an outage.
  • A single failing region is treated as probe noise. We only change the verdict when two consecutive cycles agree.
  • Response times average only the regions that actually served the page, so a timeout never inflates the number.
  • Where PyPI publishes an official status feed we read it too. An all-clear from the vendor can soften an unconfirmed degradation; a vendor-declared outage only worsens our verdict when our own checks corroborate it.

Get alerted when PyPI goes down

This page refreshes every 6 hours. Your own monitors run as often as every 30 seconds, from up to 17 cities across three regions, and tell you the moment something breaks.

Start Free Monitoring
Free plan available No credit card required