Skip to content

Spaw vs ip-api

ip-api is a geolocation JSON API with a free, non-commercial, HTTP-only endpoint limited by request rate, and a Pro subscription that adds HTTPS, unlimited queries and commercial use; its answer carries one proxy flag, one hosting flag and one mobile flag beside the location and network fields.

The table uses ip-api's public pricing and documentation pages as checked on 2026-09-12, and Spaw's own pricing page. A row those pages carry no value for is marked "not on the pages read" rather than guessed at, and that is a statement about the reading and not about what ip-api publishes.

  spaw ip-api
Pricing modelPay-as-you-go credit packs whose credits never expire, or optional plans, billed monthly or yearly, that deposit the same credits every month for less and roll unused plan credits over up to three months' allowance; both through Stripe Checkout. One credit buys five answered IP lookupsTwo tiers. The free endpoint: "Our endpoints are limited to 45 HTTP requests per minute from an IP address" and "We do not allow commercial use of the free endpoint". The Pro service: "€13.3 per month, when paying for 12 months", with "Unlimited requests", "SSL (HTTPS)", "Commercial use allowed" and a "99.9% SLA" ("If the general API uptime falls below 99.9% in a month, we will automatically extend your subscription for 10 days").
Free tier100 free credits every month, no card requiredThe free endpoint, for non-commercial use only: 45 requests per minute per address over HTTP ("256-bit SSL encryption is not available for this free API")
Price per 1,000 at about 10k$1.80 per 1,000 IP lookups at 5 to the credit (Starter pack: 1,000 credits for $9), or $1.40 on the Starter monthly plan (1,000 credits for $7 a month)not on the pages read
Price per 1,000 at about 100k$1.56 per 1,000 IP lookups at 5 to the credit (Growth pack: 5,000 credits for $39), or $1.16 on the Growth monthly plan (5,000 credits for $29 a month)not on the pages read
Addresses no feed covered billedOne credit buys five answered addresses whatever their flags say; a flag no feed could evaluate answers null rather than false, and the answer costs the samenot on the pages read
Reserved and private ranges billedNo: reserved, private, loopback, CGNAT, documentation and multicast ranges answer reason reserved_range and are free, unallocated space is free, and so are repeats within 7 daysnot on the pages read
Feeds behind the flagsPublic feeds, each named in the answer with the date it was synced: DB-IP Lite and RFC 8805 geofeeds for location, the five registries' delegated statistics for allocation, Spamhaus DROP and ASN-DROP and abuse.ch Feodo Tracker for blocklists, the Tor Project's exit list and Onionoo, the Mullvad, NordVPN and Private Internet Access server lists plus the open X4BNet lists, Apple's iCloud Private Relay egress list, the cloud providers' own published ranges, and the verification files Google, Microsoft, OpenAI, Perplexity, DuckDuckGo and Ahrefs publish for their crawlers.Not published as feeds. The answer carries three flags, each described in one line: mobile ("Mobile (cellular) connection"), proxy ("Proxy, VPN or Tor exit address") and hosting ("Hosting, colocated or data center"); the pages do not say where they come from.
Refresh cadenceEvery feed re-syncs daily, the botnet command-and-control list hourly, and the geofeed crawl weekly. Each response names every dataset it consulted with the date it was last synced, and /status lists them all."We update our database as soon as we have new information about an IP block"
Geolocation sourceThe DB-IP Lite database, overridden wherever the operator publishes the location itself — an RFC 8805 geofeed, Apple's relay list, a VPN provider's server list. location_source says which answered, and location_confidence is graded from a weekly accuracy report rather than asserted.Its own database; the pages name no source. Location fields: continent, continentCode, country, countryCode, region, regionName, city, district, zip, lat, lon, timezone, offset, currency, isp, org, as, asname and reverse.
Bulk limit100,000 addresses per bulk job, with an HMAC-signed completion webhooknot on the pages read
Batch API1,000 addresses per synchronous request; repeats inside the list are looked up onceThe batch endpoint takes "up to 100 IP addresses or objects" per request and is "limited to 15 requests per minute from an IP address"
Rate limit50 requests per second per key on the IP endpoints45 requests per minute per address on the free endpoint, 15 per minute for batch; "Unlimited requests" on Pro
Official SDKsPython, Node.js, PHPnot on the pages read
Data retentionNo history row and no log line carrying the address. What a lookup leaves is keyed and never holds the address: the 7-day marker that makes a repeat free and, under the same keyed hash, the count behind seen_by_you; privacy: true skips both. The account's own outcome reports are kept as salted hashes for 90 days. Bulk input lists and result files are deleted with the job after 30 days.not on the pages read

checked 2026-09-12 · sources: ip-api documentation, ip-api batch endpoint, ip-api Pro

When ip-api fits better

Non-commercial projects that fit under 45 requests a minute, and small commercial ones that want a flat, unlimited subscription over per-lookup pricing.

  • The free endpoint is HTTP only and excludes commercial use; HTTPS and commercial use are what Pro sells
  • Pro is a flat subscription with unlimited queries rather than a quota
  • Proxy, VPN and Tor are folded into one `proxy` flag
  • Database updates are described as immediate, "as soon as we have new information about an IP block"

When Spaw fits better

Developers who want every public IP feed compiled, dated and named for them, with a risk score whose weights are published so it can be recomputed or ignored.

  • ip-api answers one `proxy` flag for proxy, VPN and Tor together; Spaw answers is_tor, is_vpn, is_relay and is_corporate_proxy separately, names the provider when its own list has the address, and dates the feed it read
  • ip-api's free endpoint excludes commercial use and HTTPS; Spaw's free monthly credits go through the same HTTPS API as paid lookups. Spaw sells pack credits that never expire at five IP lookups to the credit, and reserved, private, documentation and unallocated ranges are free
  • Every dataset behind a Spaw IP answer is a public feed named in the response with the date it was synced, and the risk score is a published sum of weights anyone can recompute
  • Spaw applies your own allow and deny lists inside every answer (an allow-list hit scores 0, a deny-list hit 100) and counts your own lookups of an address; neither is a field the other vendor's pages describe

Questions

Does Spaw charge for addresses its feeds do not cover?

Spaw bills per answered address, five to the credit: the answered lookup that opens a block costs 1 credit and the next four cost nothing. Reserved, private, loopback, CGNAT, documentation and multicast ranges answer reason reserved_range and are free, unallocated space is free, and so is a repeat of the same address within seven days. A flag no feed could evaluate answers null rather than false: the address is still billed, and the null tells you the signal was not checked instead of pretending it was. ip-api does not publish how it bills them.

Can I run a log file or an export through Spaw?

Yes. A bulk run takes up to 100,000 addresses from the dashboard or the API and returns one row per input address, in input order, with every flag, the risk score and the signals that made it. Five answered addresses cost a credit, repeats inside the list are looked up once, reserved ranges cost nothing, and the finish is announced on an HMAC-signed webhook.

Is there a free tier?

Every Spaw account receives 100 free credits at the start of each month with no card on file, and unused free credits accumulate. ip-api offers: The free endpoint, for non-commercial use only: 45 requests per minute per address over HTTP ("256-bit SSL encryption is not available for this free API").

Try Spaw on your own list

Free credits every month, no card. Upload a list, keep your columns, and download only the rows you want. See the pricing page for every rule, or the ip-api alternatives.

Get your API key

ip-api is a trademark of its owner. Spaw is not affiliated with it. Markdown version: /compare/ip-api.md