# Swiggy Phone Number Scraper - Country Filter & Carrier Data (`code-beat/swiggy-phone-number-scraper-fast-and-reliable`) Actor

🍛 Swiggy Phone Number Scraper collects restaurant and merchant numbers in bulk with country filtering, line-type detection & carrier data. ✅ Invalid numbers dropped. 🇮🇳 Ideal for India restaurant tech & POS vendor sales.

- **URL**: https://apify.com/code-beat/swiggy-phone-number-scraper-fast-and-reliable.md
- **Developed by:** [Code Beat](https://apify.com/code-beat) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.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

### Swiggy Phone Number Scraper 📞

**Swiggy Phone Number Scraper** helps you save hours of manual research by turning public Swiggy data into structured contact leads. Instead of checking profiles one by one, you can use targeted keywords, country targeting, and optional location filters to build a relevant Swiggy contact number scraper workflow for marketers, analysts, and researchers who want faster outreach results. 🚀

### What is Swiggy Phone Number Scraper? 🔍

**Swiggy Phone Number Scraper** is an Apify automation actor built to collect phone numbers from publicly available Swiggy profiles, bios, and post content. It’s designed for people who need a Swiggy email extractor-style contact workflow, a Swiggy contact scraper, or automated Swiggy scraping without manual browsing. Whether you're a sales professional, recruiter, marketer, or researcher, this Swiggy Phone Number Scraper helps transform public web data into usable lead records for outreach and analysis.

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

The actor takes your keywords and country selection, then searches for matching public Swiggy content and saves extracted phone-number leads into a dataset. You can also narrow results with a location filter and stop early with a result cap, making it useful as a Swiggy phone number extractor, Swiggy customer phone scraper, or Swiggy lead extraction tool. 📊

- 🔍 **Searches** Swiggy content using your keywords and country targeting
- 📧 **Extracts** publicly available phone numbers from matching profiles and posts
- 🌍 **Filters** results with an optional location field for more focused leads
- 📊 **Structures** output as clean JSON records in an Apify dataset
- 💾 **Saves** results as they’re found so you can download them right away

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

Here’s a realistic example of the kind of structured lead data you can expect from this Swiggy number harvesting tool and Swiggy business lead scraper workflow. Results are stored in the dataset as JSON records. 📦

```json
{
  "keyword": "marketing",
  "title": "Aarav Mehta",
  "description": "Brand consultant | Public contact for collaborations | +44 7700 900123",
  "url": "https://www.swiggy.com/profile/aarav-mehta",
  "phone_number": "+447700900123",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

Export your Swiggy lead extraction results as JSON from the Apify dataset tab.

### Capabilities of Swiggy Phone Number Scraper 🛠️

| Capability | What It Means for You |
|---|---|
| ✅ **Keyword Search** | Find Swiggy profiles and posts that match your target audience terms |
| ✅ **Location Filter** | Narrow results by city, region, or country when you want more relevant leads |
| ✅ **Country Targeting** | Focus the scrape on a specific country and dialing code |
| ✅ **Result Cap** | Stop after the number of phone numbers you want, helping control runtime |
| ✅ **Built-In Proxy Support** | Helps keep larger scraping jobs reliable and resilient |
| ✅ **Real-Time Output** | Results are saved to the dataset during the run, not only at the end |
| ✅ **No Code Required** | Run everything from Apify Console with a simple input form |
| ✅ **Dataset Export** | Download the collected data for CRM, spreadsheets, or outreach workflows |

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

#### Required Input Fields

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | Yes | `["marketing","founder"]` | Keywords used to find relevant Swiggy profiles and public content. |
| `location` | String | No | `""` | Optional location filter. Leave it empty for a broader search. |
| `country` | String | Yes | `United Kingdom (+44)` | Selects the target country for phone-number matching. |
| `maxPhoneNumbers` | Integer | No | `20` | Stops the run after this many phone numbers are found. |

#### Required Output Fields

```json
{
  "keyword": "marketing",
  "title": "Aarav Mehta",
  "description": "Brand consultant | Public contact for collaborations | +44 7700 900123",
  "url": "https://www.swiggy.com/profile/aarav-mehta",
  "phone_number": "+447700900123",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that led to this result. |
| `title` | Title | text | The page or profile title associated with the result. |
| `description` | Description | text | The extracted public text connected to the result. |
| `url` | Url | link | The source URL for the result. |
| `phone_number` | Phone Number | text | The extracted phone number in international format. |
| `country` | Country | text | The country selected for the run. |
| `dial_code` | Dial Code | text | The dialing code associated with the selected country. |

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

1. **Open** the actor in Apify Console.
2. **Enter keywords** in the Input tab.
3. **Choose a country** and optionally add a location.
4. **Set the result cap** with `maxPhoneNumbers` if needed.
5. **Click Start** and watch the dataset fill in real time.
6. **Download results** from the Dataset tab in JSON format.

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

This Swiggy customer data scraper is useful whenever you need public contact information faster than manual browsing. It also works well as a Swiggy restaurant contact scraper, Swiggy order contact extractor, or Swiggy outreach contact scraper for niche lead generation.

- 🎯 **Sales Prospecting** — Build a focused Swiggy contact database scraper workflow for outreach
- 📣 **Campaign Targeting** — Use public contact data for audience building and segmentation
- 🤝 **Research Work** — Collect Swiggy business lead scraper results for market analysis
- ⚙️ **Lead Enrichment** — Turn keyword-based discovery into usable contact lists
- 🚀 **Bulk Collection** — Use the Swiggy number collection tool approach for larger lead batches

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

- ⚡ **Fast Result Delivery** — Results are saved as they’re discovered, helping you move quickly
- 🔄 **Resilient Runs** — Includes retries and fallbacks for more reliable scraping
- 🌍 **Country-Aware Targeting** — Helps you focus on the right dialing region from the start
- 📧 **Human Support** — Need help or have a request? Contact <codebeatapi@gmail.com>

### Search Limits and Capacity 📈

You can set `maxPhoneNumbers` from 1 to 10,000, giving you flexible control over run size and cost. Larger runs may take longer, especially when you use broader keywords or multiple target countries. For best results, the Swiggy phone number extractor works well with focused keywords and sensible filtering. Built-in proxy support helps with reliability during larger jobs.

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

This actor works only with publicly available data on Swiggy — no logins, private profiles, or restricted content. As with any public web scraping workflow, you’re responsible for following applicable laws, platform terms, and anti-spam rules. Use this Swiggy delivery contact scraper responsibly and only for legitimate purposes. For data-removal or compliance questions, contact <codebeatapi@gmail.com>.

### Ending Note ✉️

Stop spending hours manually searching for contacts. The **Swiggy Phone Number Scraper** gives you a faster way to build clean public-contact lists for outreach, analysis, and lead generation — with keyword targeting, country filters, and structured exports. 🚀

### FAQ — Swiggy Phone Number Scraper ❓

#### How Does Swiggy Phone Number Scraper Work?

It uses your keywords and country selection to find matching public Swiggy content, then saves extracted phone numbers into your Apify dataset as structured records.

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

You can target public Swiggy profiles, bios, and posts that contain phone numbers in publicly available content. Private or restricted content is not included.

#### How Did Swiggy Phone Number Scraper Perform in Our Tests?

It is designed to collect publicly available phone numbers efficiently, with results depending on how much contact data is visible for your chosen keywords and country.

#### Why Scrape Swiggy Instead of Buying a List?

Scraping public Swiggy contact data gives you fresher and more specific leads than purchased lists, which are often outdated or poorly matched to your niche.

#### How Much Does Swiggy Phone Number Scraper Cost?

Your cost depends on your Apify usage and how many results you collect. You can control the run with `maxPhoneNumbers` to keep the output within your preferred limit.

#### Top Benefits of Swiggy Phone Number Scraper

It offers keyword targeting, country selection, structured dataset output, and a practical way to build Swiggy lead extraction lists without manual research.

#### What Are the Disadvantages of Scraping Swiggy?

Results vary because not every profile or post contains a public phone number. Broader keywords and different country settings may help if your first run is too limited.

#### How to Choose the Best Swiggy Scraper

Look for keyword targeting, reliable output formatting, country controls, and dependable support. This Swiggy contact number scraper covers those essentials and more.

### 🆘 Support & Feedback

Have a question or found an issue with the Swiggy Phone Number Scraper?

- 🐞 **Bug Reports:** Open a ticket in the repository’s Issues section
- ✨ **Custom Solutions & Feature Requests:** Contact our team
- 📧 **Email:** <codebeatapi@gmail.com>

### Country & Time Targeting

**Target Country** did two jobs already: it supplies the dial code the search
looks for, and it is the region numbers are parsed against. It now does a third

- Google is asked to answer as if searching from that country (`gl`). Turn on
  **Strict country filter** to also restrict results to pages Google attributes to
  it (`cr=countryXX`); that is much tighter and returns noticeably fewer results.

**Result Language** restricts results to one language (`hl` + `lr`).

**Time Range** limits results to a publication window - past hour, 24 hours,
week, month, year, or an explicit *Custom range* via **Custom range: from** /
**to** in `YYYY-MM-DD` form. Selecting *Custom range* without either date falls
back to no time filter rather than silently searching all of time.

### Region resolution

| Field | Meaning |
| --- | --- |
| `regionAmbiguous` | `true` when the number was printed without a country code and the same national digits are valid in more than one country |
| `phoneIsMobile` | `true`/`false` where the numbering plan can tell, empty where it genuinely cannot (US, Canada, Mexico) |
| `phoneCallingCode` | The country's international calling code, as a number |
| `phoneCountryName` | Full country name, falling back to the two-letter code rather than guessing |

`regionAmbiguous` is the important one. A number written as `020 7946 0958` is
only a UK number because the run targeted the UK - the country shown is a
reading, not a fact, and this column tells you which rows those are.

# Actor input Schema

## `scrapeMode` (type: `string`):

Find New Numbers (default) searches About.Me by keyword. Validate My List skips searching entirely and instead runs the numbers you paste into Phone List (below) through the same deliverability checks.

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

Enter keywords to search for (e.g., 'Target Keyword'). Only used in Find New Numbers mode.

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

Filter by location (e.g., 'London', 'California'). Leave empty for global search. Only used in Find New Numbers mode.

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

Select the country to target for phone numbers. Only used in Find New Numbers mode.

## `phoneList` (type: `array`):

Paste the phone numbers you want checked for deliverability (any format - the selected Country is used as the default region for numbers without a country code). Only used when Scrape Mode is set to "Validate My List".

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

Stop scraping after this many phone numbers are found. Setting a higher limit extends the scraping duration. Only used in Find New Numbers mode.

## `minQualityScore` (type: `number`):

Drop any number whose quality score (0.0-1.0) falls below this. Leave at 0 for no filter.

## `requireStrictValid` (type: `boolean`):

Drop numbers that fail strict validity (correct length/format for the region) - mainly relevant in Validate My List mode, since search results are already strictly valid by construction.

## `excludeTollFree` (type: `boolean`):

Drop numbers identified as toll-free.

## `excludePremiumRate` (type: `boolean`):

Drop numbers identified as premium-rate.

## `requireCountryMatch` (type: `boolean`):

Drop numbers whose own detected region does not match the Country you selected (e.g. shared dial codes like +1 covering the US, Canada, and Caribbean nations).

## `strictCountry` (type: `boolean`):

Restrict Google to pages it attributes to the country you selected (cr=countryXX), rather than only preferring them. Much tighter targeting, noticeably fewer results.

## `searchLanguage` (type: `string`):

Restrict results to one language. Leave on "Any language" for no filter.

## `timeRange` (type: `string`):

Only return pages Google indexed within this window. A number published last month is far more likely to still be answered than one last seen years ago.

## `customDateFrom` (type: `string`):

Only used when Time Range is "Custom range". Format: YYYY-MM-DD.

## `customDateTo` (type: `string`):

Only used when Time Range is "Custom range". Format: YYYY-MM-DD.

## Actor input object example

```json
{
  "scrapeMode": "Find New Numbers",
  "keywords": [
    "contact",
    "restaurant"
  ],
  "country": "India (+91)",
  "phoneList": [],
  "maxPhoneNumbers": 20,
  "minQualityScore": 0,
  "requireStrictValid": false,
  "excludeTollFree": false,
  "excludePremiumRate": false,
  "requireCountryMatch": false,
  "strictCountry": false,
  "searchLanguage": "",
  "timeRange": "Any time",
  "customDateFrom": "",
  "customDateTo": ""
}
```

# 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": [
        "contact",
        "restaurant"
    ],
    "phoneList": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("code-beat/swiggy-phone-number-scraper-fast-and-reliable").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": [
        "contact",
        "restaurant",
    ],
    "phoneList": [],
}

# Run the Actor and wait for it to finish
run = client.actor("code-beat/swiggy-phone-number-scraper-fast-and-reliable").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": [
    "contact",
    "restaurant"
  ],
  "phoneList": []
}' |
apify call code-beat/swiggy-phone-number-scraper-fast-and-reliable --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,code-beat/swiggy-phone-number-scraper-fast-and-reliable"
        }
    }
}

```

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/1sGW6EWV4dw7byRC5/builds/m9xdZV3McmagEiYV4/openapi.json
