Bulk IP Geolocation & Risk Lookup
Pricing
$0.50 / 1,000 ip resolveds
Bulk IP Geolocation & Risk Lookup
Bulk IP geolocation and risk lookup for IPv4/IPv6 addresses. Get country, city, ASN, ISP, timezone, VPN, proxy, Tor, datacenter, and risk score data.
Pricing
$0.50 / 1,000 ip resolveds
Rating
0.0
(0)
Developer
DataScraperES
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Resolve IPv4 and IPv6 addresses in bulk and export structured IP intelligence data. The Actor returns geolocation, network, timezone, and risk signals for each successfully resolved IP address.
Use it for fraud checks, traffic analysis, log enrichment, abuse review, geo-based routing, security workflows, and IP-based lead or user enrichment.
What You Get
For each resolved IP, the dataset includes:
- Location: country, country code, city, state or region, ZIP/postal code, latitude, longitude, timezone, and local time.
- Network: ASN, organization, and ISP.
- Risk signals: VPN, proxy, Tor, mobile network, datacenter, and risk score.
- Run status: success flag plus stable error codes and clear messages for uncharged failed inputs.
No external API key is required.
Pricing
This Actor uses pay-per-event pricing.
- Charged event:
ip-resolved - Billing unit: one successfully resolved public IP address
- Invalid, private, reserved, scoped, and failed upstream lookups are not charged as
ip-resolvedevents.
The final price is shown in the Apify Store pricing tab before you start a run.
Input
Provide a list of public IPv4 or IPv6 addresses.
{"ips": ["1.1.1.1", "8.8.8.8", "2001:4860:4860::8888"],"batchSize": 1000,"timeoutSecs": 30,"maxRetries": 4,"deduplicate": true,"continueOnError": true}
Input Fields
| Field | Type | Default | Description |
|---|---|---|---|
ips | array of strings | required | Public IPv4 or IPv6 addresses to resolve. |
batchSize | integer | 1000 | Target inputs per batch. Large request URLs are split automatically. Maximum: 10000. |
timeoutSecs | integer | 30 | HTTP timeout for each request. |
maxRetries | integer | 4 | Retries for rate limits, temporary network errors, and server errors. |
deduplicate | boolean | true | Removes duplicate IPs before lookup. |
continueOnError | boolean | true | Keeps the run going after an IP-specific lookup failure. Infrastructure failures stop the run safely. |
With continueOnError enabled, valid public IPs continue processing while invalid, private, reserved, and IPv6 scope-qualified values are returned as uncharged error rows. A run containing no queryable public IPs writes the error rows and finishes with an error status.
Output
Results are saved to the default Apify Dataset. Each item represents one IP address.
Output Fields
| Field | Description |
|---|---|
ip | Resolved IP address. |
ok | true when the IP was resolved successfully. |
asn | Autonomous system number. |
organization | Network organization. |
isp | Internet service provider. |
country, countryCode | Country name and ISO country code. |
city, state, zipcode | City, region/state, and postal code. |
latitude, longitude | Geographic coordinates. |
timezone, localtime | Timezone and local time reported for the IP. |
isMobile | Whether the IP belongs to a mobile network. |
isVpn | Whether the IP is associated with VPN traffic. |
isTor | Whether the IP is associated with Tor. |
isProxy | Whether the IP is associated with proxy traffic. |
isDatacenter | Whether the IP belongs to a datacenter network. |
riskScore | Risk score returned by the provider. |
errorCode | Stable machine-readable reason for an uncharged failed input. |
errorStatus, errorMessage | Optional HTTP status and user-friendly error details. |
Common error codes include INVALID_IP, NON_PUBLIC_IP, UNSUPPORTED_SCOPE_ID, UPSTREAM_BAD_REQUEST, UPSTREAM_NOT_FOUND, MISSING_UPSTREAM_RESULT, and URL_TOO_LONG.
The default Key-value store also contains an OUTPUT summary with requested, normalized, queryable, processed, resolved, and failed-by-cause counts. It reports HTTP retries, rate limits, response-recovery attempts, safe URL splits, resumed run segments, completion state, and whether a spending limit or input-specific error stopped the run.
Example Output
{"ip": "8.8.8.8","ok": true,"asn": "AS15169","organization": "Google LLC","isp": "Google LLC","country": "United States","countryCode": "US","city": "Mountain View","state": "California","zipcode": "94043","latitude": 37.43903957944434,"longitude": -122.09837932325807,"timezone": "America/Los_Angeles","localtime": "2026-07-04T09:14:22","isMobile": false,"isVpn": false,"isTor": false,"isProxy": false,"isDatacenter": true,"riskScore": 0,"errorCode": null,"errorStatus": null,"errorMessage": null}
Notes
- Supports IPv4 and IPv6.
- Supports large lists with configurable batches and automatic URL-length-safe splitting.
- Uses retries and backoff for rate limits and temporary failures.
- Retries only omitted IPs when an upstream bulk response is incomplete.
- Never sends private, reserved, or IPv6 scope-qualified addresses to the upstream provider.
- Stops gracefully when the run reaches the configured Apify pay-per-event charge limit.
- Preserves progress across Apify migrations and run restarts.
- Stops on a persistent provider-wide failure instead of generating thousands of individual retry requests.
- Results can be exported from Apify as JSON, CSV, Excel, XML, or RSS.