Skip to main content

llamaindex-proxyhat

Read the web in LlamaIndex through ProxyHat residential proxies — a web reader with rotating IPs, geo-targeting, and sticky sessions.

CI Compatible with llama-index-core latest PyPI License: MIT

[!TIP] Recommended proxies — ProxyHat residential IPs. Every feature in this package is tested end-to-end against ProxyHat and works great. First-class integration; also works with any proxy, or none.

Why

RAG pipelines that read the open web from datacenter IPs get blocked, rate-limited, and served bot-detection pages instead of content. This package routes LlamaIndex's web reads through ProxyHat's residential IPs (50M+ across 148+ countries) — a fresh IP per page by default, or one pinned IP for a whole multi-page load.

  • ProxyHatWebReader — a BaseReader whose load_data(urls) fetches each URL and returns Document objects for indexing, retrieval, or summarization.

Install

pip install llamaindex-proxyhat

llama-index-core is a peer — bring your own version (>=0.10), the same one your app and other LlamaIndex integrations already use.

Quick start

Load pages as Document objects:

from llamaindex_proxyhat import ProxyHatWebReader

# An API key auto-selects an active residential sub-user:
reader = ProxyHatWebReader(
    api_key="ph_your_api_key",
    country="us",
)

docs = reader.load_data(["https://example.com", "https://example.org"])

for doc in docs:
    print(doc.metadata["url"], doc.metadata["status_code"], len(doc.text))

Feed the documents straight into an index:

from llama_index.core import VectorStoreIndex

index = VectorStoreIndex.from_documents(docs)
answer = index.as_query_engine().query("What does the page say?")

Get an API key at proxyhat.com.

Credentials

Pass them explicitly or via environment variables — options win over env:

Option Env var Notes
api_key PROXYHAT_API_KEY Auto-selects an active sub-user with remaining traffic
sub_user PROXYHAT_SUBUSER Pick a specific sub-user by uuid or name (with an API key)
username PROXYHAT_USERNAME Explicit gateway proxy_username (skips the API)
password PROXYHAT_PASSWORD Explicit gateway proxy_password

Targeting

ProxyHatWebReader(
    api_key="ph_your_api_key",
    country="us",        # ISO code or "any" (default)
    region="california",
    city="new_york",
    filter="high",       # AI IP-quality tier
    sticky="30m",        # keep one IP across the whole load; omit for rotating
    protocol="http",     # or "socks5"
)

Each Document carries text (the response body) and metadata with url, status_code, and content_type.

Rotating vs sticky

By default the reader is rotating: each page is fetched over a new connection with a stable gateway username, so ProxyHat hands out a fresh residential IP per page. Set sticky (e.g. sticky="30m" or sticky=True) to pin one residential IP across every page in the load_data call — the right choice for paginated sites, logged-in sessions, or anything that must look like a single user.

How it works

ProxyHatWebReader subclasses BaseReader (llama_index.core.readers.base) and returns Document objects (llama_index.core). It resolves your gateway credentials once (via the official proxyhat SDK — an API key auto-picks an active sub-user, or you supply username/password directly), then builds a ProxyHat gateway connection URL with the SDK's targeting grammar and fetches each URL through it with httpx. Rotating loads reuse a stable username so the gateway rotates the IP per connection; sticky loads reuse one session id (a single httpx client) so every request exits from the same IP.

Publishing to the LlamaHub / LlamaIndex integrations registry is a planned follow-up.

License

MIT © ProxyHat

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llamaindex_proxyhat-0.1.1.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llamaindex_proxyhat-0.1.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file llamaindex_proxyhat-0.1.1.tar.gz.

File metadata

  • Download URL: llamaindex_proxyhat-0.1.1.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for llamaindex_proxyhat-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1b9da6118fecdd14e7091518ecce98f6c41067dfdbd14de69ddd88c1050468b2
MD5 2b1923dfa9a3f65a3c65656f02cb5f4c
BLAKE2b-256 2a6aa667e4d7fed230906e03c04a8662d3e9fc906ab91b312e7b9ba1e00d5e50

See more details on using hashes here.

Provenance

The following attestation bundles were made for llamaindex_proxyhat-0.1.1.tar.gz:

Publisher: ci.yml on ProxyHatCom/llamaindex-proxyhat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llamaindex_proxyhat-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for llamaindex_proxyhat-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2bfe53269ae1e8d3e78a6a7efbeb5ec6b17b1356683b290e2d66c6772a5b9659
MD5 fbd65a625617bdbde67636c35c36bbe9
BLAKE2b-256 cbce6aa6dc4f5f656e80de8f499ef9500874c410eba2c8361ee7508e592428e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for llamaindex_proxyhat-0.1.1-py3-none-any.whl:

Publisher: ci.yml on ProxyHatCom/llamaindex-proxyhat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page