# EU Company Check - VAT, Company Data & Sanctions (`arvin-data/eu-company-check`) Actor

Verify EU companies in bulk: validate VAT numbers (VIES), enrich with official company data (GLEIF), and screen against the EU sanctions list — one clean verdict per company.

- **URL**: https://apify.com/arvin-data/eu-company-check.md
- **Developed by:** [Mike Ulre](https://apify.com/arvin-data) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## EU Company Check — VAT, Company Data & Sanctions

**🌐 Overview and live demo: [company-check.arvin.world](https://company-check.arvin.world)**

Verify any EU company in one step — validate its VAT number, pull its official registered data, and screen it against the EU sanctions list. Built entirely on **official EU and GLEIF open data**. One clean verdict per company, in bulk.

### Why this exists

Before you invoice a new customer, onboard a supplier or accept a partner, you need to know three things:

1. **Is the VAT number real and active?** (Wrong VAT = rejected invoice, tax trouble.)
2. **Who is this company officially?** (Legal name, address, is it still active?)
3. **Is it sanctioned?** (Trading with a sanctioned entity is a criminal offence.)

Each answer lives in a separate official source. Checking them by hand, one company at a time, across three websites, does not scale. This Actor does all three for a whole list at once.

### What you get per company

| Field | From | Meaning |
|---|---|---|
| `risk` | combined | **clear · review · high** — the one-glance verdict |
| `vat_valid` | VIES | Is the VAT number valid and active? |
| `company_name`, `official_address` | VIES / GLEIF | Official registered identity |
| `lei`, `entity_status`, `registered_as` | GLEIF | Legal Entity Identifier, active/inactive, register number |
| `sanctions_hit` | EU list | **Strong** match against the EU sanctions list |
| `sanctions_review` | EU list | Weaker match that a human should verify |
| `sanctions_matches` | EU list | The matched entries, with similarity score and official reference |
| `notes` | combined | Plain-language explanation of the verdict |

### Input

One company per line. Each line can be a VAT number, a name, or both — separated by `;` or `|`:

````

LU26375245 ; Amazon Europe Core
Siemens AG ; DE
DE811569869
Rosoboronexport

````

The Actor auto-detects which part is a VAT number, a country code, or a name. A country code (`DE`, `FR`, …) helps disambiguate common company names.

### The verdict, honestly

- **clear** — VAT valid and/or entity found, no sanctions match.
- **review** — something needs a human: invalid VAT, an inactive entity, or a *possible* (weaker) sanctions match.
- **high** — a strong sanctions match. Do not proceed without checking the official reference.

Sanctions screening is deliberately **two-tiered**: a strong match raises an alarm, a weaker name overlap is flagged for review rather than silently ignored or falsely escalated. Company names are matched on their *distinctive* words — "Deutsche Bank" will not match "T-Bank" just because both contain "bank".

### Typical uses

- **Customer / supplier onboarding** — screen a new business partner in seconds.
- **Invoice compliance** — validate VAT numbers before issuing cross-border invoices.
- **Periodic re-screening** — re-run your customer list against the latest sanctions list (schedule it weekly).

### Data sources & licence

- **VIES** — EU VAT Information Exchange System (European Commission), official.
- **GLEIF** — Global Legal Entity Identifier Foundation, open data (CC0).
- **EU Consolidated Sanctions List** — European External Action Service, official open data.

This Actor uses only official public APIs and open datasets — nothing is scraped or circumvented. **It is not legal advice**; a positive sanctions match must always be verified against the official reference before acting. Not affiliated with or endorsed by the European Union or GLEIF.

# Actor input Schema

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

One company per line. Each line can be a VAT number (e.g. DE811569869), a company name (e.g. Siemens AG), or both separated by a semicolon or pipe: VAT ; Name ; Country. A country code (DE, FR, …) helps disambiguate common names.
## `runSanctions` (type: `boolean`):

Match each company name against the official EU Consolidated Sanctions List. Turn off if you only need VAT validation and company data.
## `lookupCompanyData` (type: `boolean`):

Enrich each company with its official legal name, address, legal form and LEI from the GLEIF register. Turn off for faster VAT-only or sanctions-only runs.
## `validateVat` (type: `boolean`):

Check any VAT number against the EU VIES system. Applies only to lines that contain a VAT number.

## Actor input object example

```json
{
  "queries": [
    "LU26375245 ; Amazon Europe Core",
    "Siemens AG ; DE",
    "Rosoboronexport"
  ],
  "runSanctions": true,
  "lookupCompanyData": true,
  "validateVat": true
}
````

# 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": [
        "LU26375245 ; Amazon Europe Core",
        "Siemens AG ; DE",
        "Rosoboronexport"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("arvin-data/eu-company-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 = { "queries": [
        "LU26375245 ; Amazon Europe Core",
        "Siemens AG ; DE",
        "Rosoboronexport",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("arvin-data/eu-company-check").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 '{
  "queries": [
    "LU26375245 ; Amazon Europe Core",
    "Siemens AG ; DE",
    "Rosoboronexport"
  ]
}' |
apify call arvin-data/eu-company-check --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=arvin-data/eu-company-check",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "EU Company Check - VAT, Company Data & Sanctions",
        "description": "Verify EU companies in bulk: validate VAT numbers (VIES), enrich with official company data (GLEIF), and screen against the EU sanctions list — one clean verdict per company.",
        "version": "0.1",
        "x-build-id": "zoK0e6uyQelzW2gp1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/arvin-data~eu-company-check/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-arvin-data-eu-company-check",
                "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/arvin-data~eu-company-check/runs": {
            "post": {
                "operationId": "runs-sync-arvin-data-eu-company-check",
                "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/arvin-data~eu-company-check/run-sync": {
            "post": {
                "operationId": "run-sync-arvin-data-eu-company-check",
                "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": {
                    "queries": {
                        "title": "Companies to check",
                        "type": "array",
                        "description": "One company per line. Each line can be a VAT number (e.g. DE811569869), a company name (e.g. Siemens AG), or both separated by a semicolon or pipe: VAT ; Name ; Country. A country code (DE, FR, …) helps disambiguate common names.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "runSanctions": {
                        "title": "Screen against EU sanctions list",
                        "type": "boolean",
                        "description": "Match each company name against the official EU Consolidated Sanctions List. Turn off if you only need VAT validation and company data.",
                        "default": true
                    },
                    "lookupCompanyData": {
                        "title": "Look up official company data (GLEIF)",
                        "type": "boolean",
                        "description": "Enrich each company with its official legal name, address, legal form and LEI from the GLEIF register. Turn off for faster VAT-only or sanctions-only runs.",
                        "default": true
                    },
                    "validateVat": {
                        "title": "Validate VAT numbers (VIES)",
                        "type": "boolean",
                        "description": "Check any VAT number against the EU VIES system. Applies only to lines that contain a VAT number.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
