# Hong Kong Business Directory List Scraper (Phone & Address) (`scrapebench/hong-kong-business-directory-list-scraper`) Actor

Hong Kong businesses from the yp.com.hk Yellow Pages with phone, fax, street address, district, region and map coordinates. Filter by category, region and district.

- **URL**: https://apify.com/scrapebench/hong-kong-business-directory-list-scraper.md
- **Developed by:** [ScrapeBench](https://apify.com/scrapebench) (community)
- **Categories:** Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.004 / business listing

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Hong Kong Business Directory List Scraper (Phone & Address)

### Pain points

- yp.com.hk loads a category 10 listings at a time as you scroll, so a category like Solicitors (1,012 listings on 2026-10-25) is about 100 loads of scrolling and copying.
- A firm with several offices shows each branch as its own entry, so a hand-made list mixes head offices and branches with nothing to tell them apart.
- District and region sit inside the address text, so a list cannot be filtered to Kowloon or Central without cleaning it first.

### What we solve

- Returns every listing in the categories you pick in one run, with phone, fax, street address, district, region and coordinates as separate columns.
- Filters by region (Hong Kong Island, Kowloon, New Territories) and by district; each filter takes a list.
- Branch entries are marked, and a business filed under several of your categories is returned and billed once. Every row carries the date the directory showed it.

### Summary

Build a Hong Kong business prospect list in one run. Pick categories from the yp.com.hk Yellow Pages (1,547 of them, from accountants to cleaning services), narrow by region and district, and get each listing's name, phone, fax, website, street address, district, region and map coordinates. The stored copy read 2026-10-25 to 2026-10-27 holds 71,185 distinct listings across all 1,547 categories: phone on 100%, street address on 99.5%, district on 99.4%, region on 99.3%, coordinates on 72.7%, fax on 26.3% and website on 17.6%. The directory does not publish email. Data comes from a stored copy of the directory, so a run returns in seconds; each row says when it was read. Pay only per listing returned.

### Who it's for

- B2B sales teams and agencies prospecting Hong Kong businesses by trade and district
- Suppliers and service firms building contact lists for one region or district
- Marketing and data teams adding Hong Kong phone and address data to a CRM
- Researchers counting businesses by category and district

### How to use

This actor does two jobs. Run it, then collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API).

**Get a list (export):** no names, just filters; returns the whole matching list.

```json
{
  "categories": [
    "Cleaning-Services"
  ],
  "region": "Kowloon",
  "maxResults": 200
}
```

**Check specific firms (lookup):** put company names or licence numbers in `queries`; **Inputs** below says how each is matched.

```json
{
  "queries": [
    "Parker Cleaning"
  ],
  "maxResults": 5
}
```

See **Inputs** below for every available field.

### What you get

One row per record:

| Field | Description |
|---|---|
| `name` | Business name as listed |
| `phone` | Phone number on the listing |
| `phone_e164` | The same number in international format (+852...) |
| `website` | Website, when the listing has one |
| `street` | Street address as listed |
| `city` | District (e.g. Wan Chai, Mong Kok, Tsuen Wan) |
| `region` | Hong Kong, Kowloon or New Territories |
| `lat` | Latitude, when the listing has a map pin |
| `lng` | Longitude, when the listing has a map pin |
| `category` | The yp.com.hk category the listing was found in |
| `listing_id` | yp.com.hk company ID, stable per listing |
| `extras` | Fax number, and branch=true for a branch entry |
| `source` | 'snapshot' (stored copy) or 'live' |
| `source_url` | The listing's page on yp.com.hk |

Sample:

```json
{
  "name": "Parker Cleaning Servs Co Ltd",
  "phone": "2349 0467",
  "phone_e164": "+85223490467",
  "website": null,
  "street": "Unit 11, 10/F., Block A2, Yau Tong Industrial City, 17 Ko Fai Road,Yau Tong",
  "city": "Yau Tong",
  "region": "Kowloon",
  "lat": 22.2951605,
  "lng": 114.235119,
  "country": "HK",
  "category": "Cleaning Services",
  "listing_id": "589349",
  "extras": {
    "fax": "2347 6069"
  },
  "source": "snapshot",
  "source_url": "https://www.yp.com.hk/Category/CompanyInfo/23490467/589349/0X5893490000X000/1/en"
}
```

### Inputs

