Thomson Local Business Scraper avatar

Thomson Local Business Scraper

Pricing

Pay per event

Go to Apify Store
Thomson Local Business Scraper

Thomson Local Business Scraper

Scrape public UK Thomson Local business listings for lead generation: names, phones, addresses, websites, ratings, and profile URLs.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Extract public UK business leads from Thomson Local search results and business profile pages.

Use this Apify Actor to collect company names, categories, postal addresses, phone numbers, websites, profile URLs, ratings, review counts, badges, and short descriptions from Thomson Local.

What does Thomson Local Business Scraper do?

Thomson Local Business Scraper turns Thomson Local category and location searches into structured lead records.

It is designed for public business-directory data.

You can provide category/location pairs such as plumbers + London.

You can also provide Thomson Local search URLs directly.

The Actor follows pagination when a next-page link is available.

It can optionally open public business profile pages for enrichment.

Who is it for? Thomson Local Business Scraper users

Lead-generation agencies

Build prospect lists for local outreach campaigns.

Local SEO consultants

Find businesses in a target niche and city.

Sales teams

Collect phone and website fields for UK business prospecting.

Market researchers

Compare density of trades, services, and categories across UK locations.

Data teams

Create repeatable Thomson Local extracts for dashboards or CRM imports.

Why use this Actor?

  • 🌍 Focused on a UK business directory source.
  • πŸ“ Supports category + location searches.
  • ☎️ Extracts phone and address lead data where public.
  • πŸ”— Captures profile and website URLs for verification.
  • ⭐ Includes ratings and review counts when available.
  • 🧾 Outputs clean JSON rows in an Apify dataset.
  • βš™οΈ Offers optional profile-page enrichment.

Data extracted

FieldDescription
businessNamePublic business/listing name
categoryThomson Local category or breadcrumb context
addressPublic postal address text
localityCity/town when detected
postalCodeUK postcode when detected
phonePublic phone number when available
websiteBusiness website URL when available
profileUrlThomson Local business profile URL
searchUrlSearch page where the record was found
ratingRating text/value when visible
reviewCountNumber of reviews when visible
descriptionListing/profile description snippet
badgesPublic badges such as quote/availability labels when visible
sourceAlways thomsonlocal.com
scrapedAtISO timestamp of extraction

How much does it cost to scrape Thomson Local business leads?

The Actor uses pay-per-event pricing.

There is a small start event per run.

Each saved business lead is charged as an item event.

Exact tiered prices are shown on the Apify Store page after the Actor is configured for production.

Use a low maxItems value for your first run.

Input options

Category/location searches

Use searches to enter objects like:

[
{ "category": "plumbers", "location": "London" },
{ "category": "electricians", "location": "Manchester" }
]

Start URLs

Use startUrls when you already have a Thomson Local URL.

[
{ "url": "https://www.thomsonlocal.com/search/plumbers/london" }
]

Maximum businesses

maxItems controls the total number of saved rows.

Maximum pages

maxPages controls how many search pages are followed for each search.

Include details

includeDetails visits public profile pages for enrichment when profile links are available. It is off by default for fast lead-list collection; enable it when you need richer profile-page data.

Use proxy

useProxy is enabled by default because Thomson Local rejects Apify cloud direct IPs. You can disable it for local/direct network tests.

Example input

{
"searches": [
{ "category": "plumbers", "location": "London" }
],
"maxItems": 25,
"maxPages": 3,
"includeDetails": false,
"useProxy": true
}

Example output

{
"businessName": "Example Plumbing Ltd",
"category": "Plumbers",
"address": "1 High Street, London, SW1A 1AA",
"locality": "London",
"postalCode": "SW1A 1AA",
"phone": "020 0000 0000",
"website": "https://example.co.uk",
"profileUrl": "https://www.thomsonlocal.com/...",
"searchUrl": "https://www.thomsonlocal.com/search/plumbers/london",
"rating": "4.8",
"reviewCount": 12,
"description": "Local plumbing services...",
"badges": ["Open now"],
"source": "thomsonlocal.com",
"scrapedAt": "2026-06-19T00:00:00.000Z"
}

