Swiss Business Directory Scraper — local.ch avatar

Swiss Business Directory Scraper — local.ch

Under maintenance

Pricing

from $0.80 / 1,000 record scrapeds

Go to Apify Store
Swiss Business Directory Scraper — local.ch

Swiss Business Directory Scraper — local.ch

Under maintenance

Swiss business directory data: company names, addresses, phone numbers, emails, ratings, and opening hours for the Swiss SMB market. Filter by industry vertical. Structured JSON output ready for lead lists or CRM import.

Pricing

from $0.80 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape business listings from local.ch, the Swiss national business directory. Returns company name, address, canton, phone, mobile, email, website, opening hours, ratings, and more for the full Swiss SMB market — filterable by 18 industry verticals.


Swiss Business Directory Scraper Features

  • Extracts complete company records — name, street, postal code, city, canton, coordinates
  • Returns landline, mobile, fax, email, and website in the same record, when the business lists them
  • Filters by 18 industry verticals (restaurants, garages, health specialists, retail, and more)
  • Captures ratings, review counts, spoken languages, accepted payment methods, and booking availability
  • Formats opening hours per weekday, ready to parse without touching raw HTML
  • Covers the entire Swiss directory — every canton, every listed business, not a single-city sample

Who Uses Swiss Business Directory Data?

  • Outbound sales teams — build canton-level prospect lists with phone and email already attached
  • Fintech and insurance underwriters — enrich KYB checks with a business's registered address and contact details
  • Agencies — assemble trade-specific lead lists (plumbers in Zürich, restaurants in Geneva) without hand-copying from a map
  • Market researchers — measure SMB density and category mix by canton, or track which verticals cluster where
  • CRM and data teams — feed structured Swiss business records straight into an existing pipeline, no cleanup pass required

How Swiss Business Directory Scraper Works

  1. Pick one or more business verticals (or leave it blank for the whole directory).
  2. The scraper walks the complete published listing for each selected vertical and pulls every business record it finds.
  3. Each record is normalized into a consistent JSON shape — same field names whether the source page had three phone numbers or none.
  4. Results land in your dataset as they're collected, so a run you stop early still keeps what it already gathered.

Input

{
"maxItems": 500,
"categories": ["garage", "restaurants"]
}
FieldTypeDefaultDescription
maxItemsinteger10Maximum records to scrape. Set to 0 for an unlimited run across the full selected corpus.
categoriesarray(all)Business verticals to include. Leave empty to crawl every vertical — the entire directory.
resumeCursorstringCursor from a previous run's Output, used to continue a stopped crawl. See below.

Leaving categories empty and maxItems at 0 crawls the full Swiss directory — millions of businesses across every canton. Expect a long run.


Swiss Business Directory Scraper Output Fields

{
"entry_id": "Q_Z8HPLKuC9PEw9R5hNc9g",
"name": "Sutterlüti AG",
"category": "Sanitär",
"categories_all": ["Sanitär", "Heizungen"],
"street": "Feldeggstrasse 61",
"postal_code": "8008",
"city": "Zürich",
"canton": "ZH",
"latitude": 47.360905,
"longitude": 8.55343,
"phone": "044 384 91 00",
"mobile": null,
"fax": null,
"email": "info@sutterluetiag.ch",
"website": "http://www.sutterluetiag.ch",
"opening_hours": "Mon 07:30-12:00,13:00-16:30; Tue 07:30-12:00,13:00-16:30",
"languages": ["Deutsch", "Englisch"],
"payment_methods": ["Barzahlung", "TWINT"],
"has_booking": true,
"rating_avg": 5,
"rating_count": 4,
"description": "Seit 1925 Ihr Partner für Haustechnik im Kanton Zürich",
"listing_url": "https://www.local.ch/de/d/zuerich/8008/sanitaer/sutterlueti-ag-Q_Z8HPLKuC9PEw9R5hNc9g",
"locale": "de",
"source_query_category": "garage",
"scraped_at": "2026-09-01T22:14:44.370Z"
}
FieldTypeDescription
entry_idstringlocal.ch's canonical business id
namestringBusiness trade name
categorystringPrimary category
categories_allarrayEvery category the business is tagged under
streetstringStreet and house number
postal_codestringSwiss postal code
citystringCity / locality
cantonstringCanton code (ZH, GE, VD, etc.)
latitude / longitudenumberCoordinates
phone / mobile / faxstringContact numbers, when listed
emailstringContact email
websitestringBusiness website
opening_hoursstringWeekday opening hours, formatted (e.g. "Mon 07:30-12:00,13:00-16:30")
languagesarraySpoken/service languages, when the business lists them
payment_methodsarrayAccepted payment methods, when listed
has_bookingbooleanWhether the business offers online booking
rating_avg / rating_countnumber/integerRating and review count
descriptionstringShort business tagline
listing_urlstringCanonical local.ch page for the business
localestringAlways "de"
source_query_categorystringThe vertical this record was discovered under
scraped_atstringTimestamp the record was delivered

Resuming a large crawl

Every run emits a resumeCursor in its Output. If a large crawl stops before it finishes — because it hit maxItems, your spend cap (maxTotalChargeUsd), or was aborted — start a new run with the same input plus that resumeCursor to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

  • You are not re-charged for records the earlier run already delivered.
  • Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its resumeCursor is no longer valid.
  • resumeCursor is opaque — supply it unmodified.

FAQ

How do I scrape local.ch business listings?

Give Swiss Business Directory Scraper a maxItems value and, optionally, a list of verticals. It returns structured records — one per business — with contact details, address, ratings, and hours already parsed out.

What data can I get from local.ch?

Name, full address with canton, phone, mobile, email, website, opening hours, languages, payment methods, rating, and category — 26 fields per business, covering the whole Swiss directory rather than one city or trade.

Can I filter by industry or business type?

Yes. The categories input restricts a run to any combination of 18 verticals — restaurants, garages, health specialists, retail, and more. Leave it empty to pull everything.

Do I need an account or API key for local.ch?

No. Swiss Business Directory Scraper needs no local.ch account, login, or API key — just an Apify run.

How much does this cost to run?

Pricing is per record collected, so a 50-business test run and a full-directory crawl scale the same way per unit. Check the actor's pricing tab for current rates.


Need More Features?

Need custom fields, filters, or a different target site? File an issue or get in touch.

Why Use Swiss Business Directory Scraper?

  • Complete coverage — every canton, every listed vertical, not a single-city sample you have to stitch together yourself.
  • Contact-ready output — phone, mobile, email, and website in one record, so a lead list doesn't need a second enrichment pass.
  • Consistent schema — 26 fields, same names on every record, whether the source business listed three phone numbers or none.