UK Business Directory Leads Scraper avatar

UK Business Directory Leads Scraper

Pricing

from $17.00 / 1,000 results

Go to Apify Store
UK Business Directory Leads Scraper

UK Business Directory Leads Scraper

Scrape UK business directory listings with company name, phone, website, full address (street, town, county, postcode), category, description, rating and reviews. Search by trade or service and location across the UK. Export to JSON, CSV or Excel.

Pricing

from $17.00 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

UK Business Directory Leads Scraper

UK Business Directory Leads Scraper

Here is one real result, with every field the actor returns (the description text is trimmed here for readability; the live record returns the full listing text):

{
"name": "Mike Griffin Heating & Plumbing",
"phone": "07973288275",
"email": "griffingas@aol.com",
"website": "https://www.mike-griffin.co.uk",
"streetAddress": "153 Church Hill Road",
"town": "Barnet",
"postcode": "EN48PQ",
"category": "plumbers",
"location": "London",
"strapline": "Plumbing & Heating in Barnet, North London and Hertfordshire",
"description": "Mike Griffin Heating and Plumbing is a premium plumbing and heating company from North London with over 40 years experience [trimmed]",
"rating": 4.5,
"reviewCount": 2,
"listingUrl": "https://www.thomsonlocal.com/search/plumbers/london/mike-griffin-heating-plumbing/2862515/07973288275",
"providerId": "2862515",
"imageUrl": "https://images.thomsonlocal.com/advantage/85/thumb_56257235-a5ce-4b0d-b661-5d0d2a088c4d.PNG?v=1",
"source": "thomsonlocal",
"observedAt": "2026-08-10T14:33:03.837Z"
}

The most complete UK business directory lead scraper available. It returns every field the listing exposes, captures direct contacts (phone, email, website) plus the full address and postcode, and lets you search any number of trades across any number of UK locations in a single run.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches the UK business directory for every trade or service you list, across every location you list (each query is run against each location), and writes one normalized record per business to the run's dataset. It captures the business name, direct contacts (phone, email, website), the full street address with postcode, category, star rating and review count, and the listing image. Missing source values are returned as null. Businesses are de-duplicated across queries so the same listing is not billed twice.

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 10 plumbers in London.

{
"searchQueries": ["plumbers"],
"locations": ["London"],
"maxBusinesses": 10
}

Add more trades and more locations to widen the run: every query is searched against every location. Leave locations empty to search the whole UK. Free Apify plans are capped at 10 businesses per run.

Input reference

FieldTypeRequiredDefaultDescription
searchQueriesstring[]no["plumbers"]Trades, services, or business types to search for, for example plumbers, car repair, accountants. One run searches every query.
locationsstring[]no(whole UK)UK towns, cities, or areas to search within, for example London, Manchester. Every query is run against every location. Leave empty to search the whole UK.
maxBusinessesintegerno50Maximum number of businesses to collect across the whole run. Free Apify plans are capped at 10 per run.

Output reference

One dataset item per business. Types: string, number, integer, or null when the source value is absent.

FieldTypeDescription
namestringBusiness name.
phonestringContact phone number.
emailstringContact email, or null when not listed.
websitestringBusiness website URL, or null.
streetAddressstringStreet address.
townstringTown or district.
postcodestringUK postcode.
categorystringThe search query this business matched, for example plumbers.
locationstringThe location this business was found under.
straplinestringShort tagline from the listing.
descriptionstringFull listing description text.
ratingnumberStar rating (0 to 5), or null.
reviewCountintegerNumber of reviews, or null.
listingUrlstringURL of the business's directory listing.
providerIdstringDirectory listing ID (unique per business).
imageUrlstringListing image URL, or null.
sourcestringAlways thomsonlocal.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"searchQueries": ["plumbers"], "locations": ["London"], "maxBusinesses": 10}), with description trimmed for readability:

{
"name": "Mike Griffin Heating & Plumbing",
"phone": "07973288275",
"email": "griffingas@aol.com",
"website": "https://www.mike-griffin.co.uk",
"streetAddress": "153 Church Hill Road",
"town": "Barnet",
"postcode": "EN48PQ",
"category": "plumbers",
"location": "London",
"strapline": "Plumbing & Heating in Barnet, North London and Hertfordshire",
"description": "Mike Griffin Heating and Plumbing is a premium plumbing and heating company from North London with over 40 years experience [trimmed]",
"rating": 4.5,
"reviewCount": 2,
"listingUrl": "https://www.thomsonlocal.com/search/plumbers/london/mike-griffin-heating-plumbing/2862515/07973288275",
"providerId": "2862515",
"imageUrl": "https://images.thomsonlocal.com/advantage/85/thumb_56257235-a5ce-4b0d-b661-5d0d2a088c4d.PNG?v=1",
"source": "thomsonlocal",
"observedAt": "2026-08-10T14:33:03.837Z"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~thomsonlocal-uk-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["plumbers","electricians"],"locations":["London","Manchester"],"maxBusinesses":50}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~thomsonlocal-uk-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["accountants"],"maxBusinesses":200}'

Apify CLI:

apify call scrapers_lat/thomsonlocal-uk-scraper \
--input '{"searchQueries":["car repair"],"locations":["Birmingham"],"maxBusinesses":25}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per business record returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxBusinesses.

FAQ and troubleshooting

A run returned 0 records. Why? No listings matched the trade in that location. Try a broader query (for example plumbers instead of emergency plumber), or leave locations empty to search the whole UK. Zero-result runs are not charged.

Which businesses have an email? Only businesses that publish a contact email in the directory. When none is listed, email is null, never invented.

Can I search multiple trades and cities at once? Yes. Add several entries to searchQueries and locations; every query is run against every location in one run.

How do I get more than 10 results? Free Apify plans are capped at 10 businesses per run. Upgrade your Apify plan and raise maxBusinesses.

Why is website null for some businesses? The directory listing did not include a website. Missing source values are returned as null.

Is this an official directory tool? No. This actor is independent and has no affiliation with the directory. It reads only data that is publicly available. Use it in accordance with the source site's terms of service and applicable UK data protection law.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the source directory. Accesses only publicly available business listing data. Use in accordance with the source site's terms of service.