Skip to main content

Official Python SDK for tierproxy — premium multi-provider proxy infrastructure for AI/ML pipelines.

Project description

tierproxy — Python SDK

🚧 Preview release. Gateway is not yet generally available. Join the waitlist at hello@tierproxy.com. SDK is functional but tierproxy doctor against a live gateway requires invitation.

PyPI version Python versions Downloads CI codecov License: Apache 2.0 OpenAPI 3.1 MCP compatible

Premium multi-provider proxy infrastructure for AI/ML pipelines. Built for engineers who measure cost, latency, and success rate twice — and write Python.

Install

pip install tierproxy

Quickstart — five-second flavor

import tierproxy
r = tierproxy.get("https://example.com", country="US")
print(r.text)

That's it. (Set TIERPROXY_API_KEY env var first.)

Three lines, persistent session

from tierproxy import TierProxy
with TierProxy() as g:
    print(g.me.get().client_id)
    r = g.get("https://example.com", country="US", session_id="s1")

Auto-pick the cheapest healthy upstream every request

g = TierProxy(routing="cheapest")  # also: "fastest", "most_reliable", "balanced"
g.get("https://example.com")     # picks via /v1/health/upstreams under the hood

Cost guardrails

g = TierProxy(
    monthly_budget_usd=200.0,    # raises BudgetExceededError before going over
)

Power-user knobs

import httpx
from tierproxy import TierProxy
from tierproxy.retry import RetryPolicy

g = TierProxy(
    api_key="tp_live_...",
    base_url="https://my-self-hosted-gw:8444",
    timeout=10.0,
    retry_policy=RetryPolicy(max_retries=5, retry_on_status=frozenset({500, 502})),
    http_client=httpx.Client(verify=False),  # custom transport
    user_agent_suffix="my-app/2.3",          # attribution
)

Raw modes (Playwright, curl, etc.)

from tierproxy import ProxyURL

p = ProxyURL(api_key="tp_live_...", country="US", mode="username_encoding")
print(p.http_url())  # http://customer-tp_live_...-cc-US:x@gw.tierproxy.com:443

How tierproxy compares

tierproxy Smartproxy SDK Bright Data SDK Oxylabs SDK DataImpulse
Multi-provider routing
Client-side smart selector (cost-aware)
Live usage streaming (SSE)
MCP server (Claude/Cursor/Cline)
OpenTelemetry built-in
Sync + async parity partial partial partial partial
AI/ML framework examples shipped 8 0 1 0 0
Type-safe (Pydantic v2 + mypy strict) partial
OpenAPI 3.1 spec
Pip-installable CLI (tierproxy doctor)
Per-request cost attribution (lazy)
JA3/JA4 TLS fingerprint rotation
Rate-limit learning + auto-failover
License Apache 2.0 proprietary proprietary proprietary proprietary

Features

  • Five-second quickstartimport tierproxy; tierproxy.get(url, country="US")
  • Layered API — five integration levels from one-liner to power-user knobs
  • Smart routingrouting="cheapest" auto-picks healthy upstream per request
  • Cost guardrailsmonthly_budget_usd= refuses requests that would exceed budget
  • Per-request cost attributionclient.cost_for(resp) returns USD; lazy 30s cache, no per-request overhead
  • Client-side response cachingcache_ttl=300, cache_max_response_size=262144 LRU with size cap
  • Multi-provider auto-failoverauto_failover=True retries with next-best upstream on 429/5xx
  • Rate-limit learningclient.rate_limits.get() surfaces gateway-aggregated 429s per target domain
  • JA3/JA4 TLS rotation — per-upstream fingerprint randomization (gateway side; see tls-fingerprint guide)
  • Cookie persistence — cookies stick to session_id across multi-step crawls
  • Streaming responsesclient.get(url, stream=True) returns iterator (large files, SSE)
  • Live SSE streamfor delta in g.usage.stream() tails month-to-date bytes
  • MCP servertierproxy-mcp exposes proxy as tools to Claude/Cursor/Cline
  • 8 framework integrations — LangChain, LlamaIndex, Crawl4AI, Playwright, Firecrawl, Browser-Use, CrewAI
  • OpenTelemetry opt-inpip install tierproxy[otel] for distributed tracing
  • Geo + sticky sessions — countries, cities, 1-1440min session pins
  • Dual URL syntax — headers (httpx/requests) AND username-encoding (Playwright)
  • Type-safe end-to-end — Pydantic v2 models, mypy strict, full IDE autocomplete

See examples/ for LangChain/LlamaIndex/Crawl4AI/Playwright and examples/levels.py for a runnable demo of every level.

Use with your favorite AI/agent framework

Framework Example Notes
LangChain with_langchain.py RAG document loaders through proxy
LlamaIndex with_llamaindex.py SimpleWebPageReader through proxy
Crawl4AI with_crawl4ai.py Playwright crawler + tierproxy
Firecrawl (hot) with_firecrawl.py Self-hosted Firecrawl + residential IPs
Browser-Use (hot) with_browser_use.py LLM-driven autonomous browser
CrewAI (hot) with_crewai.py Multi-agent scraper crew + cost-aware routing
Playwright with_playwright.py Direct Playwright with tierproxy
MCP (Claude/Cursor/Cline/Windsurf) (unique) mcp_claude_desktop.md Native tool integration via tierproxy-mcp

MCP server (Claude Desktop / Cursor / Cline / Windsurf)

pip install tierproxy[mcp]

Then add to your MCP client config:

{
  "mcpServers": {
    "tierproxy": {
      "command": "tierproxy-mcp",
      "env": { "TIERPROXY_API_KEY": "tp_live_..." }
    }
  }
}

Now your AI assistant can call fetch_url(url, country="US"), inspect health and usage, and route through the cheapest healthy upstream — no glue code, no httpx imports, no boilerplate.

Project details


Download files

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

Source Distribution

tierproxy-0.3.0.tar.gz (252.6 kB view details)

Uploaded Source

Built Distribution

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

tierproxy-0.3.0-py3-none-any.whl (45.2 kB view details)

Uploaded Python 3

File details

Details for the file tierproxy-0.3.0.tar.gz.

File metadata

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

File hashes

Hashes for tierproxy-0.3.0.tar.gz
Algorithm Hash digest
SHA256 562672b6b8ed23942c60df541e3ef1ef8f6b9e85c344cf1f476ee6bf6081e283
MD5 6e246f3631656e436a36f08359bee894
BLAKE2b-256 7fac5fe044fce91de9e681a2198114a33083226b575ea7fcba5dc1c0c0132cf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tierproxy-0.3.0.tar.gz:

Publisher: release.yml on tierproxy/python-sdk

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

File details

Details for the file tierproxy-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: tierproxy-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 45.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tierproxy-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dcebf7ad3fcbcc415b69b654f0a18254014083b486e4c69d953bf098d2a4c8ee
MD5 988a2379f446bc9991f3ce859ea8287b
BLAKE2b-256 d27295cc1f8a75cf36df4d34e3be6c1f5f3dc967ccb88943b61ae28ca2eac9aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for tierproxy-0.3.0-py3-none-any.whl:

Publisher: release.yml on tierproxy/python-sdk

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page