# IP Geolocation & Intelligence Checker (`codescraper/ip-geolocation-checker`) Actor

Instantly look up a list of IPv4/IPv6 addresses. This fast actor scrapes detailed geolocation data including location (city, country), ASN, company info, security risks (VPN, proxy, TOR), timezone, currency, and country flag. Free users are limited to 10 IPs. You can enter your own api key also

- **URL**: https://apify.com/codescraper/ip-geolocation-checker.md
- **Developed by:** [CodeScraper](https://apify.com/codescraper) (community)
- **Categories:** Developer tools, AI, Other
- **Features:** Full permissions
- **Stats:** 23 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🌍 IP Geolocation & Intelligence Checker – Bulk IP Lookup

This **Apify actor** performs advanced IP intelligence lookups for any IPv4 or IPv6 address.
It returns **detailed geolocation, network, ASN, company info, security flags, timezone, currency, and domain associations** using **Abstract API IP Intelligence**.

Supports **single IPs** or **large bulk lists**, automatically handles missing data, and provides high-quality structured output.

***

### 🚀 What It Does

For every IP, the actor retrieves:

- 📍 **Location Details:** Country, region, city, coordinates
- 🛰️ **ASN Details:** ASN number, ISP name, type, domain
- 🏢 **Company Info:** Name, domain, and hosting type
- 🛡️ **Security Flags:** VPN, Proxy, TOR, Hosting, Relay, Abuse, Mobile
- 🌐 **Associated Domains:** Related / reverse-DNS domains
- 🕒 **Timezone Info:** Local time, abbreviation, UTC offset, DST
- 💱 **Currency Info:** Country currency name, code & symbol
- 🇺🇸 **Country Flag:** Emoji, unicode, PNG, SVG URLs

***

### ⚡ It Handles

- ✅ Bulk IP lists
- 🌐 IPv4 & IPv6
- 🔄 Automatic fallback when fields are missing
- 🛡️ VPN / Proxy / Hosting detection
- 🚀 Fast, parallel geolocation queries
- 🔑 Works with **your key** or **system keys**

***

### 🔑 Use Your Own Abstract API Key (Optional, Recommended)

Using your own key gives you **higher limits**, reliability, and ensures accuracy.

#### How to get your IP Intelligence API key:

1. Go to **Abstract API IP Intelligence Tester**
   <https://app.abstractapi.com/api/ip-intelligence/tester>

2. Sign up or log in.

3. Your **Primary Key** will appear automatically check the Try it out section and get
   you key named Primary Key. Make sure you are at this link: https://app.abstractapi.com/api/ip-intelligence/tester

4. Copy the key listed under *IP Intelligence*.

5. Free tier allows **1000 free lookups per month**.

6. Add your key in the **“Your Personal IP Intelligence API Key”** field.

#### 🔒 System Keys Behavior

- If **user does NOT provide a key**, the actor uses **its own internal keys**.
- Free users can only run **10 IP lookups per execution**.
- If system keys run out, you **must provide your own key**.

***

### ⚙️ Input Configuration

| Field        | Type   | Description                                                            | Example Values           |
| ------------ | ------ | ---------------------------------------------------------------------- | ------------------------ |
| `ips`        | Array  | List of IPs (IPv4 or IPv6) to lookup                                   | `["8.8.8.8", "1.1.1.1"]` |
| `userApiKey` | String | Your personal Abstract API IP Intelligence key (optional, recommended) | `"YOUR_API_KEY_HERE"`    |

***

### 🧩 Example Input

```json
{
  "ips": ["8.8.8.8", "1.1.1.1", "185.105.6.35"],
  "userApiKey": "YOUR_ABSTRACT_API_KEY_HERE"
}
```

***

### 📊 Example Output

```json
{
  "ip_address": "8.8.8.8",
  "security": {
    "is_vpn": true,
    "is_proxy": false,
    "is_tor": false,
    "is_hosting": true,
    "is_relay": true,
    "is_mobile": false,
    "is_abuse": false
  },
  "asn": {
    "asn": 15169,
    "name": "GOOGLE",
    "domain": "www.google.com",
    "type": "hosting"
  },
  "company": {
    "name": "GOOGLE",
    "domain": "www.google.com",
    "type": "hosting"
  },
  "domains": {
    "domains": [
      "mozilla1.com",
      "bot.nu",
      "dns.google",
      "t82.co",
      "authrock.com"
    ]
  },
  "location": {
    "country": "United States",
    "country_code": "US",
    "continent": "North America",
    "latitude": 37.751,
    "longitude": -97.822
  },
  "timezone": {
    "name": "America/Chicago",
    "local_time": "22:28:59",
    "utc_offset": -6
  },
  "flag": {
    "emoji": "🇺🇸",
    "png": "https://static.abstractapi.com/country-flags/US_flag.png"
  },
  "currency": {
    "name": "US Dollar",
    "code": "USD",
    "symbol": "$"
  }
}
```

***

### 🧠 Features

- 🌍 Supports **all IP types** (IPv4 & IPv6)
- ⚡ Bulk lookup processing
- 🛡️ VPN / Proxy / TOR / Hosting detection
- 🛰️ ASN, ISP & company enrichment
- 🌐 Related domains extraction
- 🕒 Local time & timezone insights
- 💱 Currency & country metadata
- 📌 Accurate geolocation with fallback logic
- 🚀 Optimized for high-speed Apify parallel execution

***

### 💡 Use Cases

- **Cybersecurity:** Detect VPNs, Proxies, TOR nodes
- **Fraud Prevention:** Identify suspicious or hosting IPs
- **User Risk Scoring**
- **Threat Intelligence**
- **Geo-based Access Control**
- **Analyzing logs, leads, users, or traffic**
- **Marketing:** Enrich IP-based lead information

***

### ❓ FAQs

#### **1. How many IPs can I check at once?**

You can submit **any list size**, but free users are limited to **10 lookups per execution** when using system keys.

#### **2. Is an API key required?**

No — but recommended.
Without a key, the actor uses **limited system keys**.

#### **3. What happens if I exceed free limits?**

- System keys → lookup will fail
- Your own key → depends on your Abstract API plan

#### **4. Does it support IPv6?**

✅ Yes, fully supported.

#### **5. Are the results real-time?**

Yes — every lookup retrieves fresh data from Abstract API.

***

### 🧑‍💻 Developer Info

**Author:** codescraper
**Email:** <codescraper011@gmail.com>

***

### 🏷️ Tags

`ip-geolocation` · `ip-intelligence` · `vpn-detection` · `proxy-checker` · `ip-info`
`bulk-ip-checker` · `ip-data` · `security` · `cybersecurity` · `apify` · `automation`

# Actor input Schema

## `ips` (type: `array`):

An array of IP addresses to geolocate (e.g., \["8.8.8.8", "1.1.1.1"]).

## `userApiKey` (type: `string`):

If you provide your own Abstract API key (from ip-intelligence), it will be used first. Otherwise, the actor's system keys will be used.

## Actor input object example

```json
{
  "ips": [
    "8.8.8.8",
    "1.1.1.1",
    "223.123.10.39",
    "185.105.6.35",
    "9.9.9.9"
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "ips": [
        "8.8.8.8",
        "1.1.1.1",
        "223.123.10.39",
        "185.105.6.35",
        "9.9.9.9"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("codescraper/ip-geolocation-checker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "ips": [
        "8.8.8.8",
        "1.1.1.1",
        "223.123.10.39",
        "185.105.6.35",
        "9.9.9.9",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("codescraper/ip-geolocation-checker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "ips": [
    "8.8.8.8",
    "1.1.1.1",
    "223.123.10.39",
    "185.105.6.35",
    "9.9.9.9"
  ]
}' |
apify call codescraper/ip-geolocation-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codescraper/ip-geolocation-checker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/A0B1fvkxv5IXyUyLO/builds/i9fEhyhtBSCvXssrI/openapi.json
