Every official IPScope SDK wraps the REST API with zero-bloat transport, bounded O(1) in-memory LRU caching, automatic batch deduplication, memory-bounded streaming for 10,000+ IP lists, and exponential backoff with jitter on 429 and 5xx responses.
| Language | Package | Runtime | Install | Status |
|---|---|---|---|---|
| Python | ipscope | Python 3.10+ (asyncio & sync) | pip install ipscope | Stable |
| Node.js | @ipscope/sdk-node | Node.js 18+, Bun, Deno & Edge Workers | npm install @ipscope/sdk-node | Stable |
| Go | github.com/ipscope-io/ipscope-go | Go 1.22+ | go get github.com/ipscope-io/ipscope-go | Stable |
| Rust | ipscope | Rust 1.75+ (2021 edition, Tokio async & blocking) | cargo add ipscope | Stable |
| Java | io.ipscope:ipscope-sdk | Java 17+ (Java 21 Virtual Threads ready) | io.ipscope:ipscope-sdk:1.0.0 | Stable |
| .NET | IpScope.Sdk | .NET 8.0+ (C# 12) | dotnet add package IpScope.Sdk | Stable |
| Ruby | ipscope | Ruby 3.1+ (Puma, Sidekiq & Falcon Fiber-safe) | gem install ipscope | Stable |
| PHP | ipscope/ipscope-php | PHP 8.2+ (PHP-FPM, FrankenPHP, RoadRunner & Swoole) | composer require ipscope/ipscope-php | Stable |
# Compare a single lookup across languages
curl -sS "https://api.ipscope.io/v1/ip/198.51.100.7" \
-H "Authorization: Bearer $IPSCOPE_KEY"# What every official SDK guarantees
- Scoped strictly to IP intelligence: single IP (
/v1/ip/{ip}), caller IP (/v1/ip/me), batch (/v1/ip/batch), network CIDR (/v1/network/{cidr}), dataset catalog (/v1/datasets), and geolocation feedback (/v1/feedback). - Bounded O(1) LRU cache: hot IP addresses are served from memory (
2,048entries by default) and automatically reused acrosslookupBatchcalls so duplicate IPs in a batch never consume quota twice. - Constant-memory batch streaming:
lookup_batch_stream/lookupBatchStreamchunks arbitrarily large iterables into 100-IP requests with constant< 400 KBheap overhead. - Resilient retry policy: honours
Retry-Afterheaders on429and retries transient502/503/504errors with exponential backoff + jitter.
For air-gapped or local zero-latency lookups, our .mmdb files open directly in standard MaxMind readers in every language. See Reading MMDB.
Python SDK Python 3.10+ (asyncio & sync) ·
pip install ipscopeNode.js SDK Node.js 18+, Bun, Deno & Edge Workers · npm install @ipscope/sdk-nodeGo SDK Go 1.22+ · go get github.com/ipscope-io/ipscope-goRust SDK Rust 1.75+ (2021 edition, Tokio async & blocking) · cargo add ipscopeJava SDK Java 17+ (Java 21 Virtual Threads ready) · io.ipscope:ipscope-sdk:1.0.0.NET SDK .NET 8.0+ (C# 12) · dotnet add package IpScope.SdkRuby SDK Ruby 3.1+ (Puma, Sidekiq & Falcon Fiber-safe) · gem install ipscopePHP SDK PHP 8.2+ (PHP-FPM, FrankenPHP, RoadRunner & Swoole) · composer require ipscope/ipscope-php