# GCC HNW Directory — Find Wealthy Gulf Individuals by Name (`belcaidsaad/gcc-hnw-directory`) Actor

Find named high-net-worth individuals across the Gulf — Saudi Arabia, UAE, Qatar, Kuwait, Bahrain. Billionaires, executives, and ruling-family members. Built for SSM members targeting GCC HNW with investment products, wealth advisory, or family-office services.

- **URL**: https://apify.com/belcaidsaad/gcc-hnw-directory.md
- **Developed by:** [Saad Belcaid](https://apify.com/belcaidsaad) (community)
- **Categories:** Automation, Lead generation, News
- **Stats:** 11 total users, 7 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## GCC HNW Directory — Find Wealthy Gulf Individuals by Name

**Built for Youssef (SSM) by [Saad Belcaid](https://www.skool.com/@saadbelcaid).**

This scraper finds named high-net-worth individuals across the Gulf — Saudi Arabia, UAE, Qatar, Kuwait, and Bahrain. **~940 unique named GCC HNW individuals across all 5 countries.**

---

### What's actually in the dataset

GCC HNW is structurally different from the West. There's no Companies House. Most wealth is private and family-held. So instead of a single feed, this scraper pulls every public record where named GCC HNW individuals show up — billionaires, business executives, ruling-family members — and merges them into one verified directory.

After cross-source dedup by normalized Latin name + country: **~940 unique HNW individuals** with name, country, role (billionaire / business executive / royal family member), and a confirmation count (how many independent records confirmed this person).

---

### Volume by country

````

Saudi Arabia (SA)  ─  288 individuals
UAE (AE)           ─  210 individuals
Kuwait (KW)        ─  259 individuals
Qatar (QA)         ─  105 individuals
Bahrain (BH)       ─   78 individuals
────
TOTAL              ─  ~940 unique HNW

````

**~80 multi-confirmed** — same person showing up in 2+ independent records (e.g. Mohammed bin Rashid Al Maktoum, Hussain Sajwani, Mohammed bin Salman, Hamad bin Jassim Al Thani). These are your highest-confidence leads.

---

### How to use it

#### Default run — get the full directory

```yaml
countries: ["SA", "AE", "QA", "KW", "BH"]
minWealthBand: "unknown"
includeUnknownWealth: true
````

Hit run. Wait ~3-5 minutes. Expect ~940 rows.

#### Filter recipes

**Saudi only:**

```yaml
countries: ["SA"]
```

**Just the most-confirmed names:**
After scrape, filter dataset by `confirmation_count >= 2` — gives you ~80 highest-confidence rows.

**Royal family only:**
After scrape, filter by `role == "royal family member"` — ~700 ruling-family members across the 6 GCC dynasties.

**Working executives (not royals):**
After scrape, filter by `role IN ("business executive", "billionaire")`.

***

### Output — one row per HNW individual

| Field | Example |
|---|---|
| **`person_name`** | Mohammed bin Rashid Al Maktoum |
| `country` | AE |
| `country_name` | United Arab Emirates |
| `wealth_band` | $10B+ (when confirmed) / `unknown` |
| `source_of_wealth` | royal household — Dubai |
| `role` | royal family member |
| `primary_company` | (often null — most rows are person-attributed not company-attributed) |
| **`confirmation_count`** | 3 |
| **`signal`** | "Mohammed bin Rashid Al Maktoum, royal family member (United Arab Emirates) — royal household — Dubai — 3 confirmations" |
| `scraped_at` | ISO timestamp |

***

### How the dedup key works

GCC names appear in many forms:

- "H.H. Sheikh Mohammed bin Rashid Al Maktoum"  (formal)
- "Mohammed bin Rashid Al Maktoum"               (standard)
- "Mohammad Bin Rashid Al-Maktoum"               (alternate transliteration)

The dedup function strips honorifics (H.H., Sheikh, Prince), normalizes Al-/Al particle spacing, lowercases, and removes diacritics. The three forms above all collapse to `mohammad bin rashid al maktoum` and merge into one row with `confirmation_count = 3`.

***

### Honest limitations

1. **Some rows are historical figures.** Past kings (King Abdullah, King Salman) appear in the directory. Filter post-scrape if your CRM only wants living targets.
2. **No live freshness signal for most countries.** GCC exchanges don't expose SEC-style insider feeds. The directory is best read as a stable HNW list, not a fresh-event feed.
3. **Wealth bands are mostly `unknown`.** Public records publish names; USD net worth is usually only available for the top tier. Post-process if you need wealth tiering for everyone.
4. **Royal family members dominate.** ~700 of 940 are ruling-family entries. Some are minor princes/princesses; some are heads of state. They're all HNW but the wealth distribution within ruling families is uneven.

***

### Architecture

- Apify Actor, TypeScript, Playwright
- Multiple inputs run in parallel
- Apify Residential Proxy recommended for resilience
- Cross-record aggregator dedups by normalized Latin name + country, merges fields, picks the highest wealth band when records disagree

### Costs

- Apify compute: ~3-5 min per run × 1024 MB ≈ trivial CU
- Apify Residential Proxy (optional): ~$0.10 per run

***

### Connector OS Station integration

Pipe the dataset into Station as the demand side. The `signal` field plugs straight into the I Layer for evaluation against your supply network (wealth managers, family-office consultants, real-estate brokers, alt-investment platforms).

**Flow:** scrape → dataset → paste dataset ID into Station → match against your supply network → scored introductions.

***

*Built by Saad Belcaid for Youssef's SSM workflow.*

# Actor input Schema

## `countries` (type: `array`):

Restrict to specific GCC country codes. SA = Saudi Arabia, AE = UAE, QA = Qatar, KW = Kuwait, BH = Bahrain. Default: all 5.

## `minWealthBand` (type: `string`):

Drop rows below this band. unknown = no minimum.

## `includeUnknownWealth` (type: `boolean`):

If true, keep rows from sources that don't publish a USD number (Argaam, QSE insiders). If false, only keep rows with a confirmed wealth band.

## `maxRecords` (type: `integer`):

Cap on total output rows.

## `sources` (type: `array`):

Restrict to specific source IDs. Empty = run all. Available: wikipedia, forbes-me, argaam, qse, gcc-exchanges

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

Optional Apify proxy. Recommended: residential proxies for the anti-bot GCC exchanges (DFM, ADX, BHB, Boursa Kuwait).

## Actor input object example

```json
{
  "countries": [
    "SA",
    "AE",
    "QA",
    "KW",
    "BH"
  ],
  "minWealthBand": "unknown",
  "includeUnknownWealth": true,
  "maxRecords": 5000,
  "sources": [],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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("belcaidsaad/gcc-hnw-directory").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("belcaidsaad/gcc-hnw-directory").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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 belcaidsaad/gcc-hnw-directory --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=belcaidsaad/gcc-hnw-directory",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "GCC HNW Directory — Find Wealthy Gulf Individuals by Name",
        "description": "Find named high-net-worth individuals across the Gulf — Saudi Arabia, UAE, Qatar, Kuwait, Bahrain. Billionaires, executives, and ruling-family members. Built for SSM members targeting GCC HNW with investment products, wealth advisory, or family-office services.",
        "version": "1.0",
        "x-build-id": "UZvnDEq9tqA2PlKjB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/belcaidsaad~gcc-hnw-directory/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-belcaidsaad-gcc-hnw-directory",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/belcaidsaad~gcc-hnw-directory/runs": {
            "post": {
                "operationId": "runs-sync-belcaidsaad-gcc-hnw-directory",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/belcaidsaad~gcc-hnw-directory/run-sync": {
            "post": {
                "operationId": "run-sync-belcaidsaad-gcc-hnw-directory",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "countries": {
                        "title": "Countries (filter)",
                        "type": "array",
                        "description": "Restrict to specific GCC country codes. SA = Saudi Arabia, AE = UAE, QA = Qatar, KW = Kuwait, BH = Bahrain. Default: all 5.",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "SA",
                            "AE",
                            "QA",
                            "KW",
                            "BH"
                        ]
                    },
                    "minWealthBand": {
                        "title": "Minimum Wealth Band",
                        "enum": [
                            "unknown",
                            "$10M+",
                            "$50M+",
                            "$100M+",
                            "$500M+",
                            "$1B+",
                            "$5B+",
                            "$10B+"
                        ],
                        "type": "string",
                        "description": "Drop rows below this band. unknown = no minimum.",
                        "default": "unknown"
                    },
                    "includeUnknownWealth": {
                        "title": "Include records with unknown wealth",
                        "type": "boolean",
                        "description": "If true, keep rows from sources that don't publish a USD number (Argaam, QSE insiders). If false, only keep rows with a confirmed wealth band.",
                        "default": true
                    },
                    "maxRecords": {
                        "title": "Max Records",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Cap on total output rows.",
                        "default": 5000
                    },
                    "sources": {
                        "title": "Sources (advanced)",
                        "type": "array",
                        "description": "Restrict to specific source IDs. Empty = run all. Available: wikipedia, forbes-me, argaam, qse, gcc-exchanges",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional Apify proxy. Recommended: residential proxies for the anti-bot GCC exchanges (DFM, ADX, BHB, Boursa Kuwait).",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
