# Metaworld Contact Extractor (`metaworldsystems/metaworld-contact-extractor`) Actor

Supply public business-page URLs you are authorized to review and receive displayed contact details with source context. No login-wall access, outreach, or third-party API key.

- **URL**: https://apify.com/metaworldsystems/metaworld-contact-extractor.md
- **Developed by:** [Metaworld Systems](https://apify.com/metaworldsystems) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.25 / 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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Metaworld Contact Extractor

**User-supplied public business-page URLs in → displayed contact details with
source context out.** No third-party API key required. Supply pages you are
authorized to review and inspect the resulting records before any downstream use.

Built and maintained by [Metaworld Systems](https://metaworld.systems).

### What it does

For each website you give it, the Actor:

- Extracts **email addresses** (from page text and `mailto:` links).
- Extracts **phone numbers** (formatted numbers and `tel:` links).
- Collects **social & contact links** — LinkedIn, Facebook, X/Twitter, Instagram, YouTube, TikTok, GitHub, Telegram, WhatsApp.
- Optionally **crawls a few internal pages** per site (e.g. a Contact or About page) to catch details not on the homepage.

One structured dataset row per site, ready for review and export to CSV, JSON,
or Excel.

### Input

| Field | Description |
|---|---|
| `startUrls` | The websites to scan. |
| `maxPagesPerDomain` | Pages to scan per site (1 = just the URL you gave). |
| `followInternalLinks` | Crawl same-domain links up to the page limit. |

### Output (one item per site)

```json
{
  "url": "https://metaworld.systems",
  "domain": "metaworld.systems",
  "title": "Reliable Automation, API & Data Systems | Metaworld Systems",
  "pagesScanned": 1,
  "emails": ["contact@metaworld.systems"],
  "phones": [],
  "socialLinks": []
}
```

### Notes

- **Polite & self-contained** — sends a clear User-Agent, follows redirects, skips non-HTML responses, and never crashes a whole run over one bad URL.
- Phone matching requires real phone formatting to avoid scooping up random ID numbers.
- Internal-link crawling is same-domain only, the run is capped at 50 pages per starting site, and literal private/local network URL inputs are rejected.
- The Actor only reads public pages supplied by the user. It does not log in, bypass access controls, purchase data, infer sensitive attributes, or send outreach.
- Publicly visible contact details can still be personal information. Public availability does not by itself make every collection, retention, enrichment, or outreach use lawful.
- Use this Actor only for a documented lawful purpose involving public business pages. Do not use it for consumer profiling, people-search, sensitive-category targeting, children, harassment, or unlawful email/telephone marketing.
- You are responsible for the target site's terms, a valid legal basis, required notices, suppression/opt-out handling, data minimization, retention, and deletion obligations in every relevant jurisdiction.

*Built with bounded crawling, explicit output fields, and reviewable source context.*

# Actor input Schema

## `startUrls` (type: `array`):

Public business-page URLs you are authorized and legally permitted to process. Do not submit private, consumer-profile, sensitive-category, or children's pages.

## `maxPagesPerDomain` (type: `integer`):

How many pages to scan per site (1 = just the given URL).

## `followInternalLinks` (type: `boolean`):

Crawl same-domain links (e.g. a Contact/About page) up to the page limit above.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://metaworld.systems"
    }
  ],
  "maxPagesPerDomain": 1,
  "followInternalLinks": false
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://metaworld.systems"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("metaworldsystems/metaworld-contact-extractor").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 = { "startUrls": [{ "url": "https://metaworld.systems" }] }

# Run the Actor and wait for it to finish
run = client.actor("metaworldsystems/metaworld-contact-extractor").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 '{
  "startUrls": [
    {
      "url": "https://metaworld.systems"
    }
  ]
}' |
apify call metaworldsystems/metaworld-contact-extractor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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