SDKs
Markdown

Official Server SDKs

Eight production-ready server-side client libraries for Python, Node.js, Go, Rust, Java, .NET, Ruby and PHP.

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.

LanguagePackageRuntimeInstallStatus
PythonipscopePython 3.10+ (asyncio & sync)pip install ipscopeStable
Node.js@ipscope/sdk-nodeNode.js 18+, Bun, Deno & Edge Workersnpm install @ipscope/sdk-nodeStable
Gogithub.com/ipscope-io/ipscope-goGo 1.22+go get github.com/ipscope-io/ipscope-goStable
RustipscopeRust 1.75+ (2021 edition, Tokio async & blocking)cargo add ipscopeStable
Javaio.ipscope:ipscope-sdkJava 17+ (Java 21 Virtual Threads ready)io.ipscope:ipscope-sdk:1.0.0Stable
.NETIpScope.Sdk.NET 8.0+ (C# 12)dotnet add package IpScope.SdkStable
RubyipscopeRuby 3.1+ (Puma, Sidekiq & Falcon Fiber-safe)gem install ipscopeStable
PHPipscope/ipscope-phpPHP 8.2+ (PHP-FPM, FrankenPHP, RoadRunner & Swoole)composer require ipscope/ipscope-phpStable

# 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,048 entries by default) and automatically reused across lookupBatch calls so duplicate IPs in a batch never consume quota twice.
  • Constant-memory batch streaming: lookup_batch_stream / lookupBatchStream chunks arbitrarily large iterables into 100-IP requests with constant < 400 KB heap overhead.
  • Resilient retry policy: honours Retry-After headers on 429 and retries transient 502/503/504 errors 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.