# Vinted Phone Number Scraper - Keyword Search, Verified Numbers (`scrapido/vinted-phone-number-scraper`) Actor

📞 Vinted Phone Number Scraper finds seller contact numbers via keyword and location search. ✅ Validated results with country code, line type and carrier. 👗 Great for apparel wholesalers & resale marketplace outreach.

- **URL**: https://apify.com/scrapido/vinted-phone-number-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

### Vinted Phone Number Scraper

**Vinted Phone Number Scraper** is an Apify automation actor built to solve time-consuming manual research when you’re looking for phone numbers from Vinted profiles. If you’re doing **Vinted data scraping**, building a **lead generation Vinted** workflow, or running **web scraping for phone numbers**, this actor helps you get structured results fast—so you can focus on outreach, not browsing.

***

### What is Vinted Phone Number Scraper? 🔍

**Vinted Phone Number Scraper** is an Apify actor that automatically extracts phone numbers from publicly available Vinted content, then saves matches as structured records in an Apify dataset. It’s designed for marketers, recruiters, analysts, and sales teams who need a **Vinted phone number scraper** that supports **automated Vinted scraping** at scale. The actor works as a **Vinted contact extraction** tool by using your keyword list and country targeting, returning results you can use for **lead generation Vinted** campaigns and OSINT for Vinted research.

***

### What Does Vinted Phone Number Scraper Do? ⚙️

After you submit your inputs, the actor runs a phone-number-focused scrape against publicly available Vinted pages, using your keywords plus a target country to normalize and validate numbers. It then structures what it finds and exports it to your Apify dataset for easy reuse in CRM and outreach pipelines.

- 🔍 **Searches** Vinted using your keywords and your selected country targeting
- 📞 **Extracts** publicly listed phone numbers associated with matching Vinted profiles and profile content
- 🌍 **Filters** results by your selected country (dial code guidance is included in output)
- 📊 **Structures** output as clean JSON records in the dataset
- 💾 **Exports** data directly from the dataset tab (download as JSON/CSV from Apify)

***

### What Would Results from Vinted Phone Number Scraper Look Like? 👀

You’ll get one dataset record per extracted phone number match, including the keyword used and the profile URL.

```json
{
  "keyword": "marketing",
  "title": "Luna Green",
  "description": "Handmade accessories • Shipping worldwide • Contact me on WhatsApp",
  "url": "https://www.vinted.com/member/123456789-luna-green",
  "phone_number": "+447700900123",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

***

### Capabilities of Vinted Phone Number Scraper 🛠️

| Capability | What It Means for You |
|---|---|
| ✅ **Keyword Search** | Target Vinted profiles using your exact keyword list for more relevant **Vinted contact extraction** results |
| ✅ **Location Filter** | Optionally narrow by a location string (for example, a city/region) to improve relevance for **lead generation Vinted** |
| ✅ **Country Targeting** | Select the country code to guide phone number extraction and formatting for **phone number extraction** |
| ✅ **Result Cap (`maxPhoneNumbers`)** | Stop after reaching a specific number of matches to manage run duration and focus your **Vinted user contact scraping** |
| ✅ **Built-in Proxy Support** | Use Apify Proxy support to improve reliability for bulk scraping workflows—helpful for **Vinted data scraping** tasks at scale |
| ✅ **Large Batch Runs Supported** | Long runs are supported via configurable runtime behavior (you can adjust timeout in Run Options; default is 3600s / 1hr) |
| ✅ **Resilient Execution** | Includes logic to handle cases where results are sparse or temporarily unavailable, helping overall run stability for **automation scraping script** workflows |
| ✅ **Structured Dataset Output** | Each record includes keyword, title, description, URL, phone number, country, and dial code—ready for analysis or CRM import |

***

### Launch Your First Vinted Phone Number Scraper Task 🚀

#### Required Input Fields

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["marketing","founder"]` | Search terms used to find relevant Vinted content where phone numbers may be present. |
| `location` | String | No | `""` | Optional location filter (e.g., `London`, `California`). Leave empty for global targeting. |
| `country` | String | ✅ Yes | `United Kingdom (+44)` | The target country to extract phone numbers for (includes the dial code in the option). |
| `maxPhoneNumbers` | integer | No | `20` | Stop scraping after this many phone numbers are found. Higher values can extend scraping duration. |

