# Swiggy Email Scraper - Bulk Keywords, Decodes Hidden Emails (`code-beat/swiggy-email-scraper-ultra-fast-and-precise`) Actor

🍛 Swiggy Email Scraper extracts restaurant and merchant contact emails in bulk by keyword. 🔓 Decodes hidden addresses, filters by domain. 🇮🇳 Great for India restaurant tech sales, POS vendors & food delivery lead generation.

- **URL**: https://apify.com/code-beat/swiggy-email-scraper-ultra-fast-and-precise.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 Email Scraper

**Swiggy Email Scraper** helps you collect publicly available email addresses from Swiggy using your chosen keywords and filters. It’s a practical **Swiggy email extractor** and **Swiggy lead generation** tool for marketers, analysts, and researchers who want faster contact discovery without manual searching. ⚡

### What Does Swiggy Email Scraper Do? 🤖

Swiggy Email Scraper takes your keywords, optional location filter, custom email domains, and a maximum email limit, then scrapes publicly available web data from Swiggy-related pages to collect matching contact details. It extracts and exports structured results with the keyword used, page title, description text, URL, and email address. This makes it a useful **Swiggy contact scraper**, **Swiggy restaurant email scraper**, and **Swiggy business email finder** for building targeted lead lists. Instead of checking pages one by one, you can automate Swiggy email collection in a repeatable workflow. 🚀

### What Can Swiggy Email Scraper Extract? 📊

This actor captures a focused set of fields that are easy to review, filter, and export. Each record represents a lead found from your keyword and domain settings, making it useful for **Swiggy data extraction**, **Swiggy contact extraction**, and **Swiggy merchant contact scraper** workflows.

| Data Type | Field Name | Description |
|---|---|---|
| Discovery | `keyword` | The keyword that produced the result |
| Identity | `title` | Title or name shown for the result |
| Context | `description` | Text description associated with the result |
| Navigation | `url` | Direct link to the source page |
| Contact | `email` | Email address found in the public data |

#### Key Features of Swiggy Email Scraper ⚡

- ✅ **Keyword-Driven Search:** Use your own keywords to find relevant Swiggy leads and contacts based on the topics, roles, or businesses you care about.
- 📍 **Location Filter:** Narrow results by location when you want more focused regional lead generation.
- 📧 **Custom Domain Filtering:** Add email domains like `@gmail.com` or `@yahoo.com` to improve relevance and support more targeted outreach.
- 🔄 **Reliable Scraping:** Includes retries and fallbacks for resilience, helping the actor continue collecting public data even when some pages are less responsive.
- 💾 **Real-Time Saving:** Results are pushed to the dataset as they are found, so you don’t lose progress during longer runs.
- 📊 **Structured Output:** Every result is saved in a clean dataset format that is easy to export and analyze.
- ⚙️ **Configurable Limits:** Use `maxEmails` to control how many results the actor collects and keep runs predictable.
- 🌐 **Built-in Proxy Support:** Helps improve reliability during scraping of publicly available sources.

### How to Use Swiggy Email Scraper 🚀

1. **Open the Actor** — Start the **Swiggy Email Scraper** in Apify.
2. **Add Keywords** — Enter one or more keywords you want to search for.
3. **Set Optional Filters** — Add a location if you want more targeted results.
4. **Choose Email Domains** — Use custom domains to focus on the types of email addresses you want.
5. **Set the Limit** — Adjust `maxEmails` to control how many emails the run collects.
6. **Run the Actor** — Launch the scraper and monitor the logs.
7. **Export the Dataset** — Download the results from the dataset in JSON or CSV format.

No coding required. 🙌

### Swiggy Email Scraper Output Format 📦

The actor saves results to an Apify dataset called **Swiggy Emails Dataset**. Below is a realistic example of the structured output you can expect.

