# PhoneInfoga Phone Number OSINT — Carrier, Country & Footprint (`ntriqpro/phoneinfoga-osint`) Actor

Phone number OSINT — validate, parse country/carrier, and generate footprint search links across social media, reputation and disposable-number sites. Unofficial wrapper around phoneinfoga (GPL-3.0).

- **URL**: https://apify.com/ntriqpro/phoneinfoga-osint.md
- **Developed by:** [daehwan kim](https://apify.com/ntriqpro) (community)
- **Categories:** Developer tools, Business, Automation
- **Stats:** 4 total users, 3 monthly users, 85.7% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$50.00 / 1,000 phone scanneds

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

## Phone Number OSINT — Carrier, Country & Footprint (PhoneInfoga)

Investigate a phone number to discover its **carrier, country, line type, and online footprint** across social media, reputation sites, and disposable-number providers — powered by [phoneinfoga](https://github.com/sundowndev/phoneinfoga) (GPL-3.0).

> **Legal Disclaimer: This Actor is an unofficial integration of phoneinfoga and is not affiliated with, endorsed by, or sponsored by the original phoneinfoga project or its maintainers. It returns publicly available information only and stores no personal data. Use responsibly and only on numbers you have authorization to investigate.**

---

### What does this Actor do?

This Actor wraps the open-source OSINT tool **phoneinfoga** to investigate a phone number and return structured intelligence:

- **Validate & normalize** the number (E.164, international, local formats)
- **Identify country and carrier** via offline libphonenumber data
- **Detect OVH-owned ranges** (European VoIP) — useful for fraud / scam-call investigation
- **Generate 30+ Google footprint search links** across social media (Facebook, Twitter/X, LinkedIn, Instagram, VK), disposable-number sites, reputation databases, and individual lookup services

Built for **fraud investigators, security researchers, journalists, KYC teams, and developers** who need automated phone-number reconnaissance backed by a proven open-source OSINT framework.

---

### Why use this Actor?

- **★ Backed by phoneinfoga** — the de-facto open-source phone OSINT tool (16,500+ GitHub stars)
- **Zero API keys required** — works out of the box for free, no-auth scanners (local, googlesearch, OVH)
- **Structured JSON output** — ready for Apify datasets, webhooks, or downstream pipelines
- **Privacy-first design** — public information only, no personal data stored beyond the run dataset
- **Schedulable** — set up recurring monitoring via Apify Scheduler
- **API & MCP access** — call via REST API, MCP, or Apify Console

---

### How to use this Actor

1. **Open the Actor** in Apify Console and click **Try for free**
2. **Enter a phone number** in international format (e.g., `+14155551234`, `+821012345678`)
3. **Check the legal disclaimer** box (`disclaimerAck: true`)
4. **Start the Actor** — typical run finishes in 5–15 seconds
5. **Download results** from the Output tab as JSON, CSV, or Excel

---

### Input

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `number` | string | **Required.** Phone number in international format (E.164 or with country code) | `+14155551234` |
| `disclaimerAck` | boolean | **Required.** Confirm authorized & lawful use | `false` |
| `scanners` | string | Comma-separated scanners to run. Empty = all free/no-key (`local,googlesearch,ovh`) | `""` |

**Example input:**
```json
{
    "number": "+14155551234",
    "disclaimerAck": true,
    "scanners": ""
}
````

***

### Output

Each run produces one structured dataset item:

```json
{
    "input": "+14155551234",
    "valid": true,
    "e164": "+14155551234",
    "international": "+1 415-555-1234",
    "localFormat": "(415) 555-1234",
    "country": "US",
    "countryCode": 1,
    "carrier": "",
    "lineType": null,
    "ovhFound": false,
    "ovhCity": null,
    "ovhNumberRange": null,
    "ovhZipCode": null,
    "searchLinkCount": 34,
    "searchLinks": [
        { "category": "social_media", "dork": "site:facebook.com intext:\"4155551234\"...", "url": "https://www.google.com/search?q=..." },
        { "category": "reputation", "dork": "site:whocalled.us ...", "url": "https://www.google.com/search?q=..." }
    ],
    "scannersRun": ["local", "googlesearch", "ovh"],
    "scannerErrors": {},
    "scannedAt": "2026-06-05T12:34:56.789Z",
    "disclaimer": "Public information only..."
}
```

You can download the dataset in JSON, HTML, CSV, or Excel.

***

### Data fields

| Field | Format | Description |
|-------|--------|-------------|
| `input` | text | Raw input as provided |
| `valid` | boolean | Whether number passes E.164 validation |
| `e164` | text | Canonical E.164 representation |
| `international` | text | Pretty international format |
| `localFormat` | text | Country-local format |
| `country` | text | ISO country code (e.g., `US`, `KR`, `FR`) |
| `countryCode` | number | Numeric country code (e.g., `1`, `82`, `33`) |
| `carrier` | text | Carrier name when available from offline data |
| `ovhFound` | boolean | Whether number belongs to an OVH Telecom range |
| `ovhCity` / `ovhNumberRange` / `ovhZipCode` | text | OVH range metadata |
| `searchLinkCount` | number | Count of footprint search links generated |
| `searchLinks` | array | Google search links across 5 categories (social\_media, disposable\_providers, reputation, individuals, general) |
| `scannersRun` | array | Scanners that were executed |
| `scannerErrors` | object | Per-scanner errors (empty when all succeeded) |
| `scannedAt` | date | ISO timestamp |

***

### Pricing

This Actor is priced **per successful scan**:

- **$0.05 per valid phone number scanned** (Pay-per-Event)
- **Invalid numbers are free** — no charge if the input fails E.164 validation
- Standard Apify platform compute is also consumed (~$0.001–0.005 per run)

New Apify users receive free monthly credits to get started.

***

### Tips & Advanced Options

- **Multiple numbers**: schedule the Actor or use the Apify API to loop through a list
- **Specific scanners only**: pass `scanners: "local,ovh"` to skip googlesearch link generation
- **CSV export**: the `searchLinks` array unwinds nicely when you select CSV export — one row per link
- **Integration**: connect to Slack/Discord/webhooks via Apify Integrations to alert on suspicious carrier matches

***

### FAQ, Disclaimers & Support

#### Is this legal?

This Actor returns **publicly available information** only — number-format parsing (offline libphonenumber), OVH's public REST API (no auth), and Google search links you could type yourself. It does **not**:

- Bypass any authentication
- Scrape private profiles or paywalled databases
- Store personal data beyond the dataset for the run
- Reverse-lookup any database that requires opt-in consent

However, you remain solely responsible for ensuring your use complies with:

- Local privacy laws (GDPR, CCPA, PIPA, etc.)
- The Terms of Service of any site you subsequently visit via the generated search links
- Anti-stalking / anti-harassment statutes in your jurisdiction

**Only investigate numbers you are authorized to investigate** (your own, those of consenting parties, or those covered by a legitimate fraud-prevention / KYC / journalism mandate).

#### Legal Disclaimer

**This Actor is an UNOFFICIAL integration of [phoneinfoga](https://github.com/sundowndev/phoneinfoga), released under the GNU General Public License v3.0. It is NOT affiliated with, endorsed by, or sponsored by the original phoneinfoga project or its authors. The phoneinfoga binary is executed as a separate process; this Actor's wrapper code is not a derivative work in the GPL sense. See LICENSE-NOTICE.md in the source for details. The Actor author provides this tool for legitimate security research, fraud prevention, journalism, and authorized investigations only. Users are solely responsible for ensuring their use complies with applicable laws. The author accepts no liability for misuse.**

#### What about numverify / Google Custom Search scanners?

phoneinfoga supports additional scanners (`numverify`, `googlecse`) that require **your own API keys**. To protect users from accidental third-party charges and to keep data flow under your direct control, this Actor enables only the **free no-auth scanners** by default. Power users who need numverify or googlecse can install phoneinfoga locally and run it with their own credentials.

#### Known Limitations

- `carrier` is often empty for non-mobile numbers (libphonenumber limitation)
- OVH lookup is meaningful for European VoIP numbers; returns `found: false` for most others
- Google search link **generation** does not execute the queries — you visit the links to view results
- Very common number patterns may return many false-positive matches when you follow the links

#### Support

- Found a bug? Open an issue in the **Issues** tab
- Need a custom OSINT solution? Contact via the Apify platform

***

### 🔗 Related Actors by ntriqpro

Build your full OSINT stack:

- [**maigret-actor**](https://apify.com/ntriqpro/maigret-actor) — Username OSINT — Check 3000+ sites where a username is registered (maigret wrap)
- [**email-osint-search**](https://apify.com/ntriqpro/email-osint-search) — Email OSINT — Check 120+ sites where an email is registered (holehe wrap)
- [**metascraper-actor**](https://apify.com/ntriqpro/metascraper-actor) — Web Metadata Extractor — Open Graph, Title, Author API
- [**phish-radar**](https://apify.com/ntriqpro/phish-radar) — Phishing & Malicious Domain Detector

### ⭐ Love it? Leave a Review

Your honest rating helps fraud investigators and security researchers discover this Actor.

# Actor input Schema

## `number` (type: `string`):

Phone number to investigate, in international format including country code. Examples: +14155551234, +33679368229, +821012345678. Special characters like (), -, +, and spaces are allowed.

## `disclaimerAck` (type: `boolean`):

Required. By checking this you confirm that (1) you will use this Actor only for lawful purposes such as fraud prevention, authorized security research, journalism, or investigation of numbers you are authorized to investigate; (2) you will not use results to harass, stalk, dox, or harm any person; (3) you are responsible for compliance with applicable privacy laws (GDPR/CCPA/PIPA/etc.). This Actor returns public information only and stores no personal data.

## `scanners` (type: `string`):

Optional. Comma-separated scanner names. Leave empty to run all FREE no-auth scanners: local, googlesearch, ovh. External paid scanners requiring your own API key (numverify, googlecse) are not enabled in this Actor — bring your own key by running phoneinfoga directly if needed.

## Actor input object example

```json
{
  "number": "+14155551234",
  "disclaimerAck": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {
    "number": "+14155551234",
    "disclaimerAck": true,
    "scanners": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("ntriqpro/phoneinfoga-osint").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 = {
    "number": "+14155551234",
    "disclaimerAck": True,
    "scanners": "",
}

# Run the Actor and wait for it to finish
run = client.actor("ntriqpro/phoneinfoga-osint").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 '{
  "number": "+14155551234",
  "disclaimerAck": true,
  "scanners": ""
}' |
apify call ntriqpro/phoneinfoga-osint --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ntriqpro/phoneinfoga-osint",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "PhoneInfoga Phone Number OSINT — Carrier, Country & Footprint",
        "description": "Phone number OSINT — validate, parse country/carrier, and generate footprint search links across social media, reputation and disposable-number sites. Unofficial wrapper around phoneinfoga (GPL-3.0).",
        "version": "1.0",
        "x-build-id": "buERxky3XKY6oycdU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ntriqpro~phoneinfoga-osint/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ntriqpro-phoneinfoga-osint",
                "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/ntriqpro~phoneinfoga-osint/runs": {
            "post": {
                "operationId": "runs-sync-ntriqpro-phoneinfoga-osint",
                "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/ntriqpro~phoneinfoga-osint/run-sync": {
            "post": {
                "operationId": "run-sync-ntriqpro-phoneinfoga-osint",
                "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": [
                    "number",
                    "disclaimerAck"
                ],
                "properties": {
                    "number": {
                        "title": "Phone number (international format)",
                        "type": "string",
                        "description": "Phone number to investigate, in international format including country code. Examples: +14155551234, +33679368229, +821012345678. Special characters like (), -, +, and spaces are allowed."
                    },
                    "disclaimerAck": {
                        "title": "I acknowledge the legal disclaimer",
                        "type": "boolean",
                        "description": "Required. By checking this you confirm that (1) you will use this Actor only for lawful purposes such as fraud prevention, authorized security research, journalism, or investigation of numbers you are authorized to investigate; (2) you will not use results to harass, stalk, dox, or harm any person; (3) you are responsible for compliance with applicable privacy laws (GDPR/CCPA/PIPA/etc.). This Actor returns public information only and stores no personal data."
                    },
                    "scanners": {
                        "title": "Scanners to run (comma-separated)",
                        "type": "string",
                        "description": "Optional. Comma-separated scanner names. Leave empty to run all FREE no-auth scanners: local, googlesearch, ovh. External paid scanners requiring your own API key (numverify, googlecse) are not enabled in this Actor — bring your own key by running phoneinfoga directly if needed."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
