The NanoScrape Local Scraper is an Apify actor that extracts business listings from local.ch. It returns 42 fields per result including name, city, phone, email, address, priced at $2.5/1k business with details, with no API key or monthly subscription required.
Scrape business listings from local.ch, the Swiss business directory (source platform). Returns name, address, phone, email, website, categories, rating, opening hours and coordinates. No login required. Pay-per-result.
| Field | Type | Example | Group | Fill % |
|---|---|---|---|---|
id | string | ytM8bYZbnkyUMY4qRpVhvQ | Core | 100% |
name | string | Praxis Belle Dent | Core | 100% |
logo_url | string | null | https://bin.staticlocal.ch/localplace-logo/99/9904551be8396ac7a340556784473a68cfec8f05/... | Core | 100% |
source_url | string | https://www.local.ch/de/d/zuerich/8055/zahnarzt/praxis-belle-dent-ytM8bYZbnkyUMY4qRpVhvQ | Core | 100% |
source_platform | string | local.ch | Core | 100% |
description_title | string | null | Zahnmedizin, Chirurgie & Ästhetik | Core | 25% |
booking_url | string | null | https://belle-dent.com/buchen | Core | 15% |
address | string | null | Gutstrasse 53, 8055 Zürich | Location | 100% |
postal_code | string | null | 8055 | Location | 100% |
city | string | null | Zürich | Location | 100% |
country | string | Switzerland | Location | 100% |
country_code | string | CH | Location | 100% |
latitude | number | null | 47.370861 | Location | 100% |
longitude | number | null | 8.507957 | Location | 100% |
search_location | string | Zürich | Location | 100% |
location_features | array | ["In Bahnhofsnähe", "Nahe Sportanlage", "Nahe öffentlichem Verkehr"] | Location | 25% |
description | string | null | Hohe Qualität und neueste Methoden des gesamten Spektrums, in einer modernen Praxis. Di... | Description | 75% |
payment_methods | array | ["Barzahlung", "Bezahlung mit EC-Karte", "Kontaktlos bezahlen"] | Salary | 15% |
opening_hours | string | null | Mo 09:00-17:00; Tu 09:00-17:00; We 09:00-17:00; Th 09:00-17:00; Fr 09:00-17:00 | Employment | 75% |
languages | array | ["Deutsch", "Französisch", "Serbokroatisch"] | Requirements | 25% |
rating | number | null | (populated when data available) | Reviews / rating | 85% |
review_count | integer | null | (populated when data available) | Reviews / rating | 85% |
rating_distribution | object | null | {"1": 0, "2": 0, "3": 0, "4": 0, "5": 0} | Reviews / rating | 25% |
category | string | null | Zahnarzt | Metadata | 100% |
scraped_at | string | 2026-10-22T08:30:29Z | Metadata | 100% |
subtitles | array | ["Zahnmedizin, Chirurgie & Ästhetik", "Dr. med. dent. Ulrich Arhold und Dr. med. | Other | 70% |
categories | array | ["Zahnarzt", "Mund-, Kiefer- und Gesichtschirurgie", "Dentalhygiene"] | Other | 100% |
phone | string | null | (populated when data available) | Other | 95% |
phones | array | [] | Other | 95% |
mobile | string | null | (populated when data available) | Other | — |
fax | string | null | (populated when data available) | Other | 30% |
email | string | null | (populated when data available) | Other | 85% |
website | string | null | https://belle-dent.com | Other | 100% |
social_links | array | ["https://www.facebook.com/DentistsSprosshaus", "https://www.instagram.com/belle | Other | 55% |
street | string | null | Gutstrasse 53 | Other | 100% |
canton | string | null | ZH | Other | 100% |
entry_type | string | BUSINESS | Other | 100% |
search_query | string | Zahnarzt | Other | 100% |
refuse_advertising | boolean | null | true | Other | 25% |
refuse_advertising_contacts | array | ["+41444615620"] | Other | 20% |
booking_provider | string | null | custom | Other | 15% |
attributes | object | {"Behandlung durch": ["Arzt oder Ärztin, beides vorhanden"], "Behandlungen": ["B | Other | 25% |
{
"searchTerms": [
"Zahnarzt"
],
"location": "Zürich",
"maxResults": 30,
"includeDetails": true,
"language": "de"
}{
"id": "ytM8bYZbnkyUMY4qRpVhvQ",
"name": "Praxis Belle Dent",
"description": "Hohe Qualität und neueste Methoden des gesamten Spektrums, in einer modernen Praxis. Direkt einen Termin vereinbaren- wir freuen uns auf Sie!\n\nRund um das Beste für Sie\n\nSeit 2013 besteht die Praxisgemeinschaft im Sprosshaus in Zürich. Im Fokus der Arbeit stehen die Patienten und ihre Wünsche. Im Jahr 2018 übernahm Dr. med. Dr. med. dent Ulrich Arhold die Zahnarztpraxis und ist seitdem alleiniger Inhaber. Die renovierte zahnärztliche Ordination ist im 1. Liftstock und barrierefrei für unsere Patienten zu erreichen. Sie umfasst drei Untersuchungsräume, was alle Teilbereiche der Zahnmedizin zulässig macht. Die Praxislage ist zentral und gut mit dem öffentlichen Verkehrsmittel erreichbar. Auch hinter dem Sprosshaus steht ein kostenloser Parkplatz zur Verfügung.\n\nGemütlich, modern und voll digitalisiert\n\nDie Praxis ist vollumfänglich digitalisiert, dies vereinfacht die tägliche Zusammenarbeit und ist auch für die Patienten angenehmer. Klein und fein, jedoch mit der richtigen Qualität. Ein Zahnarztbesuch ist immer auch eine Vertrauenssache. Damit Sie sich rundum gut aufgehoben fühlen, finden unsere Sprechstunden in einem sehr persönlichen Rahmen statt. Jeder Mensch ist einzigartig und hat andere Bedürfnisse. Das wissen wir und sind für Sie da, ob Sie ein zahnmedizinisches oder ein Anliegen ästhetischer Natur haben, wir sind für Sie die richtigen Ansprechpartner. Ihr kompetentes Praxisteam berät Sie gerne in der angenehm entspannten Atmosphäre, Sie und Ihre Wünsche stehen im Fokus unserer Arbeit.",
"subtitles": [
"Zahnmedizin, Chirurgie & Ästhetik",
"Dr. med. dent. Ulrich Arhold und Dr. med. dent. K. Höpfel"
],
"category": "Zahnarzt",
"categories": [
"Zahnarzt",
"Mund-, Kiefer- und Gesichtschirurgie",
"Dentalhygiene",
"Implantologie",
"Oralchirurgie",
"Parodontologie",
"Zahnbleaching",
"Ärzte"
],
"phone": null,
"phones": [],
"mobile": null,
"fax": null,
"email": null,
"website": "https://belle-dent.com",
"social_links": [
"https://www.facebook.com/DentistsSprosshaus",
"https://www.instagram.com/belledent.zurich"
],
"address": "Gutstrasse 53, 8055 Zürich",
"street": "Gutstrasse 53",
"postal_code": "8055",
"city": "Zürich",
"canton": "ZH",
"country": "Switzerland",
"country_code": "CH",
"latitude": 47.370861,
"longitude": 8.507957,
"opening_hours": "Mo 09:00-17:00; Tu 09:00-17:00; We 09:00-17:00; Th 09:00-17:00; Fr 09:00-17:00",
"rating": null,
"review_count": null,
"logo_url": "https://bin.staticlocal.ch/localplace-logo/99/9904551be8396ac7a340556784473a68cfec8f05/belle-dent-logo-transparent-colored-w2048.png",
"entry_type": "BUSINESS",
"search_query": "Zahnarzt",
"search_location": "Zürich",
"source_url": "https://www.local.ch/de/d/zuerich/8055/zahnarzt/praxis-belle-dent-ytM8bYZbnkyUMY4qRpVhvQ",
"source_platform": "local.ch",
"scraped_at": "2026-10-22T08:30:29Z",
"description_title": "Zahnmedizin, Chirurgie & Ästhetik",
"refuse_advertising": true,
"refuse_advertising_contacts": [
"+41444615620"
],
"booking_url": "https://belle-dent.com/buchen",
"booking_provider": "custom",
"languages": [
"Deutsch",
"Französisch",
"Serbokroatisch"
],
"location_features": [
"In Bahnhofsnähe",
"Nahe Sportanlage",
"Nahe öffentlichem Verkehr",
"Parkmöglichkeit",
"Rollstuhlgerechte Parkmöglichkeit",
"Stufenlos zugänglich"
],
"payment_methods": [
"Barzahlung",
"Bezahlung mit EC-Karte",
"Kontaktlos bezahlen",
"Maestro",
"Mastercard",
"Rechnung",
"Rechnung",
"TWINT",
"Visa"
],
"attributes": {
"Behandlung durch": [
"Arzt oder Ärztin, beides vorhanden"
],
"Behandlungen": [
"Bleaching",
"Dentalhygiene & Prophylaxe",
"Dritte Zähne",
"Kieferorthopäde/-in",
"Kinderzahnarzt",
"Notfall Zahnarzt",
"Weisheitszähne",
"Wurzelbehandlungen",
"Zahn reparieren",
"Zahnarztangst",
"Zahnbruch",
"Zahnbrücke /Zahnkrone",
"Zahnerhaltung",
"Zahnfleischbehandlungen",
"Zahnfüllungen",
"Zahnimplantat / Zahnprothese",
"Zahnkontrolle",
"Zahnreinigung",
"Zahnschmuck",
"Zahnspangen",
"Zahnsteinentfernung"
],
"Beratung": [
"Akzeptiert neue Patientinnen & Patienten"
],
"Fachgebiet": [
"Gesichtschirurgie"
],
"Haarbehandlungen": [
"Vampire Lifting (PRP)"
],
"Hautbehandlungen": [
"Mesotherapie"
],
"Kontaktformen": [
"Im Geschäft",
"Kostenlose Beratung",
"Online",
"Telefonisch"
],
"Lage": [
"In Bahnhofsnähe",
"Nahe Sportanlage",
"Nahe öffentlichem Verkehr",
"Parkmöglichkeit",
"Rollstuhlgerechte Parkmöglichkeit",
"Stufenlos zugänglich"
],
"Praxistyp": [
"Einzelpraxis",
"Notfall"
],
"Sprachen": [
"Deutsch",
"Filipino",
"Französisch",
"Griechisch",
"Serbokroatisch"
],
"Zahlungskonditionen": [
"Barzahlung",
"Bezahlung mit EC-Karte",
"Kontaktlos bezahlen",
"Maestro",
"Mastercard",
"Rechnung",
"Rechnung",
"TWINT",
"Visa"
]
},
"rating_distribution": {
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0
}
}Priced at $0.0025 per business with details. 10 business with detailss ≈ $0.03, 100 ≈ $0.25, 1,000 ≈ $2.50. For now, runs need Apify's residential proxy, which the free plan does not include, so use a paid Apify plan. Failed runs are not charged.
Click Open on Apify above to run local-ch-scraper in your browser - no code, no install. In the Apify console you get:
To run this actor from your own code you need an Apify API token. Get one in about a minute:
Free tier: Apify credits your account with $5 of platform usage every month, no credit card required. Enough to test any actor meaningfully. How many results that covers depends on the actor's price per result.
Run this actor from any language via the Apify REST API. Replace YOUR_TOKEN with your API token and adapt the input JSON to your needs.
curl -X POST "https://api.apify.com/v2/acts/santamaria-automations~local-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// npm install apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('santamaria-automations/local-ch-scraper').call({});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('santamaria-automations/local-ch-scraper').call(run_input={})
items = list(client.dataset(run['defaultDatasetId']).iterate_items())
print(items)// dotnet add package Apify.Client
using Apify.Client;
var client = new ApifyClient("YOUR_TOKEN");
var run = await client.Actor("santamaria-automations/local-ch-scraper").CallAsync(new { });
var items = await client.Dataset(run.DefaultDatasetId).ListItemsAsync();// Maven: com.apify:apify-client
import com.apify.client.ApifyClient;
ApifyClient client = new ApifyClient("YOUR_TOKEN");
ActorRun run = client.actor("santamaria-automations/local-ch-scraper").call(Map.of());
List<Map<String,Object>> items = client.dataset(run.getDefaultDatasetId()).listItems();This actor is available on the Apify MCP server, so you can drive it from any MCP-compatible AI client - Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or a custom agent - without writing any code.
https://mcp.apify.com?tools=santamaria-automations/local-ch-scraperExample prompt once connected:
"Use <code>local-ch-scraper</code> to run a scrape on my target list and give me the results as a table."
Clients that support dynamic tool discovery (Claude.ai, VS Code) receive the full input schema automatically via add-actor.
Trigger this actor from your favorite automation tool. Every platform below can call the Apify API in a few clicks - no code required.
@apify/n8n-nodes-apify).santamaria-automations/local-ch-scraper.https://api.apify.com/v2/acts/santamaria-automations~local-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN.application/json.https://api.apify.com/v2/acts/santamaria-automations~local-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN, method POST, body raw JSON.https://api.apify.com/v2/acts/santamaria-automations~local-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN.steps.http.$return_value in subsequent steps.https://api.apify.com/v2/acts/santamaria-automations~local-ch-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN, body type JSON.$2.50 / 1,000 business with details, billed per result on Apify. For now, runs need Apify's residential proxy, which the free plan does not include, so use a paid Apify plan. Failed runs are not charged.
42 fields per result. Full field catalog is listed in the 'What you can scrape' table above — includes core identifiers, descriptive text, dates, and any category-specific data.
Scraping publicly available data is generally permitted in most jurisdictions, but GDPR applies to any personal data you collect. Review your local rules and consult a lawyer for commercial use.
No. This actor reads public pages over HTTP with datacenter proxies. No API key, no OAuth, no rate-limit management on your side.
Every run pulls live data at execution time. Set up a schedule (daily/hourly/weekly cron) in the Apify console to keep your dataset current automatically.