The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Tierproxy listing page.
🚧 Preview release. Gateway is not yet generally available. Join the waitlist at hello@tierproxy.com. SDK is functional but
tierproxy doctoragainst a live gateway requires invitation.
Premium multi-provider proxy infrastructure for AI/ML pipelines. Built for engineers who measure cost, latency, and success rate twice — and write Python.
That's it. (Set TIERPROXY_API_KEY env var first.)
Every SDK error inherits from tierproxy.TierProxyError and carries a
request_id for support escalation:
See Errors reference for the full HTTP-status-to-exception mapping.
The SDK exposes its response models as JSON Schema and as pre-built tool definitions for Anthropic Claude and OpenAI function-calling:
See the AI integration guide
and the MCP server in
examples/mcp_claude_desktop.md.
| 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 |
import tierproxy; tierproxy.get(url, country="US")routing="cheapest" auto-picks healthy upstream per requestmonthly_budget_usd= refuses requests that would exceed budgetclient.cost_for(resp) returns USD; lazy 30s cache, no per-request overheadcache_ttl=300, cache_max_response_size=262144 LRU with size capauto_failover=True retries with next-best upstream on 429/5xxclient.rate_limits.get() surfaces gateway-aggregated 429s per target domainsession_id across multi-step crawlsclient.get(url, stream=True) returns iterator (large files, SSE)for delta in g.usage.stream() tails month-to-date bytestierproxy-mcp exposes proxy as tools to Claude/Cursor/Clinepip install tierproxy[otel] for distributed tracingSee examples/ for LangChain/LlamaIndex/Crawl4AI/Playwright and
examples/levels.py for a runnable demo of every level.
| 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 |
Then add to your MCP client config:
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.