Company records in Greece
Your agent looks up companies in Greece through Greek Company Data. The data comes from GEMI Open Data API — Γενικό Εμπορικό Μητρώο (Greek Business Registry).
Greek Company Data
Look up a Greek company in GEMI by registry number or tax ID, including identity, status, address and directors where available.
- Source
- GEMI Open Data API — Γενικό Εμπορικό Μητρώο (Greek Business Registry)
- Price per call
- €0.05 · x402 $0.054
- Returns
- Name and number, Status, Address, Officers
- Last recorded test
- 5 Nov 2026, 100% of its tests passed on their latest run
- Method
- Computed by fixed rules and lookups; no AI model writes the answer.
What your agent sends
| Field | Type | Required | What it is |
|---|---|---|---|
afm | string | No | Greek tax ID (AFM, 9 digits) — used as fallback when GEMI number is not known |
gemi_number | string | No | Greek GEMI registry number (6-14 digits) |
Example answer
{
"afm": "094014201",
"status": "active",
"address": "ΠΛΑΤΕΙΑ ΠΑΡΚΟΥ, 35100 ΛΑΜΙΑ, ΛΑΜΙΕΩΝ / ΦΘΙΩΤΙΔΑΣ",
"directors": [],
"is_branch": true,
"legal_form": "ΑΕ",
"legal_name": "ΕΘΝΙΚΗ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ Α.Ε.",
"org_number": "237954001",
"vat_number": "EL094014201",
"company_name": "ΕΘΝΙΚΗ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ Α.Ε.",
"business_type": "ΑΕ",
"industry_code": null,
"tier_2_available": true,
"ubo_availability": "unavailable_no_registry",
"date_incorporated": "1941-01-01",
"registration_date": "1941-01-01",
"registered_address": "ΠΛΑΤΕΙΑ ΠΑΡΚΟΥ, 35100 ΛΑΜΙΑ, ΛΑΜΙΕΩΝ / ΦΘΙΩΤΙΔΑΣ",
"industry_description": null,
"primary_registration_id": "237954001",
"tier_2_available_reason": "GEMI exposes legal representatives via representation array; signing_authority not currently extracted",
"ubo_availability_reason": "Programmatic UBO access not yet operational at v1; verification pending public-source confirmation"
} Fields that come back
| Field | Type | Appears |
|---|---|---|
afm | string | Usually (present for most inputs) |
status | string | Always (present in every successful answer) |
address | string | Usually (present for most inputs) |
directors | array | Usually (present for most inputs) |
is_branch | boolean | Always (present in every successful answer) |
org_number | string | Always (present in every successful answer) |
vat_number | string | Usually (present for most inputs) |
company_name | string | Always (present in every successful answer) |
business_type | string | Always (present in every successful answer) |
industry_code | string | Usually (present for most inputs) |
registration_date | string | Usually (present for most inputs) |
industry_description | string | Usually (present for most inputs) |
How to call it
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "greek-company-data",
"inputs": {
"gemi_number": "296601000"
},
"max_price_cents": 5
}' {
"tool": "strale_execute",
"arguments": {
"slug": "greek-company-data",
"inputs": {
"gemi_number": "296601000"
},
"max_price_cents": 5
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "greek-company-data",
inputs: {
"gemi_number": "296601000"
},
max_price_cents: 5,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="greek-company-data",
inputs={
"gemi_number": "296601000",
},
max_price_cents=5,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i -X POST https://api.strale.io/x402/v2/greek-company-data \
-H 'Content-Type: application/json' \
-d '{
"gemi_number": "296601000"
}' Limitations
Official registry data access
Data comes from the official registry's public API under its open-data terms (https://opendata.businessportal.gr/license/); results carry the registry as their source.
Registry status interpretation
Known GEMI status descriptions map to active, inactive, dissolved, bankrupt or liquidation; unrecognised descriptions are preserved and missing descriptions return unknown. These mappings are not independently confirmed against live GEMI responses.
GEMI rate limit is 8 requests per minute
The GEMI Open Data API enforces a maximum of 8 requests per minute per API key. Requests exceeding this limit return HTTP 429.
What to do instead: Space requests to stay within 8 per minute.
AFM tax identifiers can be missing
When AFM is missing the derived vat_number is null; vat-validate downstream steps will soft-fail for those entities.
What to do instead: Provide the AFM as input directly when known, or use a separate VAT validation source.
Branches and main entities are both returned by GEMI
GEMI includes branch records (is_branch=true) alongside main-entity records. Some KYB use cases want the parent only.
What to do instead: Check the is_branch field before using the record as the principal counterparty.
Bundled checks for Greece
- Company check €1.50
- Full check €2.50
- Invoice-issuer check €2.50
Screen the company or its people
Results are matches for a person to review, not a verdict.
- Sanctions Check €0.20
- PEP Check €0.05
- Adverse Media Check €0.20