# Hungarian Construction Contractors (MKIK) Register Scraper (`hyperion-intelligence/hungarian-contractors-mkik-scraper`) Actor

Extract certified construction contractors, general builders, technical supervisors (FMV), and trade licenses from the Hungarian Chamber of Commerce (MKIK) registry. MCP-ready B2B tool.

- **URL**: https://apify.com/hyperion-intelligence/hungarian-contractors-mkik-scraper.md
- **Developed by:** [Hyperion Intelligence](https://apify.com/hyperion-intelligence) (community)
- **Categories:** Lead generation, Business, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 contractor 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

## Hungarian Construction Contractors (MKIK) Directory Scraper & MCP Tool

A high-performance, token-optimized Apify Actor and Model Context Protocol (MCP) server tool designed to extract verified construction companies, general contractors, licensed trades, and certified technical supervisors (*felelős műszaki vezető - FMV*) from the official Hungarian Chamber of Commerce and Industry (*Magyar Kereskedelmi és Iparkamara – MKIK*) public construction registry ([kivitelezo.hu](https://kivitelezo.hu)).

Built specifically for **Autonomous AI Agents (Procurement, Subcontractor Sourcing, Risk & GRC Compliance)**, automated CRM enrichment, and direct workflow integration into Claude Desktop, Cursor, LangChain, Make, and n8n.

***

### ⚡ Key Highlights & Architecture

- **AI & Agent Native (MCP Tool):** Outputs flattened, strictly typed JSON records engineered to eliminate context pollution and minimize token consumption during LLM ReAct loops.
- **Ultra-Lightweight & Fast:** Built entirely on `CheerioCrawler` running on an optimized 128 MB memory profile with sub-second request handling (no heavy headless browser overhead).
- **Pay-per-Event (PPE) Economics:** Predictable cost structure—pay strictly for successfully extracted company profiles ($0.004 per record) plus a synthetic start fee ($0.00005).
- **Graceful Spending Cap Protection:** Real-time monitoring of `eventChargeLimitReached` triggers `crawler.autoscaledPool.abort()` to preserve captured data without charge overruns.
- **Comprehensive Verification:** Extracts statutory tax numbers, MKIK registration codes, authorized construction trade scopes, and licensed on-site technical managers (FMV).

***

### 📥 Input Configuration (Input Schema)

The input schema is streamlined to 3 core parameters to maximize LLM tool discovery and function-calling reliability.

| Field | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `searchQuery` | `String` | `"építő"` | Company name, tax number fragment, activity keyword, or registration number. |
| `maxItems` | `Integer` | `5` | Maximum number of contractor profiles to extract and charge (range: 1 to 5000). Default is 5 for fast daily automated platform tests. |
| `startUrls` | `Array` | `[]` | Optional direct list of pre-filtered MKIK search result URLs. |

#### Input JSON Examples

**Keyword or trade search:**

```json
{
  "searchQuery": "villanyszerelés",
  "maxItems": 15
}
```

**Tax number or specific company lookup:**

```json
{
  "searchQuery": "12345678",
  "maxItems": 1
}
```

***

### 📤 Output Dataset Format

Every record pushed to the default dataset (`Actor.pushData()`) represents a standardized, verified contractor profile:

| Field | Type | Description | Sample Value |
| :--- | :--- | :--- | :--- |
| `companyName` | `string` | Official corporate name or sole proprietor designation | `"Kovács és Társa Építőipari Kft."` |
| `taxNumber` | `string` | Hungarian tax identification number (Adószám) | `"12345678-2-42"` |
| `mkikRegNumber` | `string` | Official MKIK contractor registration code | `"21A12345"` |
| `registrationStatus` | `string` | Official registry status | `"Nyilvántartásban szerepel"` |
| `headquarters` | `string` | Registered corporate seat / address | `"1054 Budapest, Alkotmány u. 10."` |
| `county` | `string` | Territorial county (vármegye) | `"Budapest"` |
| `mainActivity` | `string` | Primary TEÁOR activity code and description | `"4120 - Lakó- és nem lakó épület építése"` |
| `authorizedActivities` | `string[]` | Formally registered construction activities / trades | `["4321 - Villanyszerelés", "4322 - Víz-, gáz-, fűtésszerelés"]` |
| `technicalSupervisors` | `string[]` | Certified technical supervisors (FMV) with chamber IDs | `["Nagy Péter (MMK: 01-12345, MV-É)"]` |
| `profileUrl` | `string` | Direct link to the official MKIK profile page | `"https://kivitelezo.hu/adatlap/21A12345"` |
| `scrapedAt` | `string` | Extraction timestamp (ISO 8601) | `"2026-09-12T15:30:00.000Z"` |

#### Output JSON Sample

```json
{
  "companyName": "Kovács és Társa Építőipari Kft.",
  "taxNumber": "12345678-2-42",
  "mkikRegNumber": "21A12345",
  "registrationStatus": "Nyilvántartásban szerepel",
  "headquarters": "1054 Budapest, Alkotmány u. 10.",
  "county": "Budapest",
  "mainActivity": "4120 - Lakó- és nem lakó épület építése",
  "authorizedActivities": [
    "4120 - Lakó- és nem lakó épület építése",
    "4321 - Villanyszerelés",
    "4322 - Víz-, fűtés-, légkondicionáló-szerelés"
  ],
  "technicalSupervisors": [
    "Nagy Péter (MMK azonosító: 01-12345, jogosultság: MV-É)"
  ],
  "profileUrl": "https://kivitelezo.hu/adatlap/21A12345",
  "scrapedAt": "2026-09-12T15:30:00.000Z"
}
```

***

### 🤖 Agent & Pipeline Integrations

#### Model Context Protocol (MCP) Integration

Add this tool directly to your Claude Desktop or Cursor configuration (`claude_desktop_config.json`) to allow autonomous AI agents to query the registry:

```json
{
  "mcpServers": {
    "apify-mkik-contractors": {
      "command": "npx",
      "args": [
        "-y",
        "@apify/mcp-server",
        "--actor-id",
        "hyperion-intelligence/hungarian-contractors-mkik-scraper",
        "--token",
        "YOUR_APIFY_API_TOKEN"
      ]
    }
  }
}
```

#### Python Client Example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")

run = client.actor("hyperion-intelligence/hungarian-contractors-mkik-scraper").call(
    run_input={"searchQuery": "generálkivitelezés", "maxItems": 10}
)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['companyName']} | Tax ID: {item['taxNumber']} | Status: {item['registrationStatus']}")
```

#### Direct REST / cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/hyperion-intelligence~hungarian-contractors-mkik-scraper/runs?token=YOUR_APIFY_API_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"searchQuery": "építő", "maxItems": 20}'
```

***

### 💰 Cost & Resource Consumption

- **Compute Allocation:** 128 MB RAM.
- **Billing Model:** Pay-per-Event (PPE).
  - Synthetic Actor Start Fee (`apify-actor-start`): **$0.00005**
  - Dataset Record Fee (`apify-default-dataset-item`): **$0.004 / record**
- **Estimated Run Cost:** Extracting 100 complete contractor records costs approximately **$0.40**.

***

### 🔗 Complete Central European Construction & Compliance Stack

Complete your Central European construction intelligence and compliance stack by pairing this Actor with our specialized companion tools:

- **[Hungarian Chamber of Engineers (MMK) Directory Scraper](https://apify.com/hyperion-intelligence/hungarian-engineers-mmk-scraper):** Extract certified civil, structural, mechanical, and electrical engineers with official MMK registry IDs, sector classifications, and direct contacts.
- **[Hungarian Chamber of Architects (MÉK) Directory Scraper](https://apify.com/hyperion-intelligence/hungarian-architects-mek-scraper):** Extract licensed architects, urban planners, interior designers, and architectural studios with verified credentials and decoded direct contacts.
- **[Hungarian Public Procurement Construction Tenders Scraper](https://apify.com/hyperion-intelligence/hungarian-procurement-tenders-scraper):** Extract structured public construction tenders, RFP notices, CPV classifications (45000000-7), estimated budget values, and submission deadlines from official Hungarian procurement portals.

***

### ⚖️ Legal & Compliance Note

This Actor extracts publicly available records maintained by the Hungarian Chamber of Commerce and Industry (*Magyar Kereskedelmi és Iparkamara – MKIK*) under national transparency mandates for registered construction contractors. Users must ensure compliance with relevant data privacy laws and trade regulations when processing business intelligence.

***

### 🇭🇺 Magyar nyelvű összefoglaló és keresési kulcsszavak

Magyar Kereskedelmi és Iparkamara (MKIK) Építőipari Kivitelezői Névjegyzék (kivitelezo.hu) scraper. Regisztrált építőipari kivitelező cégek, egyéni vállalkozók, felelős műszaki vezetők (FMV), szakipari tevékenységek és adószámok gyors exportálása alvállalkozói auditokhoz és beszerzési folyamatokhoz.

# Actor input Schema

## `searchQuery` (type: `string`):

Kivitelező vállalkozás neve, adószáma vagy keresőkifejezés (pl. építő, Kft, 25847848).

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

A feldolgozandó és elmentendő kivitelezői profilok maximális száma (1 és 5000 között).

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

Opcionális közvetlen KNYR keresési vagy adatlap URL-ek.

## Actor input object example

```json
{
  "searchQuery": "építő",
  "maxItems": 5
}
```

# Actor output Schema

## `contractors` (type: `string`):

Verified construction contractor company and sole proprietor profiles

# 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 = {
    "searchQuery": "építő",
    "maxItems": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("hyperion-intelligence/hungarian-contractors-mkik-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 = {
    "searchQuery": "építő",
    "maxItems": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("hyperion-intelligence/hungarian-contractors-mkik-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 '{
  "searchQuery": "építő",
  "maxItems": 5
}' |
apify call hyperion-intelligence/hungarian-contractors-mkik-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hyperion-intelligence/hungarian-contractors-mkik-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/iFBgxZGFBu8ZwUuRi/builds/fo1ylZLAlZrlFssYX/openapi.json
