# 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
- **Stats:** 18 total users, 2 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# 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](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("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=codescraper/ip-geolocation-checker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "IP Geolocation & Intelligence Checker",
        "description": "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",
        "version": "1.0",
        "x-build-id": "i9fEhyhtBSCvXssrI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/codescraper~ip-geolocation-checker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-codescraper-ip-geolocation-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/codescraper~ip-geolocation-checker/runs": {
            "post": {
                "operationId": "runs-sync-codescraper-ip-geolocation-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/codescraper~ip-geolocation-checker/run-sync": {
            "post": {
                "operationId": "run-sync-codescraper-ip-geolocation-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "ips"
                ],
                "properties": {
                    "ips": {
                        "title": "IP Addresses",
                        "type": "array",
                        "description": "An array of IP addresses to geolocate (e.g., [\"8.8.8.8\", \"1.1.1.1\"]).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "userApiKey": {
                        "title": "Your Personal IP Intelligence API Key (Optional)",
                        "type": "string",
                        "description": "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."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