| Field | Required | Type | Default | Description |
|---|---|---|---|---|
| `mode` | no | string | `"auto"` | export: no names, just filters; returns the whole matching list. lookup: put business names in 'queries'. auto picks the mode for you. |
| `query` | no | string | — | A business name (or listing number) to look up live. Kept alongside 'queries' for saved tasks. |
| `queries` | no | array | `[]` | A business name (or listing number) to look up live. Several values in one run; combined with 'query'. |
| `region` | no | string | — | Only listings in this region. Kept alongside 'regions' for saved tasks. |
| `regions` | no | array | `[]` | Only listings in this region. Several values in one run; combined with 'region'. |
| `district` | no | string | — | Only listings in this district. Kept alongside 'districts' for saved tasks. |
| `districts` | no | array | `[]` | Only listings in this district. Several values in one run; combined with 'district'. |
| `categories` | no | array | `[]` | Only these categories, in the source's own names. Available: Abrasives, Accountants-Certified-Public-Accountants-Public-Accountants, Accountants-General, Acrylic-Products-Wholesalers-Manufacturers, Acupressure, Acupuncture, Adhesives-Glues, Adult-Products, Adventure-Training, Advertising-Agencies-Consultants, Advertising-Backdrop, Advertising-Ceremony-Planning, Advertising-Cinema, Advertising-Computer-Cuttings, Advertising-Direct-Marketing, Advertising-Equipment-Supplies, Advertising-Exhibition, Advertising-Handbill-Distribution, Advertising-Internet, Advertising-Newspaper, Advertising-Outdoor, Advertising-Paint-Jet, Advertising-Periodical, Advertising-Posters, Advertising-Premiums, … (1,547 in all; an unknown name returns the full list, free). |
| `maxResults` | no | integer | `500` | Per query in lookup mode; per run in export mode. |
| `proxyConfiguration` | no | object | `{"useApifyProxy": false}` | Used only for live lookups; exports read the stored snapshot. |

### Pricing (Pay Per Event)

You pay per result (`dataset-item`) — **no charge for empty runs**. Example: **500 business listings** at *$0.004/result* ≈ **$2.00**.

Notices (unknown category, a request too large for one run, stale data) are free. Apify platform usage is billed separately per your plan.

### Use cases

- Outbound lead generation: every cleaning-services company in Kowloon (94 on 2026-10-25) with phone, fax and street address.
- Professional-services prospecting: all solicitors' offices in Central (473 on 2026-10-25), ready for a CRM import.
- Territory planning: list a trade across several districts with map coordinates and plot it.
- Market sizing: count listings per category and district before buying a full list.

### Why this actor

- Phone on 100%, street address on 99.5% and map coordinates on 72.7% of 71,185 listings read 2026-10-25 to 2026-10-27.
- District and region as their own columns, ready to sort and filter.
- Branch entries marked, so head offices and branches can be told apart.
- Each business once, even when it is filed under several categories.
- Pay per listing; notices are free.

### Limitations & updates

Covers businesses listed on yp.com.hk. Data is served from a stored copy, so it can be weeks old; the run log states its date. No email is published. Coordinates are on about three listings in four. Category names are yp.com.hk's own. One run loads up to 300,000 listings.

### FAQ

**Where does the data come from?**

The public yp.com.hk Yellow Pages. We keep a stored copy of its category listings and serve your run from it, so results come back in seconds. The run log states the date of the copy.

**How do I choose categories?**

Use the yp.com.hk category names with hyphens, as in its web addresses, e.g. 'Cleaning-Services' or 'Solicitors'. Enter any name the actor does not know and it returns the full list of 1,547 categories as a free row.

**Can I filter by area?**

Yes. 'region' is Hong Kong (the island), Kowloon or New Territories; 'district' is the district named in the address, e.g. Central, Wan Chai or Mong Kok. Both take a list.

**Does it include email addresses?**

No. yp.com.hk does not publish an email for listings. Phone is on every listing in the stored copy, fax on 26.3% and website on 17.6%.

**What is a branch row?**

yp.com.hk lists each office of a multi-office firm separately, with its own company ID. Those rows carry extras.branch = true (10.7% of the 71,185 listings in the stored copy).

**How current is it?**

The stored copy is refreshed when it is older than a month and the actor is in use. The run log states the date of the copy, and a run served from a copy older than 45 days returns one free notice saying so.

**How am I charged?**

One event per business listing returned. A business found in two of your categories is charged once. Notices are free.

### Guides & use cases