**Example input (use as `input.json`):**

```json
{
  "keywords": ["marketing", "founder"],
  "location": "London",
  "country": "United Kingdom (+44)",
  "maxPhoneNumbers": 20
}
```

#### Required Output Fields

Your actor saves results to the **dataset** with these fields (in the exact order shown below).

| Field | Type | Description |
|---|---|---|
| `keyword` | text | The keyword that was used for the match. |
| `title` | text | The Vinted profile title/name associated with the phone number record. |
| `description` | text | Profile or content text that describes the match context. |
| `url` | link | The Vinted URL related to the extracted phone number. |
| `phone_number` | text | The extracted phone number (formatted with the targeted country context). |
| `country` | text | The country name tied to the extraction run. |
| `dial_code` | text | The dial code associated with the selected country. |

**Step-by-step launch guide:**

1. **Open** the actor in Apify Store and go to the **Input** tab
2. **Enter your `keywords`** (start with a few audience-focused terms)
3. **Set `country`** to target phone numbers in the right region
4. **Optionally add `location`** for tighter relevance
5. **Set `maxPhoneNumbers`** to control how many matches you want per run
6. **Click Start** and watch the logs while it runs
7. **Download results** from the **Dataset** tab as needed (JSON/CSV)

***

### Solving Real Problems with Vinted Phone Number Scraper 💼

Whether you’re working on **email and phone scraping** or building a **Vinted contact finder** workflow, this actor helps you:

- 🎯 **Lead generation Vinted** — quickly build a phone list for outreach without manual searching
- 📣 **Audience targeting** — focus on the right Vinted niche by tuning keywords and country targeting
- 🔬 **OSINT for Vinted** — collect publicly listed contact signals for research and validation
- ⚙️ **Automated pipelines** — rerun regularly to maintain fresh lists for ongoing outreach and testing

***

### What Sets Vinted Phone Number Scraper Apart? 🏆

- ✅ **Phone-number-focused output** tailored for **Vinted phone number scraper** use cases, saved as structured dataset records
- 🔄 **Built for bulk workflows** with proxy support designed to keep larger scraping runs moving
- 📊 **Clean, consistent data** (keyword, title, description, URL, phone number, country, dial code) for easier downstream use
- 🧭 **Control your results** with `maxPhoneNumbers` to manage run time and output volume

***

### Search Limits and Capacity 📈

Use `maxPhoneNumbers` to cap output per run (default is `20`, minimum `1`, maximum `10000`). Actual results depend on how many Vinted profiles match your keyword set and publicly display phone numbers. For larger scraping tasks, the run can take time—use **Run Options** timeout (default: **3600s / 1hr**) to adjust capacity.

***

### Is It Legal to Scrape Vinted? ⚖️

This actor collects information only from **publicly available sources**. It does not access private profiles or password-protected content. Public scraping is generally subject to legal and regulatory requirements, as well as Vinted’s Terms of Service and applicable privacy rules (for example, GDPR and anti-spam regulations). You’re responsible for compliance. For compliance or data-removal requests, contact <scrapidocontact@gmail.com>.

***

### Ending Note ✉️

Stop manually hunting through Vinted for phone numbers. **Vinted Phone Number Scraper** produces structured, dataset-ready results—so your team can move faster from discovery to outreach. Run it on Apify, export your dataset, and iterate your keywords to improve **Vinted user contact scraping** quality.

***

### FAQ — Vinted Phone Number Scraper ❓

#### How Does the Vinted Phone Number Scraper Work?

You provide your `keywords`, optional `location`, a required `country`, and an optional `maxPhoneNumbers` cap. The actor searches relevant publicly available Vinted content, extracts matching phone numbers, and saves each match as a dataset record.

#### What Types of Vinted Profiles Can I Target?

The actor targets Vinted profiles and profile/post content where publicly listed phone numbers are present. Results depend on whether phone numbers are available on those public pages.

#### How Do I Improve Results If I’m Getting Few Matches?

