# Search.ch Scraper (`lexis-solutions/search-ch-scraper`) Actor

Scrape business directory listings from Search.ch—contact details, descriptions, images, ratings, opening hours, and geocoordinates. Supports single listing URLs and search result pages with custom queries. Ideal for market research, competitor analysis, lead generation, and local business mapping.

- **URL**: https://apify.com/lexis-solutions/search-ch-scraper.md
- **Developed by:** [Lexis Solutions](https://apify.com/lexis-solutions) (community)
- **Categories:** Lead generation, Automation, Jobs
- **Stats:** 16 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$29.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![banner](https://i.ibb.co/B56MwBwc/search-ch.png)

## Search.ch Scraper

The Search.ch Apify Scraper is a powerful web scraping tool specifically designed to extract business directory data from Search.ch, Switzerland's leading local search engine. This scraper enables users to collect comprehensive business information, including contact details, descriptions, images, ratings, and more.

Search.ch is Switzerland's most popular local search platform, providing detailed information about businesses, services, and locations across the country. To gather valuable business data from the platform, users can leverage the Search.ch Apify Scraper, which facilitates market research, competitor analysis, and business intelligence.

### Use Cases

The Search.ch Apify Scraper can be used in multiple scenarios, including but not limited to:

1. **Market Research:** Extract business data from Search.ch to analyze market trends, competitor presence, and business performance across different regions in Switzerland.
2. **Business Intelligence:** Track business information, contact details, and service offerings to build comprehensive business databases and directories.
3. **Competitor Analysis:** Gather data on competitor businesses and their online presence to identify market opportunities and competitive advantages.
4. **Lead Generation:** Collect contact information and business details for targeted marketing campaigns and business development initiatives.
5. **Local Business Mapping:** Create comprehensive maps of businesses in specific areas or industries for location-based services and analysis.

Happy scraping!

### Input 📥

To use this actor, you need to provide the following input:

- Field: **startUrls**
  - Type: array
  - Required: Yes
  - Description: Search or business URLs to scrape
- Field: **query**
  - Type: string
  - Required: No
  - Description: Search query (e.g., "software developer", "hotel", "restaurant")
- Field: **maxItems**
  - Type: integer
  - Required: No
  - Description: The number of items to be scraped (default: 10)
- Field: **proxyConfiguration**
  - Type: object
  - Required: No
  - Description: Proxy configuration for the scraper
  - Default: Uses Apify Proxy with no specific proxy groups

### How to get `startUrls`?

1. A single business listing

   Open the business page on [Search.ch](https://search.ch) and copy its link from the browser URL bar.

2. Search results

   2.1. Open the [Search.ch](https://search.ch) website.

   2.2. Navigate to the search page and enter your search terms.

   2.3. Once in the search results page, add any needed filters. This will change the URL in the browser search bar. Once ready, copy the URL and paste to Apify as an item in the `startUrls` array.

#### Examples

A single business listing:

```
https://search.ch/tel/appenzell/kaustrasse-183/hotel-kaubad
```

A search page (Hotels in Zurich):

```
https://search.ch/tel/?was=hotel&wo=zurich
```

### Output 📤

<a name="output"></a>

An example output looks like this:

```json
{
  "url": "https://search.ch/tel/appenzell/kaustrasse-183/hotel-kaubad",
  "title": "Hotel Kaubad",
  "numberPhone": "079 901 44 66",
  "email": "info@hotelkaubad.ch",
  "categories": [
    "Hotel",
    "Conference Hotels",
    "Seminar",
    "Conference facilities",
    "Health and well-being",
    "Restaurant"
  ],
  "avatarImageUrl": "https://search.ch/tel/media/5791cd0bd146512f6f12221bf8c73e6b2e1c739e.png/rs/320x320/vektor-datei-600x402.png",
  "rating": null,
  "openingHours": ["00:00-24:00"],
  "description": "InformationHotel Kaubad Traditioneller Schweizer Charme und moderner Konfort Tauchen Sie ein in eine Oase der Ruhe und Entspannung. Unser Hotel, umgeben von Wäldern und Wiesen, bietet Ihnen den perfekten Rückzugsort. Jedes unserer liebevoll gestalteten Zimmer lädt Sie ein, die Seele baumeln zu lassen und die natürliche Schönheit der Umgebung zu geniessen. Erleben Sie Komfort und Erholung in unserer idyllischen Umgebung.",
  "imageGallery": [
    "https://search.ch/tel/media/535ef9ecb329b1c1e08cc904f66d126ae09ad3ae.jpg/tn/360x255/2024-07-06-14-.jpg",
    "https://search.ch/tel/media/752193581a5a4bde034653ba44576b552d135a91.jpg/tn/360x255/2024-07-06-9-.jpg"
  ]
}
```

### Need to scrape more data?

👉 Scrape Wayfair with [Wayfair Scraper](https://apify.com/lexis-solutions/wayfair-v2-scraper)

👉 Scrape Alibaba with [Alibaba Scraper](https://apify.com/lexis-solutions/alibaba-scraper)

👉 Scrape Michaels.com with [Michaels.com Scraper](https://apify.com/lexis-solutions/michaels-scraper)

### FAQ

**Q: How do I set up the Search.ch Apify Scraper?**

A: To set up the scraper, you'll need an Apify account. Once you have an account, you can access the scraper through the Apify Console, input the required parameters, and start the scraping process.

**Q: Is this scraper legal to use?**

A: Web scraping is subject to legal and ethical considerations. Before using the Search.ch Apify Scraper, ensure that you comply with the website's terms of service, robots.txt file, and any applicable laws and regulations.

**Q: How fast is the data extraction process?**

A: The speed of data extraction depends on various factors such as the number of businesses, server response time, and the complexity of the data. The scraper is designed to be efficient and fast, but the actual extraction speed may vary.

**Q: How can I export the extracted data?**

A: The Search.ch Apify Scraper allows you to export the extracted data in various formats like JSON, CSV, or Excel. You can download the data directly from the Apify Console or use the Apify API to integrate it into your applications.

***

# Actor input Schema

## `startUrls` (type: `array`):

Job URLs to scrape

## `query` (type: `string`):

Enter keywords to search for specific ads. Leave empty to scrape all ads.

## `maxItems` (type: `integer`):

Maximum number of items to scrape

## `proxyConfiguration` (type: `object`):

Proxy configuration

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://search.ch/tel/?was=hotel"
    }
  ],
  "query": "hotel",
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://search.ch/tel/?was=hotel"
        }
    ],
    "query": "hotel"
};

// Run the Actor and wait for it to finish
const run = await client.actor("lexis-solutions/search-ch-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://search.ch/tel/?was=hotel" }],
    "query": "hotel",
}

# Run the Actor and wait for it to finish
run = client.actor("lexis-solutions/search-ch-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://search.ch/tel/?was=hotel"
    }
  ],
  "query": "hotel"
}' |
apify call lexis-solutions/search-ch-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lexis-solutions/search-ch-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/upR7XUZhkjWH5V7W7/builds/4zNvAMGcwRbkBgTxq/openapi.json