#### Input Example

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["manager", "founder"]` | A list of keywords or queries to search for. |
| `location` | String | No | `""` | Location to filter search results. |
| `customDomains` | Array | No | `["@gmail.com", "@yahoo.com"]` | List of custom email domains to match in the results. |
| `maxEmails` | Integer | No | `20` | Maximum number of emails to collect before the actor stops. |

#### Output Example

```json
[
  {
    "keyword": "manager",
    "title": "Swiggy Support Team",
    "description": "Customer support and merchant assistance for food delivery partners.",
    "url": "https://www.swiggy.com/support",
    "email": "support@swiggy.com"
  }
]
```

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that generated the result. |
| `title` | Title | text | The title or name associated with the record. |
| `description` | Description | text | Supporting text or summary from the source page. |
| `url` | Url | link | Direct link to the public page where the result was found. |
| `email` | Email | text | Email address extracted from publicly available data. |

### 🎯 Use Cases of Swiggy Email Scraper

- **B2B Lead Generation:** Build Swiggy restaurant leads and merchant contact lists for outreach campaigns and sales prospecting.
- **Email Marketing Campaigns:** Collect public business emails for newsletters, offers, and follow-up sequences.
- **Market Research:** Analyze Swiggy platform scraper results by keyword to identify business types, contact patterns, and regional opportunities.
- **Recruitment and Outreach:** Find public contact emails tied to relevant Swiggy-related pages for professional outreach.
- **Data Enrichment:** Add Swiggy account email extraction results to CRM or research datasets for better contact coverage.

### How Much Will Swiggy Email Scraper Cost You? 💰

This actor is designed for controlled, scalable scraping, and your cost is mainly influenced by how many results you ask it to collect. Use `maxEmails` to cap the run and keep spending predictable. Larger keyword sets and broader domain filters can produce more results, while tighter filters may reduce volume. For the best balance of cost and output, start with a smaller limit and expand as needed. 📈

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

This actor works with publicly available data only. It does not require login access, private profiles, or hidden content. As with any public web data workflow, you are responsible for following applicable laws and respecting Swiggy’s terms, privacy rules, and anti-spam regulations. Use the results for legitimate research, marketing, or outreach purposes. If you have questions or need help, contact <codebeatapi@gmail.com>.

### Swiggy Email Scraper Input Parameters 📋

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["manager", "founder"]` | A list of keywords or queries to search for. |
| `location` | String | No | `""` | Location to filter search results. |
| `customDomains` | Array | No | `["@gmail.com", "@yahoo.com"]` | List of custom email domains. |
| `maxEmails` | Integer | No | `20` | Maximum number of emails to collect. The scraper stops once this limit is reached. |

### During the Actor Run ⏱️

While the actor is running, you can follow progress in the Apify Console logs and watch results appear in the dataset in real time. The run duration depends on your keyword list, filters, and `maxEmails` setting. If a search is too narrow and returns few results, try broader keywords or remove the location filter for better coverage. 🔍

### Final Note ✉️

Start collecting Swiggy emails in minutes with the **Swiggy Email Scraper**. It’s a fast, practical way to automate Swiggy email harvesting and build clean, exportable lead lists. Questions or custom requests? Reach us at <codebeatapi@gmail.com>.

### FAQ — Swiggy Email Scraper ❓

#### How does the Swiggy Email Scraper find emails?

The actor uses your keywords and email-domain filters to find relevant contacts from publicly available sources on Swiggy-related pages. It only returns email addresses that appear in public data.

#### What types of Swiggy pages can I scrape?

You can scrape public Swiggy-related pages that contain matching keywords and visible contact information. The actor is designed for public web data only.

#### What can I use the Swiggy Email Scraper for?

It’s useful for lead generation, research, outreach, and contact discovery. Many users rely on it as a Swiggy contact extraction and Swiggy vendor email scraper workflow.

#### Why should I use a Swiggy scraping tool instead of manual research?

Manual research is slow and inconsistent. This actor automates the collection process, saves results in a structured dataset, and helps you scale Swiggy data extraction more efficiently.

#### How much does the Swiggy Email Scraper cost?

