search.ch Swiss Business Directory Scraper
Pricing
from $0.06 / 1,000 results
search.ch Swiss Business Directory Scraper
[💰 $0.06 / 1K] Extract Swiss business leads from search.ch — name, category, phones, website, email, full address, canton, ratings, and profile links. Search any category across multiple Swiss cities at once, or paste result-page URLs.
Pricing
from $0.06 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pull Swiss business listings from search.ch at scale — company names, categories, phone numbers, websites, emails, full addresses, cantons, and ratings across all 26 cantons and in German, French, Italian, or English. Search dozens of categories across dozens of cities in a single run, or paste result-page URLs you built in the browser. Built for Swiss B2B sales teams, lead-generation agencies, and market researchers who need clean, structured Swiss business contacts without copying them out of the phone book one entry at a time.
Why This Scraper?
- All 26 Swiss cantons in one run — search by city, canton code (ZH, GE, TI, VD...), or postal code (8000, 1200), and every listing carries its two-letter canton so you can segment leads by region instantly.
- Four language editions — pull labels and results from the German, French, Italian, or English version of search.ch, matching how the business is listed in its own region.
- Phone numbers in clean E.164 format — every published number comes back as
+41..., ready to dial, import into a CRM, or feed to an autodialer with no reformatting. - Decoded email addresses — flip on details and the actor recovers the business email that search.ch scrambles on the page, giving you a direct contact channel most exports miss.
- Multi-term × multi-city cross-product — list ten categories and ten cities and get all 100 searches in a single run; no need to launch a run per query.
- Componentized Swiss addresses — every row splits the address into street, postal code (PLZ), locality, and canton, so you get mail-merge-ready fields, not one string to parse.
- Up to 200 businesses per search combo — each category-and-city pairing pulls the full result set, with an overshoot-safe cap so you never lose the last page.
- Ratings and review counts — the average star rating and number of reviews come with each listing, so you can prioritize established, well-reviewed businesses.
- Punycode-safe websites — internationalized Swiss domains (
xn--...) are preserved exactly as registered, so links always resolve.
Use Cases
Lead Generation
- Build call lists of Swiss businesses by category and canton, phone numbers dial-ready in E.164
- Collect direct business emails for outreach when profile details are enabled
- Target a single city, a whole canton, or all of Switzerland from one search
- Assemble named-category prospect lists (Treuhand, Garage, Coiffeur, Zahnarzt) in bulk
Market Research
- Map how many businesses in a category operate in each of the 26 cantons
- Compare business density across Zürich, Geneva, Bern, and Basel
- Track ratings and review counts to gauge competitive strength in a region
- Analyze the German-, French-, and Italian-speaking markets side by side
Recruitment & Sourcing
- Find employers by profession and region for candidate placement
- Build directories of firms in a target trade across specific cantons
- Segment sourcing lists by city or postal code
CRM Enrichment
- Backfill missing phone, website, and address fields on existing Swiss records
- Add canton and postal code to accounts for territory assignment
- Attach business emails to contacts that only had a name and city
Getting Started
Search One Category in One City
The simplest way to start — a single term and location:
{"searchTerms": ["Restaurant"],"locations": ["Zürich"],"maxResults": 100}
Many Categories Across Many Cities
Every term is paired with every location — this runs six searches:
{"searchTerms": ["Treuhand", "Garage", "Coiffeur"],"locations": ["Bern", "8000"],"maxResults": 300}
Paste Result URLs, Add Emails, Choose Language
Reuse a search you built on search.ch, enrich each listing with its email, and read results in French:
{"startUrls": ["https://search.ch/tel/index.fr.html?all=Avocat&where=Gen%C3%A8ve"],"includeDetails": true,"language": "fr","maxResults": 200}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchTerms | string[] | ["Restaurant"] | Keywords, business categories, company names, or professions (e.g. "Restaurant", "Zahnarzt", "Treuhand"). Each term is searched in every location below. |
locations | string[] | ["Zürich"] | Swiss cities, cantons, or postal codes (e.g. "Zürich", "Genève", "Bern", "8000", "TI"). Each is combined with every search term. Leave empty to search all of Switzerland. |
Or Paste URLs
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | URL[] | [] | Paste search.ch result-page URLs directly from your browser. When provided, the search terms and locations above are ignored. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
language | select | German | Language edition of search.ch to use for labels and results: German, French, Italian, or English. |
includeDetails | boolean | false | Also open each business's profile page to add its email address and fill in canton, website, and rating. Slower, since it fetches one extra page per business. |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum number of listings collected across all searches. Set to 0 for no cap (a safety limit of 50,000 still applies). |
maxPagesPerSearch | integer | 0 | Optional cap on result pages fetched per individual search (about 10 listings per page). Leave at 0 to rely on Maximum Results. |
Output
Each business is one row. Here's a representative result with details enabled:
{"name": "Ristorante Bellavista","categories": ["Restaurant", "Pizzeria", "Catering"],"industry": "Restaurant","phones": ["+41442345678"],"email": "info@bellavista.ch","website": "https://www.bellavista.ch","address": "Bahnhofstrasse 12, 8001 Zürich","streetAddress": "Bahnhofstrasse 12","postalCode": "8001","locality": "Zürich","canton": "ZH","rating": 4.6,"reviewCount": 128,"isPaidListing": false,"resultPosition": 3,"profileUrl": "https://search.ch/tel/zuerich/bahnhofstrasse-12/ristorante-bellavista","searchTerm": "Restaurant","searchLocation": "Zürich","sourceUrl": "https://search.ch/tel/?all=Restaurant&where=Z%C3%BCrich","scrapedAt": "2026-07-02T14:30:00Z"}
Business & Contact
| Field | Type | Description |
|---|---|---|
name | string | Business or person name |
categories | string[] | Category tags from the listing |
industry | string | Primary category (most relevant tag) |
phones | string[] | Published phone numbers in E.164 format (+41...) |
email | string | Business email — filled when details are enabled and published |
website | string | External website URL, punycode preserved |
rating | number | Average rating when present |
reviewCount | number | Number of reviews when present |
Address & Location
| Field | Type | Description |
|---|---|---|
address | string | Full formatted address line |
streetAddress | string | Street and number |
postalCode | string | Swiss postal code (PLZ) |
locality | string | City or town |
canton | string | Two-letter Swiss canton code (ZH, GE, TI...) |
Listing & Query Context
| Field | Type | Description |
|---|---|---|
isPaidListing | boolean | Whether the entry is a paid/premium listing |
resultPosition | number | Position within the result set |
profileUrl | string | search.ch profile page URL for the business |
searchTerm | string | Search term that produced this row |
searchLocation | string | Location filter that produced this row |
sourceUrl | string | Result page this listing came from |
scrapedAt | string | ISO 8601 timestamp of extraction |
Tips for Best Results
- Segment by canton or postal code — pass a canton code (ZH, VD, TI) or a PLZ (8000, 1200) as a location to carve Switzerland into clean territories, then match on the returned
cantonfield. - Turn on details only when you need emails — enabling profile details recovers business emails and fills canton, website, and rating, but adds a page fetch per business. Leave it off for fast name-and-phone lists.
- Reuse a search from your browser — build and preview a search on search.ch, then paste the result-page URL into
startUrlsto scrape exactly what you saw. - Pick the region's language — use the French or Italian edition when targeting Romandy or Ticino so category labels and descriptions match how businesses list themselves.
- List many categories at once — because every term pairs with every location, one run with several professions and several cities covers a whole prospecting grid.
- Leave locations empty for nationwide sweeps — a term with no location searches all of Switzerland; add locations only when you want to focus.
- Start with a small Maximum Results — run 50 first to confirm the categories and cities return what you expect, then raise the cap for the full pull.
Pricing
From $0.06 per 1,000 results — a fraction of the cost of building and maintaining your own Swiss directory extractor. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.0072 | $0.0068 | $0.0064 | $0.0060 |
| 1,000 | $0.072 | $0.068 | $0.064 | $0.060 |
| 10,000 | $0.72 | $0.68 | $0.64 | $0.60 |
| 100,000 | $7.20 | $6.80 | $6.40 | $6.00 |
A "result" is one business row in the output dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate business research, market analysis, and lead generation using publicly listed Swiss directory information. Users are responsible for complying with applicable laws — including Swiss and EU data-protection rules — and with search.ch's Terms of Service. Do not use extracted contact data for spam, harassment, or any unlawful purpose, and honor opt-out and do-not-contact requests.