Use case

PyPI and pip Testing on a US Carrier Line, Priced Hourly

Python packaging has a habit of working on the maintainer's machine and failing everywhere else. A wheel that resolves instantly from a fast office line turns into a long sdist build on a laptop tethered to a phone, and a project page that looks fine on a wide monitor loses its install command below the fold on a small screen. HourlyProxies rents you a dedicated US mobile line for two hours so you can see both. $2 on 4G, $3 on 5G, extendable by the hour up to four, and no plan to cancel afterwards.

Resolving and installing like a real user

Set pip's proxy option or the HTTPS_PROXY variable to the line's endpoint, clear the cache and install your package into a fresh virtual environment. Watch which dependencies come down as wheels and which fall back to source, how long the largest download takes on a consumer link, and whether any build step reaches out to a host that is slow or blocked from a US cellular network. The numbers you collect are the numbers a user on a phone hotspot in Miami would collect.

Run the same install on 4G and on 5G if you are curious. 4G usually gives 20 to 45 Mbps and 5G 50 Mbps and up, depending on signal, which brackets most home connections in the country.

Upload, then download it back

Publishing a release candidate through the line with your own account and token is a simple end-to-end check. Upload with twine or your build backend, then install the exact version from PyPI through the same proxy and import it. If the package data files are missing or the entry points are wrong, you find out in the next ten minutes rather than in a user's bug report. TestPyPI works the same way and is the better place for throwaway versions.

Per-address behavior and polite tooling

PyPI protects itself from abusive request patterns per source address, and so do the mirrors and CDN in front of it. If you maintain a tool that queries the JSON API for many projects, a dedicated line is where you tune its pace. Your requests are the only ones on that address, so a refusal is clearly about your tool, not about a neighbor. Add backoff, respect the headers, and keep volume modest. The line is not a way to run a crawler faster than the index allows.

The project page itself deserves a look from a phone: the description render, the badges, the sidebar links and the classifiers all shape whether someone installs your package.

How the meter works

Every line is a real SIM in a 4G or 5G modem we own in a US city, serving one customer at a time. The first two hours cost $2 on 4G or $3 on 5G, each additional hour costs the same, and a single purchase stops at four hours. It does not auto-renew. If you keep the line through the day, the paid hours count toward the $5 or $6 day price, and week and month plans exist for a longer job. You get HTTP(S) and SOCKS5 endpoints, unlimited data under a fair-use rule, rotation whenever you want it and a free move between cities.

Choose from New York, Boston, Chicago, Houston, Phoenix, Los Angeles, Miami and North Carolina, on AT&T, T-Mobile or Verizon, depending on stock.

  • Fresh-environment installs over a true consumer link
  • Publish, reinstall and import in one session
  • Tune JSON API tooling on an address that is yours alone
  • Four hours maximum, no renewal, no surprise charge

What we ask of you

Use your own PyPI account and your own projects. Do not mirror the index, do not inflate download statistics, and do not use rotation to get around a block. Bulk transfer of other people's packages is outside fair use. The line exists so you can watch your package behave on a real network, and that is what it is good at.

Setting up a PyPI proxy on HourlyProxies

  1. Buy a 4G or 5G line for two hours in the city closest to your users.
  2. Export HTTPS_PROXY with the line's HTTP endpoint and verify your public address.
  3. Create a fresh virtual environment and install your package with the cache disabled.
  4. Upload a release candidate and install it back through the proxy.
  5. Record the results and let the meter stop, or add an hour if a fix needs retesting.

PyPI proxy questions

Does pip work over SOCKS5?

Yes, with the socks extra of the requests library installed, or through an HTTP endpoint, which is simpler. Both are in your dashboard.

Will PyPI treat a mobile address differently?

It serves the same files. Any rate limiting it applies is per address, and on a dedicated line that address is used only by you.

Can I test a private index or a devpi server?

Yes. Point pip's index URL at it and the request leaves through the line, which doubles as a check of your index's access rules from outside.

Real US carrier IPs for PyPI

Dedicated 4G and 5G lines in eight US metros. Sticky sessions, unlimited rotation, HTTP(S) and SOCKS5. Plans from $2 for 2 hours or $5/day.

View plans See all locations

More HourlyProxies use cases

All HourlyProxies use cases →