Europages Suppliers Scraper

Extract public supplier company records from Europages search/category pages for lead generation, sourcing, and market research.

Data fields

FieldTypeDescription
sourcestringValue exported as source.
sourceIdstring | nullValue exported as sourceId.
searchUrlstringValue exported as searchUrl.
profileUrlstringValue exported as profileUrl.
companyNamestringValue exported as companyName.
descriptionstring | nullValue exported as description.
citystring | nullValue exported as city.
countrystring | nullValue exported as country.

Input preview

startUrlsStart URLs
querySearch query
countryCodeCountry code
maxItemsMaximum company records
includeDetailsVisit company profile pages
maxConcurrencyMaximum concurrency

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Extract public supplier company records from Europages search and category pages for lead generation, sourcing, procurement, and market research.

Use this Actor when you need structured Europages supplier lists that can be exported to CSV, JSON, Excel, API, or automation tools.

At a glance

  • Primary job: Turn public Europages supplier search/category pages into structured company lead records.
  • Input: Paste Europages category/search URLs or enter a query such as machining.
  • Output: One dataset row per unique supplier company with profile URL, location, employee range, and optional public contacts.
  • Best for: B2B sourcing, supplier discovery, CRM imports, market mapping, and recurring lead monitoring.

Common workflows

  • Supplier sourcing: Collect companies from a product or service category such as machining, packaging, plastics, or textiles.
  • Lead generation: Export company names, public profile URLs, websites, phones, and emails when visible for CRM enrichment.
  • Market research: Compare suppliers by country, city, employee range, and area served.
  • Monitoring: Schedule repeated bounded runs for important supplier categories and compare new results over time.
  • Automation: Use Apify API, webhooks, MCP, or dataset exports to feed sales, procurement, or BI workflows.

Input recipes

  • Machining supplier smoke test: startUrls: [{"url":"https://www.europages.co.uk/companies/machining.html"}], maxItems: 10, includeDetails: false.
  • Query-based category run: query: "packaging", maxItems: 30, includeDetails: false.
  • Contact enrichment sample: Use a focused category URL with maxItems: 15 and includeDetails: true to visit public company profiles.

What data can you extract?

Field Description
source Fixed source label, europages.
sourceId Stable ID parsed from the Europages profile URL when available.
searchUrl Listing/search page where the company was found.
profileUrl Public Europages company profile URL.
companyName Supplier company name.
description Public listing/profile description when available.
city Company city/locality when available.
country Company country or country code as exposed by Europages.
addressText Combined public address text when available.
website Public company website when visible.
phones Public phone numbers found in structured data or profile links.
emails Public email addresses found on the public profile page when available.
employeeRange Public employee range from Europages structured data.
areaServed Public area served, such as international.
products Public product/service tags when exposed.
certifications Reserved for public certifications/badges when stable.
position Position in the source Europages result list.
detailStatus Whether profile detail enrichment was not requested, succeeded, not found, or failed.
scrapedAt ISO timestamp when the record was saved.

Example input

{
  "startUrls": [
    { "url": "https://www.europages.co.uk/companies/machining.html" }
  ],
  "maxItems": 30,
  "includeDetails": false
}

Example output

{
  "source": "europages",
  "sourceId": "00000005519114-001",
  "searchUrl": "https://www.europages.co.uk/companies/machining.html",
  "profileUrl": "https://www.europages.co.uk/ILK-IHRACAT-AS/00000005519114-001.html",
  "companyName": "ILK IHRACAT AS.",
  "description": null,
  "city": "Izmir",
  "country": "TR",
  "addressText": "Izmir, TR",
  "website": null,
  "phones": [],
  "emails": [],
  "employeeRange": "50-99",
  "areaServed": "international",
  "products": [],
  "certifications": [],
  "position": 1,
  "detailStatus": "not_requested",
  "scrapedAt": "2026-07-18T08:00:00.000Z"
}

Tips for best results

  • Start small: Use maxItems: 10 until output quality and pricing are verified.
  • Prefer precise categories: Europages category URLs usually produce cleaner supplier lists than broad keywords.
  • Use detail enrichment selectively: includeDetails can add public contacts but makes runs slower because profile pages are visited.
  • Expect optional blanks: Europages does not expose every phone, email, website, or certification publicly.

API usage

Node.js:

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor("fetch_cat/europages-suppliers-scraper").call({
  startUrls: [{ url: "https://www.europages.co.uk/companies/machining.html" }],
  maxItems: 30,
  includeDetails: false
});
console.log(run.defaultDatasetId);

Python:

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fetch_cat/europages-suppliers-scraper").call(run_input={
    "startUrls": [{ "url": "https://www.europages.co.uk/companies/machining.html" }],
    "maxItems": 30,
    "includeDetails": False,
})
print(run["defaultDatasetId"])

cURL:

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~europages-suppliers-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls":[{"url":"https://www.europages.co.uk/companies/machining.html"}],"maxItems":30,"includeDetails":false}'

MCP and AI agents

Use this Actor from MCP-compatible tools through the official Apify MCP Server.

claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/europages-suppliers-scraper"
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/europages-suppliers-scraper"
    }
  }
}

Example prompt: "Run Europages Suppliers Scraper for machining suppliers and summarize countries represented in the dataset."

Limits and caveats

  • Public data only: The Actor does not log in, submit forms, reveal private contacts, or access private messages.
  • Coverage: Results depend on Europages public pages and category availability.
  • Freshness: Supplier details can change after a run finishes.
  • Rate limits: Public endpoints may throttle very large or frequent runs; keep concurrency conservative.

Legality and responsible use

Process only data that you are allowed to access. Follow Europages terms, Apify's terms, and applicable laws. Use contact data responsibly and comply with outreach, privacy, and anti-spam rules in your jurisdiction.

Support

Open an issue from the Actor page if a run fails or output looks wrong. Include the run ID or run URL, input JSON, expected output, actual output, and a reproducible public URL such as a Europages category or profile page.

Common questions

Questions and answers reused from the canonical actor README.

Can I export results?

Yes. Apify datasets support JSON, CSV, Excel, XML, RSS, and API access.

Why are some fields empty?

Some Europages profiles do not expose every contact or company detail publicly. The Actor leaves unavailable fields empty instead of guessing.

Does this submit Europages contact forms?

No. It only extracts information visible on public listing and company profile pages.