# EU-Startups Email Scraper (`neuro-scraper/eu-startups-email-scraper`) Actor

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

- **URL**: https://apify.com/neuro-scraper/eu-startups-email-scraper.md
- **Developed by:** [Neuro Scraper](https://apify.com/neuro-scraper) (community)
- **Security:** Limited permissions
- **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

### What the EU-Startups Email Scraper does

The EU-Startups Email Scraper collects public contact emails from publicly indexed EU-Startups pages and returns them as structured, ready-to-use lead rows.
EU-Startups is a European startup news and directory site: it covers funding rounds, launches, hiring and country-by-country ecosystem reporting, and it maintains directory listings alongside the editorial.
That mix of news pages and directory profiles is why the EU-Startups Email Scraper is one of the strongest sources in this family for reaching European founders.

In a measured ten-block sample, the EU-Startups Email Scraper matched 10 result blocks, resolved account identity on 10, produced 10 profile URLs and returned 8 unique emails.
Only F6S scored higher. Yields still vary with keywords, domains and country, and no volume is guaranteed.

The Actor never logs into EU-Startups, never opens the site and never uses any EU-Startups API.
It builds Google `site:eu-startups.com` queries from your keywords, fetches result pages through the Apify GOOGLE_SERP proxy, and extracts emails from the titles and snippets Google already publishes.
There is no browser, no JavaScript rendering, no authentication and no cookies.

#### Why geography matters here

EU-Startups organises a great deal of its coverage by country and by city, from Berlin and Paris to Lisbon, Tallinn and Warsaw.
That makes `location` and `countryCode` genuine levers on this platform rather than optional extras, and the EU-Startups Email Scraper is at its best when you use them.
Running one country at a time and deduplicating afterwards almost always beats a single pan-European run.

#### Who the EU-Startups Email Scraper is for

Venture and angel investors sourcing European deal flow use the EU-Startups Email Scraper to reach founders in a named market.
Accelerator and incubator programme managers use it to recruit cohorts country by country.
Startup-service vendors - legal, banking, cloud credits, recruiting - use it because a recently funded European startup is actively choosing providers.

M\&A analysts and market researchers use it to map who is active in a European vertical before making contact.
B2B founders selling into Europe use it as a cold outreach list builder with real geographic precision.
Founders and companies featured on EU-Startups publish contact details because they want press, partners and investors to reach them.

### Key features of the EU-Startups Email Scraper

Every feature in the EU-Startups Email Scraper serves one of two goals: getting past Google's per-query result ceiling, and making sure the addresses that survive are real.
All of it runs on every execution.

| Feature | What it means in practice |
|---|---|
| Google-indexed extraction | Reads `site:eu-startups.com` result blocks through the Apify GOOGLE_SERP proxy - no login, no browser, no cookies |
| Geographic targeting | `location` and `countryCode` map onto EU-Startups' country-by-country coverage |
| Domain-filtered emails | Only addresses on your `customDomains` list are kept |
| Query expansion | Base, quoted and `intitle:` phrasings plus one variant per query modifier, because Google caps a single query at roughly 300 results |
| Global deduplication | Every email is unique across all queries and all pages in a run |
| Email normalisation | Handles `name [at] domain [dot] com`, `name (at) domain`, `name @ domain.com`, `domain .com`, zero-width characters and the full-width `＠` |
| Junk filtering | Rejects placeholders such as `email@`, `yourname@`, `test@`, `xxx@` and single-character locals |
| Boundary-correct matching | `@gmail.com` will 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 result block |
| Structural block parsing | Finds the `<h3>` title and the smallest surrounding block instead of relying on Google's CSS class names |
| Whole-page fallback | If Google's markup changes, a run degrades to emails without account details rather than to nothing |
| Block detection | CAPTCHA, "unusual traffic" and consent pages are detected and retried, not counted as empty |
| Retries and re-queue | Up to 3 attempts per page with exponential backoff and a fresh proxy session; failed queries are re-queued once at the end |
| Resumable state | Progress is stored in the key-value store keyed by an input hash and saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING` |
| Async concurrency | An `asyncio` worker pool with a shared stop signal on `maxEmails` |

### How the EU-Startups Email Scraper works

The EU-Startups Email Scraper runs the same six steps on every execution, and none of them touch the EU-Startups website itself.
The pipeline is async Python over `aiohttp` against Google, which keeps runs fast and cheap.

1. It reads your input: keywords, location, email domains and limits.
2. It builds Google queries with the `site:` operator against `eu-startups.com`, for example `site:eu-startups.com founder "@gmail.com" "Barcelona"`.
3. It fetches Google result pages through the Apify GOOGLE_SERP proxy.
4. It parses each result block structurally by locating the `<h3>` title and the smallest surrounding block.
5. It extracts emails from the block text with a domain-filtered regex.
6. It deduplicates globally and pushes each lead straight to the Apify dataset.

Base queries run first, so the most relevant results land before the expanded variants.
The run summary logs pages fetched, blocked pages, retries and emails per page, which tells you immediately whether a thin run was a keyword problem or a rate problem.

### Input fields for the EU-Startups Email Scraper

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["startup", "founder"]` | Search terms describing the accounts you want (niche, job title, industry) |
| `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","press","partnerships","sales"]` | 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 |

A realistic country-focused input for the EU-Startups Email Scraper:

```json
{
  "keywords": ["fintech startup", "founder", "seed round"],
  "location": "Barcelona",
  "customDomains": ["@gmail.com", "@outlook.com"],
  "maxEmails": 250,
  "countryCode": "ES",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "press", "partnerships", "sales"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

### Output fields the EU-Startups Email Scraper returns

Every dataset item the EU-Startups Email Scraper writes carries all fourteen fields below - no optional extras, no hidden columns.

| 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 snippet, cleaned of labels and engagement counters |
| `email` | Lower-cased email address |
| `emailDomain` | The matched domain |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email |
| `foundAt` | ISO 8601 UTC timestamp |

A typical row from the EU-Startups Email Scraper:

```json
{
  "network": "EU-Startups",
  "keyword": "fintech startup",
  "query": "site:eu-startups.com fintech startup \"@gmail.com\"",
  "title": "Barcelona-based Sendal raises EUR 3M for SME payments - EU-Startups",
  "accountName": "Sendal",
  "fullName": "Sendal",
  "username": "barcelona-based-sendal-raises-3m",
  "profileUrl": "https://www.eu-startups.com/barcelona-based-sendal-raises-3m/",
  "url": "https://www.eu-startups.com/barcelona-based-sendal-raises-3m/",
  "description": "Sendal builds embedded payments for Spanish SMEs. Press and partnerships: sendal.press@gmail.com",
  "email": "sendal.press@gmail.com",
  "emailDomain": "@gmail.com",
  "possiblyTruncated": false,
  "foundAt": "2026-02-11T14:22:40Z"
}
```

### Use cases for the EU-Startups Email Scraper

| Audience | How they use the EU-Startups Email Scraper |
|---|---|
| Venture and angel investors | Source European deal flow country by country |
| Accelerator programme managers | Recruit cohorts from a named European market |
| Corporate innovation teams | Find European startups for pilots and partnerships |
| Cloud, banking and legal vendors | Reach recently funded teams while decisions are open |
| Recruiters | Identify European startups that are scaling and hiring |
| M\&A and market analysts | Map a European vertical before opening a conversation |
| PR and media teams | Contact founders who published a press address |
| B2B SaaS founders | Build a geographically precise cold outreach list |

### Example runs with the EU-Startups Email Scraper

Three input shapes cover most of what people ask the EU-Startups Email Scraper to do.
Start broad, then narrow once you can see which keywords produce rows.

A pan-European discovery run, the usual first run of the EU-Startups Email Scraper:

```json
{
  "keywords": ["startup", "founder", "funding round"],
  "customDomains": ["@gmail.com", "@yahoo.com"],
  "maxEmails": 500,
  "expandQueries": true
}
```

A single-country run using both geographic levers, which is where the EU-Startups Email Scraper is strongest:

```json
{
  "keywords": ["startup founder", "scaleup"],
  "location": "Amsterdam",
  "countryCode": "NL",
  "customDomains": ["@gmail.com"],
  "maxEmails": 200
}
```

A vertical run with expansion off, when you want the EU-Startups Email Scraper to match one literal phrase:

```json
{
  "keywords": ["climate tech funding"],
  "customDomains": ["@gmail.com"],
  "expandQueries": false,
  "maxEmails": 60,
  "maxConcurrency": 3
}
```

### Tips to get more from the EU-Startups Email Scraper

Run one country at a time. Each `location` value opens its own expanded query set, so five country runs will nearly always beat one generic European run.
Match `countryCode` to the `location` phrase so the search proxy and the query agree.

Keep `expandQueries` on for discovery, since Google caps a single query at roughly 300 results and expansion is the only way past that ceiling.
The `press` and `partnerships` modifiers are especially productive on a news-driven site, because those are the addresses editorial coverage tends to name.

Widen `customDomains` when a run comes back thin - European founders publish personal `@gmail.com` and `@outlook.com` addresses often, and regional providers are worth adding too.
Raise `maxConcurrency` carefully, because pushing Google harder mostly produces more blocked pages, which the run summary will show.

### Limitations of the EU-Startups Email Scraper

The EU-Startups Email Scraper only finds accounts whose email is publicly visible in Google's index - if a founder never published an address, no Google-based tool can find it.
Google caps a single query at roughly 300 results, which is exactly why query expansion exists and defaults to on.

`possiblyTruncated: true` means Google's snippet ellipsis touched the address, so verify those rows before sending anything.
`username` and `profileUrl` are only populated when Google's result exposes a handle; where Google prints only a display name, those fields stay empty while `accountName` and `fullName` are filled in - a Google limitation, not a bug.

Because much of EU-Startups is editorial, some rows will identify an article about a company rather than a standalone company profile.
The Actor 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, and results vary with keywords, domains and location, with no volume guaranteed.

### Responsible use and GDPR

This Actor is pointed squarely at the EU, so treat every address the EU-Startups Email Scraper returns as personal data under GDPR.
Have a lawful basis for your outreach, identify yourself clearly, explain why you are writing, honour opt-outs immediately and keep your list current and accurate.
This is general responsible-use guidance, not legal advice - check your own obligations before running a campaign.

### FAQ about the EU-Startups Email Scraper

#### How many results should I expect from the EU-Startups Email Scraper?

In a measured ten-block sample it resolved identity on 10 blocks, produced 10 profile URLs and returned 8 unique emails, second only to F6S in this family.
Your own numbers depend on keywords, domains, country and `maxEmails`, and no volume is guaranteed.

#### Does the EU-Startups Email Scraper log into EU-Startups?

No. It never logs in, never opens the EU-Startups website and never uses an EU-Startups API. It reads publicly indexed Google results only.

#### Where do the emails the EU-Startups Email Scraper returns come from?

From the titles, snippets and site labels Google already publishes for `eu-startups.com` pages. Nothing private is accessed.

#### How do I target one country?

Set `location` to a city or country phrase and `countryCode` to the matching two-letter code, then run the EU-Startups Email Scraper once per market and deduplicate afterwards.

#### Are the rows companies or articles?

Both. EU-Startups mixes directory listings with news coverage, so some rows from the EU-Startups Email Scraper identify an article about a startup while still carrying a usable contact address.

#### Does the EU-Startups Email Scraper return duplicates?

No. Deduplication is global across every query and page in a run, so each address appears once.

#### Can the EU-Startups Email Scraper filter to company domains instead of `@gmail.com`?

Yes. Put any domains you want in `customDomains`, with or without the leading `@`.
Boundary-correct matching means `@gmail.com` will not accidentally match `@gmail.company`.

#### Why are some `username` and `profileUrl` fields empty?

Google sometimes prints only a display name, and with no handle exposed there is no canonical profile URL. The rest of the row is still complete.

#### What does `possiblyTruncated` mean?

It flags a row where Google's snippet ellipsis touched the email, so the address may be cut short. Verify those rows before sending.

#### Does the EU-Startups Email Scraper need a proxy?

Yes. It requires the Apify GOOGLE_SERP proxy and will not run without Apify proxy credentials.

#### Is there a free-plan limit on the EU-Startups Email Scraper?

Free Apify plans are capped at 100 emails per run. Paid plans are uncapped.

#### Can I resume an interrupted run of the EU-Startups Email Scraper?

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

#### What should I combine it with?

Pair the EU-Startups Email Scraper with the [F6S Email Scraper](https://apify.com/leads-scraper/f6s-email-scraper) for volume, the [BetaList Email Scraper](https://apify.com/leads-scraper/betalist-email-scraper) for pre-launch teams and the **StartupBlink Email Scraper** for ecosystem depth.

### Related Actors

The EU-Startups Email Scraper is one of twenty Actors in the Software, SaaS and Startup family, all running the same engine against a different platform.
For the highest email yield start with the [F6S Email Scraper](https://apify.com/leads-scraper/f6s-email-scraper); for pre-launch products add the [BetaList Email Scraper](https://apify.com/leads-scraper/betalist-email-scraper); for city-level ecosystem data add the **StartupBlink Email Scraper**, and for local community organisers the **Startup Grind Email Scraper**.

| Actor | What it collects |
|---|---|
| [EU-Startups Email and Phone Number Scraper](https://apify.com/neuro-scraper/eu-startups-email-and-phone-number-scraper) | Emails and phone numbers from EU-Startups |
| [EU-Startups Phone Number Scraper](https://apify.com/neuro-scraper/eu-startups-phone-number-scraper) | Public phone numbers from EU-Startups |
| [AlternativeTo Email Scraper](https://apify.com/leads-scraper/alternativeto-email-scraper) | Public contact emails from AlternativeTo |
| [BetaList Email Scraper](https://apify.com/leads-scraper/betalist-email-scraper) | Public contact emails from BetaList |
| [BuiltWith Email Scraper](https://apify.com/leads-scraper/builtwith-email-scraper) | Public contact emails from BuiltWith |
| [CB Insights Email Scraper](https://apify.com/neuro-scraper/cb-insights-email-scraper) | Public contact emails from CB Insights |
| [Dealroom Email Scraper](https://apify.com/leads-scraper/dealroom-email-scraper) | Public contact emails from Dealroom |
| [F6S Email Scraper](https://apify.com/leads-scraper/f6s-email-scraper) | Public contact emails from F6S |
| [Failory Email Scraper](https://apify.com/neuro-scraper/failory-email-scraper) | Public contact emails from Failory |
| [Product Hunt Email Scraper](https://apify.com/leads-scraper/product-hunt-email-scraper) | Public contact emails from Product Hunt |
| [SaaSHub Email Scraper](https://apify.com/neuro-scraper/saashub-email-scraper) | Public contact emails from SaaSHub |
| [SaaSworthy Email Scraper](https://apify.com/neuro-scraper/saasworthy-email-scraper) | Public contact emails from SaaSworthy |
| [Software Advice Email Scraper](https://apify.com/leads-scraper/software-advice-email-scraper) | Public contact emails from Software Advice |
| [SourceForge Companies Email Scraper](https://apify.com/leads-scraper/sourceforge-companies-email-scraper) | Public contact emails from SourceForge |
| [Tracxn Email Scraper](https://apify.com/leads-scraper/tracxn-email-scraper) | Public contact emails from Tracxn |
| [Wappalyzer Email Scraper](https://apify.com/leads-scraper/wappalyzer-email-scraper) | Public contact emails from Wappalyzer |
| [Wellfound Startup Email Scraper](https://apify.com/leads-scraper/wellfound-startup-email-scraper) | Public contact emails from Wellfound |
| [AlternativeTo Email and Phone Number Scraper](https://apify.com/neuro-scraper/alternativeto-email-and-phone-number-scraper) | Emails and phone numbers from AlternativeTo |
| [BetaList Email and Phone Number Scraper](https://apify.com/neuro-scraper/betalist-email-and-phone-number-scraper) | Emails and phone numbers from BetaList |
| [CB Insights Email and Phone Number Scraper](https://apify.com/neuro-scraper/cb-insights-email-and-phone-number-scraper) | Emails and phone numbers from CB Insights |
| [Dealroom Email and Phone Number Scraper](https://apify.com/leads-scraper/dealroom-email-and-phone-number-scraper) | Emails and phone numbers from Dealroom |
| [F6S Email and Phone Number Scraper](https://apify.com/neuro-scraper/f6s-email-and-phone-number-scraper) | Emails and phone numbers from F6S |
| [Failory Email and Phone Number Scraper](https://apify.com/neuro-scraper/failory-email-and-phone-number-scraper) | Emails and phone numbers from Failory |
| [Product Hunt Email and Phone Number Scraper](https://apify.com/leads-scraper/product-hunt-email-and-phone-number-scraper) | Emails and phone numbers from Product Hunt |
| [SaaSHub Email and Phone Number Scraper](https://apify.com/neuro-scraper/saashub-email-and-phone-number-scraper) | Emails and phone numbers from SaaSHub |
| [SaaSworthy Email and Phone Number Scraper](https://apify.com/neuro-scraper/saasworthy-email-and-phone-number-scraper) | Emails and phone numbers from SaaSworthy |
| [Software Advice Email and Phone Number Scraper](https://apify.com/neuro-scraper/software-advice-email-and-phone-number-scraper) | Emails and phone numbers from Software Advice |
| [SourceForge Email and Phone Number Scraper](https://apify.com/neuro-scraper/sourceforge-companies-email-and-phone-number-scraper) | Emails and phone numbers from SourceForge |
| [Wappalyzer Email and Phone Number Scraper](https://apify.com/leads-scraper/wappalyzer-email-and-phone-number-scraper) | Emails and phone numbers from Wappalyzer |
| [Wellfound Email and Phone Number Scraper](https://apify.com/leads-scraper/wellfound-startup-email-and-phone-number-scraper) | Emails and phone numbers from Wellfound |
| [AlternativeTo Phone Number Scraper](https://apify.com/neuro-scraper/alternativeto-phone-number-scraper) | Public phone numbers from AlternativeTo |
| [BetaList Phone Number Scraper](https://apify.com/neuro-scraper/betalist-phone-number-scraper) | Public phone numbers from BetaList |
| [CB Insights Phone Number Scraper](https://apify.com/neuro-scraper/cb-insights-phone-number-scraper) | Public phone numbers from CB Insights |
| [Dealroom Phone Number Scraper](https://apify.com/leads-scraper/dealroom-phone-number-scraper) | Public phone numbers from Dealroom |
| [F6S Phone Number Scraper](https://apify.com/neuro-scraper/f6s-phone-number-scraper) | Public phone numbers from F6S |
| [Failory Phone Number Scraper](https://apify.com/neuro-scraper/failory-phone-number-scraper) | Public phone numbers from Failory |
| [Product Hunt Phone Number Scraper](https://apify.com/leads-scraper/product-hunt-phone-number-scraper) | Public phone numbers from Product Hunt |
| [SaaSHub Phone Number Scraper](https://apify.com/neuro-scraper/saashub-phone-number-scraper) | Public phone numbers from SaaSHub |
| [SaaSworthy Phone Number Scraper](https://apify.com/neuro-scraper/saasworthy-phone-number-scraper) | Public phone numbers from SaaSworthy |
| [Software Advice Phone Number Scraper](https://apify.com/neuro-scraper/software-advice-phone-number-scraper) | Public phone numbers from Software Advice |
| [SourceForge Phone Number Scraper](https://apify.com/neuro-scraper/sourceforge-companies-phone-number-scraper) | Public phone numbers from SourceForge |
| [Wappalyzer Phone Number Scraper](https://apify.com/leads-scraper/wappalyzer-phone-number-scraper) | Public phone numbers from Wappalyzer |

### Leave a review

If the EU-Startups 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.

### Support

Questions about the EU-Startups Email Scraper, a thin run you want reviewed, or a custom build? Email neurodata.apify@gmail.com with the keywords, location and domains you used.

# Actor input Schema

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

Search terms describing the EU-Startups 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 EU-Startups.

## `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": [
    "startup",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "contact",
    "press",
    "partnerships",
    "sales"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

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

Records produced by EU-Startups 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": [
        "startup",
        "founder"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "press",
        "partnerships",
        "sales"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("neuro-scraper/eu-startups-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": [
        "startup",
        "founder",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "press",
        "partnerships",
        "sales",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("neuro-scraper/eu-startups-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": [
    "startup",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact",
    "press",
    "partnerships",
    "sales"
  ]
}' |
apify call neuro-scraper/eu-startups-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,neuro-scraper/eu-startups-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/xTckX58hQaigN79M0/builds/J4Zd3qAVeIqb8iZ7c/openapi.json