Written up on **[scrapebench.dev](https://scrapebench.dev)** — the bench that runs and verifies this actor against the live source every night:

- **How-to:** [How to run Hong Kong Business Directory List Scraper (Phone & Address)](https://scrapebench.dev/guides/how-to-hong-kong-business-directory-list-scraper/)
- **Use case:** [Central, Hong Kong Solicitors List with Phone Numbers](https://scrapebench.dev/use-cases/central-hong-kong-solicitors/)

More actors, coverage and nightly verification results: **[scrapebench.dev](https://scrapebench.dev)**

### Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the [MCP tab](https://apify.com/scrapebench/hong-kong-business-directory-list-scraper/api/mcp) on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

> "List cleaning-services companies in Kowloon, Hong Kong, with their phone numbers and street addresses."

That is category 'Cleaning-Services' with region 'Kowloon': 94 listings on the 2026-10-25 data. Runs started this way bill exactly like any other run.

### Data & lawful use

This actor collects publicly available information that yp.com.hk (Hong Kong Yellow Pages) publishes for public
lookup — licence records, business listings and the contact details professionals list there.
Some of it identifies individuals (sole proprietors, licence holders, agents), so treat any
names, phone numbers and emails in your results as personal data.

When you run this actor, you decide what is collected and what it is used for, so you are the
controller of that data and we act only as your processor (Apify Standard Actor Contract).
You need a lawful basis for your use, must honour opt-out and deletion requests, and must
follow the marketing rules that apply to you (CAN-SPAM, TCPA, GDPR, CCPA and similar).
Don't use the output for unsolicited bulk messaging, for screening covered by the FCRA, or
for anything the source's own terms forbid.

Your results are stored in your own Apify account. We don't keep a copy of your results and
don't sell or share them.

### Disclaimer

This is an independent tool. It is not affiliated with, endorsed by or sponsored by
yp.com.hk (Hong Kong Yellow Pages). Names and marks are used only to describe the data source. Records are
provided as published by the source and may be out of date or incomplete. For anything
consequential (hiring, a permit, a legal decision), confirm the record with the issuing
agency. You are responsible for making sure your use complies with applicable law and the
source's terms.

### Need help?

Open an issue on this actor's **Issues** tab and we'll respond there. Bug reports, missing
fields and feature requests are all welcome. Guides and examples: [scrapebench.dev](https://scrapebench.dev).

If you are a person named in this data and want your record removed from our copy, email
apify-help@scrapebench.dev; the source agency remains the official record.

Your run may be used to improve our services. If something looks off, or you want this actor to fit your use better, please share your run data with us: [Apify Console → Settings → Security → Share run data with developers](https://console.apify.com/settings/security). It lets us see exactly what went wrong and keep improving the actor.

# Actor input Schema

## `mode` (type: `string`):

export: no names, just filters; returns the whole matching list. lookup: put business names in 'queries'. auto picks the mode for you.

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

A business name (or listing number) to look up live. Kept alongside 'queries' for saved tasks.

## `queries` (type: `array`):

A business name (or listing number) to look up live. Several values in one run; combined with 'query'.

## `region` (type: `string`):

Only listings in this region. Kept alongside 'regions' for saved tasks.

## `regions` (type: `array`):

Only listings in this region. Several values in one run; combined with 'region'.

## `district` (type: `string`):

Only listings in this district. Kept alongside 'districts' for saved tasks.

## `districts` (type: `array`):

Only listings in this district. Several values in one run; combined with 'district'.

## `categories` (type: `array`):

Only these categories, in the source's own names. Available: Abrasives, Accountants-Certified-Public-Accountants-Public-Accountants, Accountants-General, Acrylic-Products-Wholesalers-Manufacturers, Acupressure, Acupuncture, Adhesives-Glues, Adult-Products, Adventure-Training, Advertising-Agencies-Consultants, Advertising-Backdrop, Advertising-Ceremony-Planning, Advertising-Cinema, Advertising-Computer-Cuttings, Advertising-Direct-Marketing, Advertising-Equipment-Supplies, Advertising-Exhibition, Advertising-Handbill-Distribution, Advertising-Internet, Advertising-Newspaper, Advertising-Outdoor, Advertising-Paint-Jet, Advertising-Periodical, Advertising-Posters, Advertising-Premiums, … (1,547 in all; an unknown name returns the full list, free).

## `maxResults` (type: `integer`):

Per query in lookup mode; per run in export mode.

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

Used only for live lookups; exports read the stored snapshot.

## Actor input object example

```json
{
  "mode": "auto",
  "queries": [],
  "regions": [],
  "districts": [],
  "categories": [],
  "maxResults": 500,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

One row per business listing; notices are free.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapebench/hong-kong-business-directory-list-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("scrapebench/hong-kong-business-directory-list-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 '{}' |
apify call scrapebench/hong-kong-business-directory-list-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapebench/hong-kong-business-directory-list-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/sVEa07HIuxSyvYfPf/builds/9cR7g9TBH4JDGCCoj/openapi.json
