Skip to main content

Is PyPI Down?

No — PyPI is up

Reachable from all 8 checked regions

Average response time: 83ms

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
54ms
Avg response, 30 days

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

30-day history

16-day clean streak
Jul 25: no data
Jul 26: no data
Jul 27: no data
Jul 28: no data
Jul 29: no data
Jul 30: no data
Jul 31: no data
Aug 1: no data
Aug 2: no data
Aug 3: no data
Aug 4: no data
Aug 5: no data
Aug 6: no data
Aug 7: no data
Aug 8: 100.00% uptime, 24 checks
Aug 9: 100.00% uptime, 32 checks
Aug 10: 100.00% uptime, 32 checks
Aug 11: 100.00% uptime, 32 checks
Aug 12: 100.00% uptime, 32 checks
Aug 13: 100.00% uptime, 32 checks
Aug 14: 100.00% uptime, 32 checks
Aug 15: 100.00% uptime, 32 checks
Aug 16: 100.00% uptime, 40 checks
Aug 17: 100.00% uptime, 32 checks
Aug 18: 100.00% uptime, 44 checks
Aug 19: 100.00% uptime, 32 checks
Aug 20: 100.00% uptime, 32 checks
Aug 21: 100.00% uptime, 24 checks
Aug 22: 100.00% uptime, 32 checks
Aug 23: 100.00% uptime, 32 checks
Jul 25 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.

ewr
26ms
DNS 0ms TCP 6ms TLS 9ms TTFB 25ms
fra
9ms
DNS 0ms TCP 1ms TLS 3ms TTFB 8ms
gru
35ms
DNS 0ms TCP 8ms TLS 12ms TTFB 32ms
iad
10ms
DNS 0ms TCP 1ms TLS 4ms TTFB 9ms
jnb
573ms
DNS 0ms TCP 172ms TLS 174ms TTFB 520ms
lax
15ms
DNS 0ms TCP 2ms TLS 7ms TTFB 14ms
lhr
11ms
DNS 0ms TCP 1ms TLS 4ms TTFB 11ms
nrt
9ms
DNS 0ms TCP 1ms TLS 4ms TTFB 9ms
ord
9ms
DNS 0ms TCP 2ms TLS 3ms TTFB 9ms

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 all 18 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 — 8 of them answered the most recent check.
  • 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 the same 18 regions, and tell you the moment something breaks.

Start Free Monitoring
Free plan available No credit card required