Country Scraper
Spider read country.is in 122 ms without a browser and returned 45 lines of clean markdown, including sections like "Country", "Usage" and "Quick answers".
# CountryFree IP-to-country geolocation APICountry maps IP addresses to countries. It can also return city, continent, subdivision, postal code, coordinates, and ASN.api.country.is is free and requires no key. The app is open source and can be self-hosted.## UsageGET / Returns the country of the caller's IP.GET /{ip} Returns the country of a given IPv4 or IPv6 address.`curl https://api.country.is/77.1.2.3`POST / Look up multiple IPs in one request. Send a JSON array of up to 100 addresses.`curl https://api.country.is/ -d ‘["77.1.2.3","93.184.216.34"]’`?fields= Add extra fields to any lookup: `city`, `continent`, `subdivision`, `postal`, `location`, `asn`.`curl https://api.country.is/77.1.2.3?fields=city,continent,subdivision,postal,location,asn`GET /info Returns metadata, including when the data was last updated. Data refreshes every 24 hours.`curl https://api.country.is/info`A machine-readable OpenAPI spec is available.## ErrorsThe API returns standard HTTP status codes.`400` Invalid IP address or malformed request. `404` No data found for the given IP. `429` Rate limit exceeded. Try again shortly. ## Self-hostingRun your own instance with Docker.-e ACCOUNT_ID=YOUR_MAXMIND_ACCOUNT_ID \-e LICENSE_KEY=YOUR_MAXMIND_LICENSE_KEY \Get your credentials from MaxMind. For high-volume server-side use, consider self-hosting or querying MaxMind data directly.## Quick answersIs the API free for commercial use? Yes. Are there rate limits? No quotas. Infrastructure rate-limits to 10 requests per second per IP to prevent abuse. Where does the data come from? MaxMind GeoLite2, updated daily. Cloudflare geolocation is used when available. Do you log requests? No. Will the API keep running? Country has been running since 2015. For critical applications, self-host for full control. The same call, in code.
The capture above came back as markdown. These examples add a key, so you get browser rendering, proxies, and concurrency on country.is.
import { SpiderBrowser } from "spider-browser";
const spider = new SpiderBrowser({
apiKey: process.env.SPIDER_API_KEY!,
});
await spider.connect();
const page = spider.page!;
await page.goto("https://country.is");
// No selectors, no schema. Spider reads the page and names the fields.
const data = await page.scrape();
console.log(data);
await spider.close(); import { Spider } from "@spider-cloud/spider-client";
const spider = new Spider({ apiKey: process.env.SPIDER_API_KEY! });
const result = await spider.scrapeUrl("https://www.country.is", {
return_format: "markdown",
});
console.log(result); Ready for volume? Get an API key →
Fields you can pull.
Spider names these from the page. The capture above came back as markdown; the same
call with return_format: "json" returns them as keys.
What country.is costs to scrape.
The capture above cost $0.000028 to fetch. Pricing is $1 per GB of pre-transformation bandwidth plus $0.001 per CPU minute, so a page like this one lands at a fraction of a cent. Failed requests are billed at $0.
- Free balance on signup
- No card required to test
- Balance never expires
Run it keyless, no account
More International scrapers.
Mercado Libre Scraper
Extract product listings, seller ratings, pricing in local currencies, and shipping data from Mercado Libre.
Rakuten Scraper
Extract product listings, store ratings, cashback offers, and pricing data from Rakuten Japan marketplace.
Flipkart Scraper
Extract product listings, seller data, pricing in INR, and delivery estimates from Flipkart India store.
Start scraping country.is.
You already have the call. A key raises the rate limit and turns on browser rendering, proxies, and concurrency. Balance never expires, and top-ups go through secure checkout.