How to scrape Thomson Local business leads

  1. Open the Actor on Apify.
  2. Add one or more category/location searches.
  3. Keep maxItems small for your first test.
  4. Run the Actor.
  5. Open the dataset.
  6. Export JSON, CSV, Excel, XML, RSS, or HTML.
  7. Import the leads into your CRM or spreadsheet.

Tips for better results

  • Use specific categories such as roofers, dentists, or restaurants.
  • Use real UK towns, cities, or postcodes.
  • Increase maxPages only after a small test succeeds.
  • Enable profile enrichment when you need websites and descriptions.
  • Disable profile enrichment for faster broad scans.
  • Keep searches focused to avoid mixing unrelated services.

Integrations

Send results to Google Sheets with Apify integrations.

Push leads to Make or Zapier workflows.

Store the dataset in S3 or Google Drive.

Trigger follow-up enrichment Actors from the dataset.

Feed records into CRM imports for HubSpot, Pipedrive, or Salesforce.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/thomson-local-business-scraper').call({
searches: [{ category: 'plumbers', location: 'London' }],
maxItems: 25,
includeDetails: false
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
client = ApifyClient(token='YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/thomson-local-business-scraper').call(run_input={
'searches': [{'category': 'plumbers', 'location': 'London'}],
'maxItems': 25,
'includeDetails': False,
})
print(run['defaultDatasetId'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~thomson-local-business-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searches":[{"category":"plumbers","location":"London"}],"maxItems":25}'

MCP usage

Use this Actor from Claude Desktop, Claude Code, or other MCP clients through Apify MCP.

MCP endpoint:

https://mcp.apify.com/?tools=automation-lab/thomson-local-business-scraper

Claude Code setup:

$claude mcp add apify-thomson-local https://mcp.apify.com/?tools=automation-lab/thomson-local-business-scraper

Claude Desktop JSON config:

{
"mcpServers": {
"apify-thomson-local": {
"url": "https://mcp.apify.com/?tools=automation-lab/thomson-local-business-scraper"
}
}
}

Example prompts showing MCP usage:

  • "Scrape 25 Thomson Local plumbers in London."
  • "Find electricians in Manchester from Thomson Local and return phone numbers."
  • "Collect Thomson Local business profile URLs for dentists in Bristol."
  • "Run automation-lab/thomson-local-business-scraper for builders in Leeds and summarize rows with websites."

Data quality notes

Thomson Local pages can vary by category and location.

Some listings may not publish a website.

Some listings may not publish ratings or reviews.

The Actor leaves missing fields as null rather than inventing values.

The searchUrl field helps audit where each record came from.

FAQ

Can I scrape by Thomson Local URL instead of category and location?

Yes. Add one or more Thomson Local search URLs to startUrls if you already have the exact directory pages you want to process.

Does the Actor visit business profile pages?

Yes, when includeDetails is enabled. Turn it off for faster lead-list collection when search-page fields are enough.

Troubleshooting

Why did I get no results?

Try a different category/location pair, reduce spelling ambiguity, or provide a Thomson Local search URL directly.

If requests are slow or blocked, keep useProxy enabled (the default) or try a different proxy country/group.

Why are some websites missing?

Not every Thomson Local listing exposes a website on the search page or public profile page.

Enable includeDetails to improve website coverage.

Why are there fewer rows than maxItems?

The source may have fewer visible listings for your search, or the Actor may stop after maxPages pages.

Increase maxPages if the source has more pages.

Legality and responsible use

This Actor extracts publicly available business-directory information.

You are responsible for ensuring that your use complies with applicable laws, platform terms, and privacy rules.

Do not use scraped contact data for spam.

Respect opt-out requests and local marketing regulations.

Limits

This Actor does not log in.

It does not bypass paywalls.

It only targets public Thomson Local pages.

It does not guarantee every listing has every field.

Changelog

0.1

Initial version for public Thomson Local business lead extraction.

Support

If you need help, open an issue on the Apify Actor page and include your run ID.

Development status

This Actor is part of the Automation Lab business-directory lead-generation cluster.

It is intended as a UK Thomson Local satellite source for agencies that already use other local-business scrapers.