# Spaw vs ipapi: IP intelligence API comparison

How Spaw and ipapi compare on pricing, billing rules, the feeds behind each flag and limits, from ipapi's public pages checked on 2026-09-12. Corrections: support@spaw.co.

| | Spaw | ipapi |
| --- | --- | --- |
| Pricing model | Pay-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 lookups | Monthly plans by lookup quota: Starter "$15 billed monthly" for 60,000 lookups, Professional "$25 billed monthly" for 150,000, Business "$49 billed monthly" for 500,000, Enterprise "$99 billed monthly" for 2,000,000, Premium "$199 billed monthly" for 6,000,000, Ultimate "$399 billed monthly" for 15,000,000; annual billing is 20% less. |
| Free tier | 100 free credits every month, no card required | A free trial of "up-to 1000 IP lookups in a day" (about 30,000 a month), "for testing & development purposes" and "Not for production use" |
| 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 billed | One 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 same | not on the pages read |
| Reserved and private ranges billed | No: 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 days | not on the pages read |
| Feeds behind the flags | Public 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. | None: the documented answer carries no proxy, VPN, Tor, hosting or threat field. The pricing page names the data behind the location as "IP geolocation by DB-IP" and the "IP2Location LITE database". |
| Refresh cadence | Every 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. | not on the pages read |
| Geolocation source | The 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. | DB-IP and IP2Location LITE, per the pricing page's data credits. Fields: ip, version, city, region, region_code, country_code, country_code_iso3, country_name, country_capital, country_tld, continent_code, in_eu, postal, latitude, longitude, latlong, timezone, utc_offset, country_calling_code, currency, currency_name, languages, country_area, country_population, asn, org, and a hostname add-on in beta. |
| Bulk limit | 100,000 addresses per bulk job, with an HMAC-signed completion webhook | "Bulk IP lookup" is listed as a feature of the paid plans; no size is published |
| Batch API | 1,000 addresses per synchronous request; repeats inside the list are looked up once | not on the pages read |
| Rate limit | 50 requests per second per key on the IP endpoints | Not published as a number; a call over quota answers a 429 with reason "RateLimited" |
| Official SDKs | Python, Node.js, PHP | not on the pages read |
| Data retention | No 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. | "IP queries stored in logs" under the standard option; the pricing page offers a no-logging arrangement on request |

## When ipapi fits better

Teams that need country, city, currency and network facts on a predictable monthly quota and do not need any anonymity or threat signal.

- The pricing page credits DB-IP and the IP2Location LITE database as its sources
- The free tier is a trial: "Not for production use"
- No proxy, VPN, Tor or datacenter field is documented
- Queries are stored in logs unless a no-logging arrangement is made

## 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.

- ipapi.co and Spaw both read the DB-IP database for location; Spaw adds forty-odd public feeds on top of it (clouds, VPN exits, Tor, relay, blocklists, crawlers, registries) and answers each as a tri-state flag with the feed dated
- ipapi.co stores queries in logs under its standard option; Spaw stores nothing about an IP lookup beyond a keyed seven-day repeat marker, and privacy mode skips even that
- ipapi.co sells a monthly quota that resets; 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

## 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. ipapi 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. ipapi offers: A free trial of "up-to 1000 IP lookups in a day" (about 30,000 a month), "for testing & development purposes" and "Not for production use".

## Sources (checked 2026-09-12)

- [ipapi.co pricing](https://ipapi.co/pricing/)
- [ipapi.co API documentation](https://ipapi.co/api/)

ipapi is a trademark of its owner. Spaw is not affiliated with it.

Reference: https://spaw.co/compare/ipapi