Try broader or more audience-relevant terms in `keywords`, and consider adjusting the `country` targeting. You can also remove or change the `location` filter if it’s too narrow for your niche.

#### Can I Limit How Many Phone Numbers I Get Per Run?

Yes. Use `maxPhoneNumbers` to stop scraping after a set number of phone number matches. The default value is `20`, and you can set it up to `10000`.

#### Is There Proxy Support for Reliable Runs?

Yes. The actor includes proxy support to help with reliability during scraping runs, especially for larger tasks.

#### Where Do the Results Go?

All extracted matches are pushed to the actor’s Apify dataset using the dataset output schema fields: `keyword`, `title`, `description`, `url`, `phone_number`, `country`, and `dial_code`.

***

### 🆘 Support & Feedback

Have a question or want to request improvements for the **Vinted Phone Number Scraper**?

Contact the team at <scrapidocontact@gmail.com>.

### Multiple Phone Type

**Phone Types** replaces the old single Number Type choice: select as many kinds
of line as you want and the run collects all of them.

| Type | Kept when the number is |
| --- | --- |
| Mobile | A confirmed mobile |
| Landline | A confirmed fixed line |
| Toll-Free | A freephone number |
| VoIP | An internet-telephony number |
| Premium-Rate | A premium-rate number |
| Shared-Cost | A shared-cost number |

Leave it empty for every type. Each number is checked against its *real* line
type before being kept, so the filter is enforced rather than merely requested.
Numbers on ranges where mobile and landline genuinely cannot be told apart (the
US, Canada and Mexico) are kept rather than silently dropped - discarding them
would quietly lose good leads.

### Outreach links

| Field | Meaning |
| --- | --- |
| `telLink` | A clickable `tel:` link, so a row can be dialled straight from a spreadsheet or CRM |
| `whatsappLink` | A `wa.me` chat link, or empty for a confirmed landline or a number that failed validation |
| `whatsappCapable` | Whether the number is on a line WhatsApp can run on |

`whatsappCapable` is a plain yes/no you can filter on. It never claims the
person actually uses WhatsApp - only that the number is of a kind that could.
Switch the links off with **Include WhatsApp links**; the capability flag is
still reported.

# Actor input Schema

## `keywords` (type: `array`):

Enter keywords to search for (e.g., 'Target Keyword').

## `location` (type: `string`):

Filter by location (e.g., 'London', 'California'). Leave empty for global search.

## `country` (type: `string`):

Select the country to target for phone numbers.

## `maxPhoneNumbers` (type: `integer`):

Stop scraping after this many phone numbers are found. Setting a higher limit extends the scraping duration.

## `numberType` (type: `string`):

Restrict results to a specific line type, classified offline via libphonenumber. Any keeps every valid match.

## `phoneTypes` (type: `array`):

Which kinds of line to collect. Pick as many as you like - each number is checked against its real line type before it is kept. Leave empty for every type. Numbers on ranges where mobile and landline cannot be told apart (the US, Canada and Mexico) are always kept rather than silently dropped.

## `includeWhatsappLinks` (type: `boolean`):

Add a ready-made wa.me chat link for numbers on a line WhatsApp can run on. The link means the number is in a form WhatsApp accepts - not proof that an account exists.

## Actor input object example

```json
{
  "keywords": [
    "seller",
    "vintage"
  ],
  "country": "United Kingdom (+44)",
  "maxPhoneNumbers": 20,
  "numberType": "Any",
  "phoneTypes": [
    "Mobile"
  ],
  "includeWhatsappLinks": 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 = {
    "keywords": [
        "seller",
        "vintage"
    ],
    "phoneTypes": [
        "Mobile"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/vinted-phone-number-scraper").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 = {
    "keywords": [
        "seller",
        "vintage",
    ],
    "phoneTypes": ["Mobile"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapido/vinted-phone-number-scraper").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 '{
  "keywords": [
    "seller",
    "vintage"
  ],
  "phoneTypes": [
    "Mobile"
  ]
}' |
apify call scrapido/vinted-phone-number-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/vinted-phone-number-scraper"
        }
    }
}

```

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/hlhqqPTxKvYZLztMu/builds/UbFJe2QEdZHyZgQGC/openapi.json
