# Wanderlog Email Scraper (`leads-scraper/wanderlog-email-scraper`) Actor

Wanderlog Email Scraper SD - Wanderlog Email Scraper is a lead generation tool that extracts leads with public contact emails, account names and profile URLs from Wanderlog results by keyword, location and email domain - Wanderlog email extractor.

- **URL**: https://apify.com/leads-scraper/wanderlog-email-scraper.md
- **Developed by:** [Leads Scraper](https://apify.com/leads-scraper) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.49 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Wanderlog Email Scraper - public contact emails from Wanderlog travel guides

The Wanderlog Email Scraper collects publicly indexed contact emails that appear alongside Wanderlog pages in Google search results. It turns a keyword, a destination and a list of email domains into a clean, deduplicated dataset you can export as CSV, JSON or Excel.

One thing to understand before you start: Wanderlog pages are auto-generated travel guides rather than operator profiles, so rows usually identify a guide instead of a business. That single fact shapes everything about how you should use the Wanderlog Email Scraper, and it is stated again in the limitations and the FAQ below.

The Wanderlog Email Scraper never logs in, never opens Wanderlog itself, and never touches the Wanderlog API. It reads Google's public index through the Apify GOOGLE\_SERP proxy and nothing else.

#### What the Wanderlog Email Scraper actually reads

Wanderlog is a trip-planning and itinerary app. Its public web surface is a very large body of programmatically generated destination guides - best-of lists, things-to-do pages and saved itineraries.

Because almost every one of those pages is pinned to a place, the Wanderlog Email Scraper is unusually good at destination-led discovery. It is much weaker at supplier identity, and this README will not pretend otherwise.

#### Who the Wanderlog Email Scraper is for

The honest audience is destination marketing organisations mapping which places already have guide coverage, affiliate and content-partnership managers, and travel-tech vendors doing destination research before a market push.

If what you actually need is operator or supplier contacts, use the [Klook Email Scraper](https://apify.com/neuro-scraper/klook-email-scraper), the [TourRadar Email Scraper](https://apify.com/leads-scraper/tourradar-email-scraper) or the [Viator Email Scraper](https://apify.com/leads-scraper/viator-email-scraper) instead. Those platforms index businesses; Wanderlog indexes guides.

### Wanderlog Email Scraper features

Every feature listed here is something the Wanderlog Email Scraper genuinely does. Nothing in this table is aspirational.

| Feature | What it means in practice |
|---|---|
| Google `site:` targeting | Queries are scoped to `wanderlog.com`, so results stay on-platform |
| Query expansion | Base, quoted and `intitle:` phrasings, plus one variant per query modifier; base queries run first |
| Domain-filtered extraction | Only emails ending in your `customDomains` values are kept |
| Global deduplication | Each unique email is pushed once, across every query and every page |
| Email normalisation | Understands `name [at] domain [dot] com`, `name (at) domain`, `name @ domain.com`, `domain .com`, zero-width characters and the full-width `＠` |
| Junk filter | Rejects placeholders such as `email@`, `yourname@`, `test@`, `xxx@` and single-character locals |
| Boundary-correct matching | `@gmail.com` does not match inside `@gmail.company` or `@gmail.com.br` |
| Soft-wrap repair | Drops a hit that is only the tail of another email in the same block |
| Structural block parsing | Locates the `<h3>` title then the smallest surrounding block, instead of relying on Google's CSS class names |
| Whole-page fallback parser | If Google's markup changes, the run degrades to "emails without account details" rather than "no emails" |
| Block detection | CAPTCHA, "unusual traffic" and consent pages are detected and retried, not counted as empty |
| Retries and backoff | Up to 3 attempts per page, exponential backoff, a fresh proxy session per request |
| Failed-query requeue | Blocked or failed queries are re-queued once at the end of the run |
| Concurrency control | An `asyncio` worker pool with a shared stop signal on `maxEmails` |
| Resumable state | State is stored in the key-value store keyed by an input hash, and saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING` |
| Run summary | Logs pages fetched, blocked pages, retries and emails per page |

### How the Wanderlog Email Scraper works

The pipeline is short and completely transparent. There is no browser, no JavaScript rendering, no authentication and no cookies anywhere in it.

1. The Wanderlog Email Scraper reads your input: keywords, location, email domains and limits.
2. It builds Google queries with the `site:` operator against `wanderlog.com`, for example `site:wanderlog.com travel guide "@gmail.com" "Kyoto"`.
3. It fetches Google result pages through the Apify GOOGLE\_SERP proxy using async `aiohttp` requests.
4. It parses each result block structurally, locating the `<h3>` title and then the smallest surrounding block.
5. It extracts emails from that block text with a domain-filtered regex.
6. It deduplicates globally and pushes each lead straight to the Apify dataset.

Because step 6 is immediate, you can watch rows land while the run is still going, and abort early once you have enough for your travel lead generation campaign.

### Wanderlog Email Scraper input fields

Field names and defaults below are verbatim from the Wanderlog Email Scraper input schema. Only `keywords` is required.

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["travel guide", "itinerary"]` | Search terms describing the pages you want |
| `location` | string | `""` | Optional location phrase added to every query |
| `customDomains` | array | `["@gmail.com", "@yahoo.com"]` | Only emails on these domains are kept; the `@` is optional |
| `maxEmails` | integer 1-10000 | `20` | Stop after this many unique emails |
| `countryCode` | string | `""` | Two-letter country for the search proxy (US, GB, DE...) |
| `expandQueries` | boolean | `true` | Search each keyword x domain pair in several phrasings |
| `queryModifiers` | array | `["email", "contact", "bookings", "group tours", "partnerships"]` | Extra words combined with each keyword when expansion is on |
| `maxPagesPerQuery` | integer 1-50 | `30` | Page cap per query |
| `maxConcurrency` | integer 1-20 | `5` | Parallel queries |

#### JSON input example for the Wanderlog Email Scraper

This configuration runs the Wanderlog Email Scraper against Japanese itinerary planning pages, keeping only consumer mailbox domains.

```json
{
  "keywords": ["travel guide", "itinerary"],
  "location": "Kyoto",
  "customDomains": ["@gmail.com", "@yahoo.com"],
  "maxEmails": 50,
  "countryCode": "JP",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "bookings", "group tours", "partnerships"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

### Wanderlog Email Scraper output fields

Every dataset item produced by the Wanderlog Email Scraper carries all fourteen of these fields. There are no others.

| Field | Meaning |
|---|---|
| `network` | Platform name |
| `keyword` | The keyword that produced the lead |
| `query` | The exact Google query used |
| `title` | Raw result title |
| `accountName` | Account label Google prints |
| `fullName` | Display name parsed from a profile-style title; empty for post captions |
| `username` | URL-safe handle when the platform exposes one; otherwise `null` |
| `profileUrl` | Canonical account URL when a handle is known; otherwise empty |
| `url` | Direct platform link when exposed, else the profile URL |
| `description` | Bio/caption snippet, cleaned of labels and engagement counters |
| `email` | Lower-cased email address |
| `emailDomain` | The matched domain (e.g. `@gmail.com`) |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email - verify before sending |
| `foundAt` | ISO 8601 UTC timestamp |

#### JSON output example from the Wanderlog Email Scraper

Look closely at the `title` and `profileUrl` values. The handles are guide slugs, not businesses - which is exactly the point made in the intro.

```json
[
  {
    "network": "Wanderlog",
    "keyword": "travel guide",
    "query": "site:wanderlog.com travel guide \"@gmail.com\" \"Kyoto\"",
    "title": "The 50 best things to do in Kyoto - Wanderlog",
    "accountName": "best-things-to-do-in-kyoto",
    "fullName": "The 50 best things to do in Kyoto",
    "username": "best-things-to-do-in-kyoto",
    "profileUrl": "https://wanderlog.com/view/best-things-to-do-in-kyoto",
    "url": "https://wanderlog.com/view/best-things-to-do-in-kyoto",
    "description": "Temples, tea houses and day trips around Kyoto. Tips and corrections: kyotoguidedesk@gmail.com",
    "email": "kyotoguidedesk@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": false,
    "foundAt": "2026-08-31T09:14:22Z"
  },
  {
    "network": "Wanderlog",
    "keyword": "itinerary",
    "query": "site:wanderlog.com itinerary contact \"@gmail.com\" \"Kyoto\"",
    "title": "7-day Kyoto and Osaka itinerary - Wanderlog",
    "accountName": "7-day-kyoto-osaka-itinerary",
    "fullName": "7-day Kyoto and Osaka itinerary",
    "username": "7-day-kyoto-osaka-itinerary",
    "profileUrl": "https://wanderlog.com/view/7-day-kyoto-osaka-itinerary",
    "url": "https://wanderlog.com/view/7-day-kyoto-osaka-itinerary",
    "description": "A week across Kansai with transport notes. Partnership enquiries: kansai.trips@yahoo.com",
    "email": "kansai.trips@yahoo.com",
    "emailDomain": "@yahoo.com",
    "possiblyTruncated": false,
    "foundAt": "2026-08-31T09:15:03Z"
  },
  {
    "network": "Wanderlog",
    "keyword": "travel guide",
    "query": "site:wanderlog.com intitle:\"travel guide\" \"@gmail.com\"",
    "title": "Where to eat in Lisbon: a local travel guide - Wanderlog",
    "accountName": "where-to-eat-in-lisbon",
    "fullName": "Where to eat in Lisbon: a local travel guide",
    "username": "where-to-eat-in-lisbon",
    "profileUrl": "https://wanderlog.com/view/where-to-eat-in-lisbon",
    "url": "https://wanderlog.com/view/where-to-eat-in-lisbon",
    "description": "Bairro Alto, Alfama and Belem picks. Submissions to lisbonfoodnotes@gmail...",
    "email": "lisbonfoodnotes@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": true,
    "foundAt": "2026-08-31T09:15:41Z"
  }
]
```

The third row shows `possiblyTruncated: true`. Google's snippet ellipsis touched that address, so confirm it before you add it to any outreach sequence.

### Use cases for the Wanderlog Email Scraper

These are the applications the measured behaviour of the Wanderlog Email Scraper actually supports. Each assumes you understand you are collecting guide pages.

| Audience | How they use the Wanderlog Email Scraper |
|---|---|
| Destination marketing organisations | Map which destinations already carry guide coverage and where a region is under-represented |
| Content and affiliate managers | Find guide pages worth a travel content partnerships pitch or an affiliate placement |
| Travel-tech vendors | Run destination research before entering a market, and gather travel trade contacts published on guide pages |
| Travel PR teams | Identify itinerary planning pages covering a client destination |
| Tour aggregators | Spot destinations with heavy trip planning tool demand before recruiting supply there |
| Market researchers | Build a destination-by-destination picture of published travel guide pages |

### Destination-led targeting with location and countryCode

The `location` and `countryCode` inputs are the strongest levers the Wanderlog Email Scraper has, and they matter more here than on any other platform in this family. Nearly every indexed Wanderlog page is pinned to a place.

Set `location` to a city, region or country phrase and it is appended to every query the Wanderlog Email Scraper builds. "Lisbon", "Hokkaido", "Patagonia" and "Amalfi Coast" all behave sensibly.

Set `countryCode` to a two-letter code such as `US`, `GB`, `DE`, `JP` or `AU` and the search proxy resolves Google from that country. Pair it with a matching `location` for destination-led prospecting that reflects how travellers in that market actually search.

Run the same keywords across ten destinations in ten separate runs. That is a far better strategy than one broad run, because it works around the result cap described in the limitations.

### Tips for getting more from the Wanderlog Email Scraper

Widen `customDomains` beyond the `@gmail.com` and `@yahoo.com` defaults if you want business mailboxes. Adding `@outlook.com`, `@hotmail.com` or a specific corporate domain changes what the Wanderlog Email Scraper keeps, and it changes the yield profile substantially.

Keep `expandQueries` on. It is the mechanism that gets you past a single query's ceiling, and base queries still run first so the most relevant results arrive early.

Raise `maxConcurrency` carefully. Higher parallelism finishes a Wanderlog Email Scraper run sooner, but it increases the chance of blocked pages, which the Actor then has to retry.

Lower `maxEmails` for a quick sample before committing to a long run. A 20-email test tells you whether your keyword and domain combination is productive on this platform.

### Limitations of the Wanderlog Email Scraper

These constraints are stated plainly so you can decide whether the Wanderlog Email Scraper fits your project with full information.

- **Wanderlog pages are auto-generated travel guides rather than operator profiles, so rows usually identify a guide instead of a business.** In a live run of roughly 10 parsed result blocks, the Wanderlog Email Scraper produced about 10 identities, 10 profile URLs and 4 unique emails. Attribution is near-complete, but what is being attributed is a guide page, not a company. A full `profileUrl` column here is not a full operator column - the `username` you get is a guide slug.
- Only accounts whose email is **publicly visible in Google's index** can be found. If an address was never indexed, no configuration will surface it.
- Google caps a single query at roughly 300 results. Query expansion exists precisely because of that ceiling, and it is why running several narrow destination-led queries beats one broad one.
- `possiblyTruncated: true` means Google's snippet ellipsis may have cut the address short. Verify those rows before sending.
- The Wanderlog Email Scraper requires the Apify GOOGLE\_SERP proxy and cannot run without Apify proxy credentials.
- Free Apify plans are capped at 100 emails per run. Paid plans are uncapped.
- `username` and `profileUrl` are only populated when Google exposes a handle in the result. On some pages Google shows only a display name, leaving those fields empty. That is a Google limitation, not a bug.
- Results vary with keywords, domains and location. No volume is guaranteed.

### Responsible use and GDPR

The addresses the Wanderlog Email Scraper collects were published deliberately, on public pages, for enquiries. That is the basis on which you should treat them.

Identify yourself and your organisation in the first line. State plainly why you are writing and how you found the address. Honour opt-out requests immediately and permanently.

Keep a documented lawful basis under GDPR, and follow CAN-SPAM or your local equivalent. Legitimate interest can cover B2B outreach, but only if the message is genuinely relevant to the recipient's business and easy to stop.

### Wanderlog Email Scraper FAQ

#### How many results should I expect from the Wanderlog Email Scraper?

In a measured live run, roughly 10 parsed Google result blocks yielded about 10 identities, 10 profile URLs and 4 unique emails. That is a good attribution rate and a moderate email rate, but no volume is guaranteed - output depends entirely on your keywords, domains and location.

#### Does a 10-out-of-10 profile URL rate mean I get 10 operator profiles?

No, and this is the most important thing to understand. Those handles are auto-generated guide slugs. You are getting near-complete identification of guide pages, not of businesses.

#### Does the Wanderlog Email Scraper log into Wanderlog?

No. It never logs in, never opens the Wanderlog website and never uses the Wanderlog API. Everything comes from publicly indexed Google search results - titles, snippets and site labels.

#### Why is `username` sometimes `null` and `profileUrl` empty?

Those fields are populated only when Google exposes a handle in the result block. When Google prints just a display name, the row keeps `accountName` and `fullName` but leaves the handle fields empty. It is a Google limitation, not a defect.

#### What does `possiblyTruncated` mean?

It flags a row where Google's snippet ellipsis touched the email address, so the value may be incomplete. Treat every `possiblyTruncated` row from the Wanderlog Email Scraper as needing confirmation before use.

#### Is the Wanderlog Email Scraper affiliated with Wanderlog?

No. It is an independent tool, not officially supported, affiliated with or endorsed by Wanderlog. It only reads publicly indexed Google results.

#### Can I run the Wanderlog Email Scraper without Apify proxy credentials?

No. It depends on the Apify GOOGLE\_SERP proxy to fetch search result pages, so proxy access is a hard requirement.

#### How do I target a specific destination?

Set `location` to the place phrase and `countryCode` to the matching two-letter country code. Destination-led runs are the natural way to use the Wanderlog Email Scraper because the underlying pages are place-pinned.

#### Should I turn `expandQueries` off?

Usually not. Expansion runs each keyword and domain pair in several phrasings, which is how the Wanderlog Email Scraper works around Google's roughly 300-result ceiling per query.

#### Why am I only getting 100 emails?

Free Apify plans cap a run at 100 emails. Paid plans are uncapped, so raising `maxEmails` above 100 only takes effect on a paid plan.

#### Which Actor should I use instead if I want tour operator contacts?

Use the [Klook Email Scraper](https://apify.com/neuro-scraper/klook-email-scraper) for Asia-Pacific activity suppliers, the [TourRadar Email Scraper](https://apify.com/leads-scraper/tourradar-email-scraper) for independent multi-day operators, or the [GetYourGuide Email Scraper](https://apify.com/leads-scraper/getyourguide-email-scraper) for European activity providers.

#### How does this compare with the Lonely Planet Actor?

Both index content rather than businesses. The **Lonely Planet Email Scraper** covers editorial articles with almost no handle attribution, while the Wanderlog Email Scraper covers auto-generated guides with near-complete slug attribution.

#### Can I resume an interrupted Wanderlog Email Scraper run?

Yes. Run state is stored in the key-value store keyed by a hash of your input, and it is saved on Apify's `PERSIST_STATE`, `MIGRATING` and `ABORTING` events.

#### What export formats are available?

A Wanderlog Email Scraper dataset can be exported as CSV, JSON, Excel or XML from the Apify console, or pulled through the Apify API into your CRM.

#### What happens if Google changes its result markup?

The Wanderlog Email Scraper falls back to a whole-page parser, so a layout change degrades the run to "emails without account details" rather than "no emails at all".

### Related Actors

The Wanderlog Email Scraper is part of a family of Travel, Hospitality and Food email extractors that all share this pipeline and differ only in the platform they target.

| Actor | What it collects |
|---|---|
| [Airbnb Email Scraper](https://apify.com/leads-scraper/airbnb-email-scraper) | Public contact emails from Airbnb |
| [Booking.com Email Scraper](https://apify.com/leads-scraper/booking-com-email-scraper) | Public contact emails from Booking.com |
| [Caviar Email Scraper](https://apify.com/neuro-scraper/caviar-email-scraper) | Public contact emails from Caviar |
| [ChowNow Email Scraper](https://apify.com/neuro-scraper/chownow-email-scraper) | Public contact emails from ChowNow |
| [Contiki Email Scraper](https://apify.com/neuro-scraper/contiki-email-scraper) | Public contact emails from Contiki |
| [Craigslist Email Scraper](https://apify.com/leads-scraper/craigslist-email-scraper) | Public contact emails from Craigslist |
| [Delivery.com Email Scraper](https://apify.com/neuro-scraper/delivery-com-email-scraper) | Public contact emails from Delivery.com |
| [DoorDash Email Scraper](https://apify.com/leads-scraper/doordash-email-scraper) | Public contact emails from DoorDash |
| [EatStreet Email Scraper](https://apify.com/neuro-scraper/eatstreet-email-scraper) | Public contact emails from EatStreet |
| [G Adventures Email Scraper](https://apify.com/neuro-scraper/g-adventures-email-scraper) | Public contact emails from G Adventures |
| [GetYourGuide Email Scraper](https://apify.com/leads-scraper/getyourguide-email-scraper) | Public contact emails from GetYourGuide |
| [Grubhub Email Scraper](https://apify.com/leads-scraper/grubhub-email-scraper) | Public contact emails from Grubhub |
| [Hostelbookers Email Scraper](https://apify.com/leads-scraper/hostelbookers-email-scraper) | Public contact emails from Hostelworld |
| [HotelsCombined Email Scraper](https://apify.com/neuro-scraper/hotelscombined-email-scraper) | Public contact emails from HotelsCombined |
| [Intrepid Travel Email Scraper](https://apify.com/neuro-scraper/intrepid-travel-email-scraper) | Public contact emails from Intrepid Travel |
| [Just Eat Email Scraper](https://apify.com/leads-scraper/just-eat-email-scraper) | Public contact emails from Just Eat |
| [Klook Email Scraper](https://apify.com/neuro-scraper/klook-email-scraper) | Public contact emails from Klook |
| [OpenTable Email Scraper](https://apify.com/neuro-scraper/opentable-email-scraper) | Public contact emails from OpenTable |
| [Resy Email Scraper](https://apify.com/leads-scraper/resy-email-scraper) | Public contact emails from Resy |
| [TheFork Email Scraper](https://apify.com/leads-scraper/thefork-email-scraper) | Public contact emails from TheFork |
| [Toast Restaurant Email Scraper](https://apify.com/leads-scraper/toast-restaurant-email-scraper) | Public contact emails from Toast |
| [TourRadar Email Scraper](https://apify.com/leads-scraper/tourradar-email-scraper) | Public contact emails from TourRadar |
| [Traveloka Email Scraper](https://apify.com/leads-scraper/traveloka-email-scraper) | Public contact emails from Traveloka |
| [Tripadvisor Attractions Email Scraper](https://apify.com/leads-scraper/tripadvisor-attractions-email-scraper) | Public contact emails from Tripadvisor |
| [Tripadvisor Hotels Email Scraper](https://apify.com/leads-scraper/tripadvisor-hotels-email-scraper) | Public contact emails from Tripadvisor |
| [Tripadvisor Restaurants Email Scraper](https://apify.com/leads-scraper/tripadvisor-restaurants-email-scraper) | Public contact emails from Tripadvisor |
| [Uber Eats Email Scraper](https://apify.com/leads-scraper/uber-eats-email-scraper) | Public contact emails from Uber Eats |
| [Viator Email Scraper](https://apify.com/leads-scraper/viator-email-scraper) | Public contact emails from Viator |
| [Wego Email Scraper](https://apify.com/leads-scraper/wego-email-scraper) | Public contact emails from Wego |
| [Zomato Email Scraper](https://apify.com/leads-scraper/zomato-email-scraper) | Public contact emails from Zomato |
| [Airbnb Email and Phone Number Scraper](https://apify.com/leads-scraper/airbnb-email-and-phone-number-scraper) | Emails and phone numbers from Airbnb |
| [Booking.com Email and Phone Number Scraper](https://apify.com/leads-scraper/booking-com-email-and-phone-number-scraper) | Emails and phone numbers from Booking.com |
| [Caviar Email and Phone Number Scraper](https://apify.com/neuro-scraper/caviar-email-and-phone-number-scraper) | Emails and phone numbers from Caviar |
| [ChowNow Email and Phone Number Scraper](https://apify.com/neuro-scraper/chownow-email-and-phone-number-scraper) | Emails and phone numbers from ChowNow |
| [Contiki Email and Phone Number Scraper](https://apify.com/neuro-scraper/contiki-email-and-phone-number-scraper) | Emails and phone numbers from Contiki |
| [Craigslist Email and Phone Number Scraper](https://apify.com/leads-scraper/craigslist-email-and-phone-number-scraper) | Emails and phone numbers from Craigslist |
| [Delivery.com Email and Phone Number Scraper](https://apify.com/neuro-scraper/delivery-com-email-and-phone-number-scraper) | Emails and phone numbers from Delivery.com |
| [DoorDash Email and Phone Number Scraper](https://apify.com/leads-scraper/doordash-email-and-phone-number-scraper) | Emails and phone numbers from DoorDash |
| [EatStreet Email and Phone Number Scraper](https://apify.com/neuro-scraper/eatstreet-email-and-phone-number-scraper) | Emails and phone numbers from EatStreet |
| [G Adventures Email and Phone Number Scraper](https://apify.com/neuro-scraper/g-adventures-email-and-phone-number-scraper) | Emails and phone numbers from G Adventures |
| [Grubhub Email and Phone Number Scraper](https://apify.com/neuro-scraper/grubhub-email-and-phone-number-scraper) | Emails and phone numbers from Grubhub |
| [Hostelworld Email and Phone Number Scraper](https://apify.com/neuro-scraper/hostelbookers-email-and-phone-number-scraper) | Emails and phone numbers from Hostelworld |

### Leave a review

If the Wanderlog Email Scraper saved you time, please leave a star rating and a short review on
the Actor page.

Reviews are how other buyers judge whether a tool works, and they tell us which features to
build next.

If something did not work, email <neurodata.apify@gmail.com>
instead - bugs get fixed faster than they get complained about.

# Actor input Schema

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

Search terms describing the Wanderlog accounts you want (niche, job title, industry).

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

Optional location phrase added to every query (e.g. "New York").

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

Only emails ending with one of these domains are collected. With or without the leading @. Each domain is searched separately, so more domains means more results but a longer run - remove some for a faster, narrower search, or add your own (e.g. @company.com).

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

Stop once this many unique emails have been collected.

## `countryCode` (type: `string`):

Two-letter country code for the search proxy (e.g. US, GB, DE). Empty for any.

## `expandQueries` (type: `boolean`):

Search each keyword x domain pair with several phrasings. Recommended - Google caps a single query at ~300 results.

## `queryModifiers` (type: `array`):

Extra words combined with each keyword when Expand queries is on. Tuned for Wanderlog.

## `maxPagesPerQuery` (type: `integer`):

Google rarely returns more than ~30 pages for one query.

## `maxConcurrency` (type: `integer`):

How many queries run in parallel.

## Actor input object example

```json
{
  "keywords": [
    "travel guide",
    "itinerary"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "contact",
    "bookings",
    "group tours",
    "partnerships"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

## `results` (type: `string`):

Records produced by Wanderlog Email Scraper, stored in the run's default dataset.

# 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": [
        "travel guide",
        "itinerary"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "bookings",
        "group tours",
        "partnerships"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("leads-scraper/wanderlog-email-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": [
        "travel guide",
        "itinerary",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "bookings",
        "group tours",
        "partnerships",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("leads-scraper/wanderlog-email-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": [
    "travel guide",
    "itinerary"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact",
    "bookings",
    "group tours",
    "partnerships"
  ]
}' |
apify call leads-scraper/wanderlog-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,leads-scraper/wanderlog-email-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/2FdK1aWI2mb73mHdW/builds/GdYOl1B1bGN83aR7s/openapi.json
