# Cyprus Company Search & EU VAT Validator (VIES) (`jyaussie/cyprus-company-vat-check`) Actor

Cyprus company search by name or HE number (status, registration date, office) plus EU VAT number validation in VIES for all EU countries and LEI lookup via GLEIF. Official open data, no personal data. Ideal for KYC, due diligence and invoice checks.

- **URL**: https://apify.com/jyaussie/cyprus-company-vat-check.md
- **Developed by:** [Car Helper Tools](https://apify.com/jyaussie) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.00 / 1,000 company records

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

## Cyprus Company Check + EU VAT (VIES) & LEI Validator

**Check a Cypriot company in seconds, in English.** Look up any of the **574,000+ companies, overseas companies, partnerships and business names** in the official Cyprus register by **name or registration number (HE / ΗΕ, AE, OE, BN)**. Get the **status in English** (registered, struck off, in liquidation...), company type, registration date, **registered office** (Greek + Latin transliteration) and the **LEI with its live GLEIF status**. In the same run, **validate any EU VAT number live in VIES**.

Built for KYC / onboarding, accounts payable, invoice checks, B2B sales and due diligence on Cyprus counterparties.

### Why this Actor

- The official register search is Greek-first and one-at-a-time. This Actor does **bulk lookups** with **English status labels**.
- Accepts every registration-number format: `HE165`, `ΗΕ 165` (Greek letters), `he-165`, or just `165`.
- **LEI enrichment**: 14,000+ Cyprus companies are matched to their Legal Entity Identifier, and the LEI status (ISSUED / LAPSED) is refreshed live from GLEIF.
- **VIES VAT validation for all EU countries + Northern Ireland**, with format pre-checks (badly formatted numbers are rejected locally and not charged), automatic retries when a national service is down, and a same-day cache so the same number is never sent to VIES twice a day (VIES fair-use rule).

### Input

| Field | Example | Notes |
|---|---|---|
| `companies` | `["HE165", "Wargaming"]` | Registration numbers or names (Latin or Greek) |
| `vatNumbers` | `["IE6388047V", "LU20260743"]` | Any EU VAT number with country prefix |
| `maxMatchesPerQuery` | `3` | Matches returned per name search |
| `activeOnly` | `true` | Skip struck-off/dissolved names |
| `includeLei` | `true` | Live GLEIF status |
| `includeTraderDetails` | `false` | Return the name/address VIES holds (when the country shares it) |

### Example output

```json
{
  "recordType": "company",
  "query": "HE165",
  "registrationNumber": "HE165",
  "name": "BANK OF CYPRUS PUBLIC COMPANY LIMITED",
  "organisationType": "Company",
  "companyType": "Public company",
  "status": "Registered",
  "isActive": true,
  "registrationDate": "1943-12-31",
  "registeredOffice": {"asPublished": "Στασίνου, 51, Αγία Παρασκευή, Στρόβολος, 2002, Λευκωσία, Κύπρος", "latin": "Stasinou, 51, Agia Paraskevi, Strovolos, 2002, Nicosia, Cyprus"},
  "lei": "PQ0RAP85KK9Z75ONZW93",
  "leiRegistrationStatus": "ISSUED",
  "registerSnapshotDate": "2026-09-29"
}
```

```json
{ "recordType": "vat", "vatNumber": "IE6388047V", "countryCode": "IE", "status": "checked", "valid": true, "checkedAt": "2026-10-17T04:30:12Z" }
```

### Use with AI agents (MCP)

Connect this Actor to Claude, ChatGPT, Cursor or any MCP client with Apify's hosted MCP server:

`https://mcp.apify.com/?tools=jyaussie/cyprus-company-vat-check`

Example prompts:

- "Check Cyprus company HE165 and validate EU VAT number LU20260743 in VIES."
- "Is this Cyprus company still active, and what is its LEI?"
- "Validate these EU VAT numbers: DE..., FR..."

### Pricing

Pay per event:

- **$0.015 per company record** returned
- **$0.005 per VAT number checked** in VIES

Not-found companies, badly formatted VAT numbers and VIES service errors are **free**.

### Data sources, licences & limits

- **Cyprus register**: Department of Registrar of Companies and Intellectual Property, published on the National Open Data Portal (data.gov.cy) under **CC BY 4.0**. Statuses are translated to English and addresses transliterated by this Actor. The Actor uses the register snapshot shown in `registerSnapshotDate`, so changes from the last few weeks may be missing; confirm critical checks on the official register. Some companies are registered under a Greek name (e.g. *ΕΛΛΗΝΙΚΗ ΤΡΑΠΕΖΑ*), so try the Greek name too.
- **LEI**: GLEIF, **CC0**.
- **VAT**: European Commission **VIES**, which queries national databases in real time. Use it, as VIES requires, to confirm the VAT numbers of your trading partners. The Commission is not responsible for the accuracy of national data.
- **Privacy**: no directors, shareholders or other officer data is used. Registered-office addresses are returned only for companies and overseas companies, not for business names or partnerships (which may belong to individuals). VIES trader names/addresses are off by default.
- Not affiliated with the Cyprus Registrar, the European Commission or GLEIF.

# Actor input Schema

## `companies` (type: `array`):

Registration numbers (HE165, ΗΕ 165, AE1234, BN..., or just 165) or company names. Each returned company is one record.

## `vatNumbers` (type: `array`):

VAT numbers with country prefix (CY, DE, EL, FR...). Checked live in the EU VIES service.

## `defaultVatCountry` (type: `string`):

Used when a VAT number has no country prefix.

## `maxMatchesPerQuery` (type: `integer`):

How many companies to return for each name search (best match first).

## `activeOnly` (type: `boolean`):

Skip struck-off, dissolved and liquidated organisations in name searches.

## `includeLei` (type: `boolean`):

Adds the Legal Entity Identifier and its current GLEIF status when the company has one.

## `includeTraderDetails` (type: `boolean`):

Off by default. Turn on only if you need the name/address held by the tax authority (not all countries share it). Use it only to check trading partners.

## Actor input object example

```json
{
  "companies": [
    "HE165"
  ],
  "vatNumbers": [
    "LU20260743"
  ],
  "defaultVatCountry": "CY",
  "maxMatchesPerQuery": 3,
  "activeOnly": false,
  "includeLei": true,
  "includeTraderDetails": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Default dataset, overview view.

# 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 = {
    "companies": [
        "HE165"
    ],
    "vatNumbers": [
        "LU20260743"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jyaussie/cyprus-company-vat-check").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 = {
    "companies": ["HE165"],
    "vatNumbers": ["LU20260743"],
}

# Run the Actor and wait for it to finish
run = client.actor("jyaussie/cyprus-company-vat-check").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 '{
  "companies": [
    "HE165"
  ],
  "vatNumbers": [
    "LU20260743"
  ]
}' |
apify call jyaussie/cyprus-company-vat-check --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jyaussie/cyprus-company-vat-check"
        }
    }
}
```

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/vqQ259C3balNCmH9B/builds/fdj1U8VRKwLJVwQQq/openapi.json