Your cost depends on how many emails you ask it to collect and how broadly you search. Use `maxEmails` to control the run size and keep budgets predictable.

#### What output does the actor produce?

It saves a dataset with five fields: `keyword`, `title`, `description`, `url`, and `email`. This makes export and analysis straightforward.

#### Can I use location filtering for Swiggy lead generation?

Yes. The `location` parameter lets you narrow your search results to a specific place, which is helpful when you want more regional or local leads.

#### How do I get help with the Swiggy Email Scraper?

For support, questions, or custom feature requests, contact <codebeatapi@gmail.com>.

### 🆘 Support & Feedback

Need help with the **Swiggy Email Scraper** or want a tailored feature for your workflow?

- 🐞 **Bug Reports:** Share any issues you encounter during a run.
- ✨ **Feature Requests:** Send your ideas for improved filters, output handling, or workflow customization.
- 📧 **Email:** <codebeatapi@gmail.com>

### Country & Time Targeting

Both filters are applied to the Google query itself, so they shape which pages
the dork is answered from rather than filtering after the fact.

**Target Country** - runs the search as if from that country (`gl`). Turn on
**Strict country filter** to additionally restrict results to pages Google
attributes to it (`cr=countryXX`); that is much tighter and returns noticeably
fewer results. Leave the country on *Global (no country filter)* for worldwide
results.

**Result Language** - restricts results to a single language (`hl` + `lr`).

**Time Range** - limits results to a publication window: past hour, 24 hours,
week, month, year, or an explicit *Custom range* using **Custom range: from** /
**to** in `YYYY-MM-DD` form. A page Google indexed last week is far more likely
to carry a live mailbox than one it last saw five years ago.

Selecting *Custom range* without either date falls back to no time filter rather
than searching all of time by accident.

# Actor input Schema

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

Find New Emails (default) searches Airbnb by keyword. Clean My List skips searching entirely and instead runs the emails you paste into Email List (below) through the same deliverability checks.

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

A list of keywords or queries to search for.

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

Location to filter search results.

## `customDomains` (type: `array`):

List of custom email domains

## `emailList` (type: `array`):

Paste the emails you want checked for deliverability. Only used when Scrape Mode is set to "Clean My List".

## `maxEmails` (type: `integer`):

Maximum number of emails to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.

## `verificationMode` (type: `string`):

Quick Check (default) validates syntax and MX records only - fast, no added latency. Deep Check additionally flags disposable-domain addresses and checks each domain against a public spam blocklist (Spamhaus DBL). Off skips validation entirely.

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

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

## `excludeCatchAll` (type: `boolean`):

Drop contacts on domains confirmed to accept mail for any address (only applies when that signal is available).

## `requireMxValid` (type: `boolean`):

Drop any contact whose domain has no valid mail server (MX record).

## `targetCountry` (type: `string`):

Ask Google to answer as if searching from this country. Leave on "Global (no country filter)" for worldwide results.

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

Restrict results to pages Google attributes to the target country (cr=countryXX), instead of 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. Recent pages are more likely to hold a mailbox that still works.

## `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 Emails",
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "emailList": [],
  "maxEmails": 20,
  "verificationMode": "Quick Check",
  "minQualityScore": 0,
  "excludeCatchAll": false,
  "requireMxValid": false,
  "targetCountry": "Global (no country filter)",
  "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": [
        "manager",
        "founder"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "emailList": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("code-beat/swiggy-email-scraper-ultra-fast-and-precise").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": [
        "manager",
        "founder",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "emailList": [],
}

# Run the Actor and wait for it to finish
run = client.actor("code-beat/swiggy-email-scraper-ultra-fast-and-precise").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": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "emailList": []
}' |
apify call code-beat/swiggy-email-scraper-ultra-fast-and-precise --silent --output-dataset

```

## MCP server setup

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

```

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/FEhBFAHQKghxZmXqu/builds/vb6w6qYthb2QgZRTc/openapi.json
