# UAEHawk — Abu Dhabi Global Market (ADGM) Company Data (`inexhaustible_glass/uaehawk`) Actor

Search ADGM's official Public Register (18,000+ entities) by company name. Free Abu Dhabi Global Market data: entity type, registration number, status, license, incorporation date, address, trade names. No API key. UAE company search / KYB / due diligence / B2B leads.

- **URL**: https://apify.com/inexhaustible\_glass/uaehawk.md
- **Developed by:** [Hitman studio](https://apify.com/inexhaustible_glass) (community)
- **Categories:** Business, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 results

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

## 🇦🇪 UAEHawk — Abu Dhabi Global Market (ADGM) Company Data Scraper

One company name in → **official ADGM Public Register data** out: entity type, registration
number, status, license status, incorporation date, registered address, and trade names.

### Real, official, free source (no key, login, or proxy needed)

Data comes straight from **ADGM's own "Search Public Register"** tool at
`newreg.adgm.com/s/search-results` — a blank search there returns **"Displaying 1 - 10 of
18,782 Results"**, the entire live register. This actor automates exactly that search, no
different from a human visitor using the same public page.

### Why this uses a real browser

ADGM's search is a Salesforce Aura RPC call. Replicating the raw HTTP request by hand
(exact field-schema template, fresh session token, cookies — all matched byte-for-byte)
still gets rejected server-side, because Salesforce's Apex-side validation needs more live
session state than a static request can fake. A real, stealth-patched browser
(**CloakBrowser**) sidesteps this entirely by letting ADGM's own JavaScript build that
session itself — this actor just reads the resulting network response, the same one your
own browser would receive.

### What you get, per entity

```json
{
  "name": "EMIRATES NBD BANK (P.J.S.C)",
  "registration_number": "TP-000002141",
  "entity_type": "Permit",
  "entity_status": "Expired",
  "license_status": null,
  "category": null,
  "incorporation_date": "2023-05-12",
  "is_continued": false,
  "registered_address": "Sub-Unit 1 of the Unit 4, Level 8, Al Sarab Tower, Adgm Square, Al Maryah Island, Abu Dhabi, United Arab Emirates",
  "trade_names": [],
  "adgm_internal_id": "0015q00000O5MeQAAV"
}
```

### Bulk enumeration

Leave `queries` empty and set `blankSearchMaxRecords` to bulk-download the register instead
of searching by name — e.g. `500` pulls the first 500 entities (10 per page), same data ADGM's
own "Export as Excel" button on the search page would give a human user.

### Honest scope

Only covers entities registered with **ADGM** (Abu Dhabi Global Market), one of the UAE's
several free-zone jurisdictions. DIFC (Dubai International Financial Centre), Dubai
Mainland (DED), and other emirates' registries are separate systems — out of scope here,
an honest gap, not a guess.

### Who needs this

KYB / AML compliance teams · B2B sales & lead-gen (UAE / Gulf market) · due diligence on UAE
counterparties · accountants & lawyers verifying an ADGM entity's standing · anyone
checking whether a UAE-registered company is active, expired, or in good standing.

### Legal

Reads only the same public, free, official register data any visitor can look up by hand
on ADGM's own website — no login, no scraping-behind-auth.

***

#### Also known as / search terms

UAE company search, Abu Dhabi company search, ADGM company search, ADGM public register,
Abu Dhabi Global Market search, UAE business registry, UAE KYB, UAE KYC, UAE due diligence
tool, UAE company data API, ADGM entity lookup, ADGM registration number lookup, UAE company
verification, UAE free zone company search, Abu Dhabi free zone registry, UAE company
database, scrape UAE companies, UAE B2B leads, Gulf company registry, GCC company search,
Dubai and Abu Dhabi business data, UAE company status check, ADGM license lookup.

### Install / run

```bash
apify call uaehawk --input '{"queries": ["Emirates NBD"]}'
```

# Actor input Schema

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

One or more company names to search for in ADGM's Public Register. A name matching multiple entities returns every match, in full.

## `blankSearchMaxRecords` (type: `integer`):

Leave 'queries' empty and set this to bulk-enumerate the register instead (e.g. 500 = first 500 entities, 10 per page). The full register has 18,000+ entities.

## Actor input object example

```json
{
  "queries": [
    "Emirates NBD",
    "Google",
    "Etihad Airways"
  ],
  "blankSearchMaxRecords": 100
}
```

# Actor output Schema

## `companies` (type: `string`):

No description

# 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 = {
    "queries": [
        "Emirates NBD",
        "Google"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("inexhaustible_glass/uaehawk").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 = { "queries": [
        "Emirates NBD",
        "Google",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("inexhaustible_glass/uaehawk").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 '{
  "queries": [
    "Emirates NBD",
    "Google"
  ]
}' |
apify call inexhaustible_glass/uaehawk --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,inexhaustible_glass/uaehawk"
        }
    }
}
```

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/3H4SVdAEeDvwpNAXs/builds/he04yvadtyG8OoWsB/openapi.json
