Skip to main content

langchain-proxmint

LangChain integration for Proxmint proxies: let an agent read web pages from residential, datacenter or 4G/5G mobile IPs, or load pages into Documents the same way. Pick the exit country, state, city, ZIP or ASN, and keep one IP for up to two hours when a site needs it.

  • ProxmintFetchTool: an agent tool. The agent passes a URL and, optionally, a country, and gets back the final URL, status, title and the page as readable text.
  • ProxmintLoader: a document loader that fetches a list of URLs into Documents.

Requests go straight from your machine to the Proxmint gateway (gw.proxmint.com). Nothing else sits in between, and bandwidth comes out of your own Proxmint account.

Install

pip install langchain-proxmint

Credentials

Create an API key under Settings in the Proxmint dashboard and export it:

export PROXMINT_API_KEY="pmk_..."

The key reads the proxy login for the product you choose (residential by default). You can pass the proxy login instead, with PROXMINT_USERNAME and PROXMINT_PASSWORD or the username / password arguments.

Use the tool in an agent

from langchain.agents import create_agent
from langchain_proxmint import ProxmintFetchTool

tool = ProxmintFetchTool(product="residential")

agent = create_agent("anthropic:claude-sonnet-5-5", tools=[tool])
agent.invoke({"messages": [{"role": "user", "content": "What does the front page of example.com say when visited from Germany?"}]})

Or call it directly:

print(tool.invoke({"url": "https://example.com", "country": "de"}))

Options on ProxmintFetchTool:

Option Default What it does
product "residential" residential, premium-residential, datacenter or mobile
country any Default exit country (two-letter code) when a call doesn't name one
state, city, zip_code, asn none Finer targeting; needs country
session_minutes none Keep one exit IP across calls for 1 to 120 minutes. Default: a new IP on every call
output "text" "text" for readable text, "html" for the raw page
max_chars 50000 Cut longer pages
timeout 60 Seconds per request

Gateway refusals (no bandwidth left, no IP matching the targeting, a blocked site) come back to the agent as a short message saying what to change, instead of an exception.

Load pages into Documents

from langchain_proxmint import ProxmintLoader

loader = ProxmintLoader(
    ["https://example.com", "https://example.org"],
    country="us",
    city="New York",
    session_minutes=30,  # every page from one IP
)
docs = loader.load()
print(docs[0].metadata)  # source, requested_url, status, title, content_type, country

Each URL gets a new IP unless session_minutes is set. Failed URLs are logged and skipped; pass continue_on_failure=False to raise instead.

Good to know

  • Web traffic works on destination ports 80, 443, 8080, 8443, 8888 and 8090 (port access).
  • A short list of sites, mostly banking and government, is refused by the network (blocked websites).
  • City, state, ZIP and ASN targeting meter at 2x on residential, datacenter and mobile (targeting).
  • Each product allows up to 2,000 concurrent connections.

Full guide: proxmint.com/docs/langchain. Pricing: proxmint.com/pricing. Bandwidth is billed per GB and never expires.

Development

uv run --group test pytest

The tests run offline against a stand-in for the gateway.

License

MIT

Metadata

Release files for langchain-proxmint 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langchain-proxmint 0.1.0
File Size Uploaded
langchain_proxmint-0.1.0.tar.gz 11.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for langchain-proxmint 0.1.0
File Interpreter ABI Platform
langchain_proxmint-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.2 kB

Release files / langchain_proxmint-0.1.0.tar.gz

Download URL langchain_proxmint-0.1.0.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7f541931d2124ddc2a2dc615e028fe625812fd13013eb9ccef7a304d44e1d653
BLAKE2b-256 checksum
How to use checksums
d71274a7153eef57a07d5c006d40257a78c46770b50755628f9de475ba3c8b5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / langchain_proxmint-0.1.0-py3-none-any.whl

Download URL langchain_proxmint-0.1.0-py3-none-any.whl
Size 11.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a204cdb09ae8c022aa8d9de06db019b0f5e78fc2bb9992278a88446fa28e063
BLAKE2b-256 checksum
How to use checksums
d5b3bbf140aba551d4d6156922467e056350252601a7fa78f53faf2791d98531
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release 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