Greek Company Data

Look up a Greek company in GEMI by registry number or tax ID, including identity, status, address and directors where available.

Pay by wallet (x402) Greece: all company records greek-company-data

Example

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"
}

Inputs

FieldTypeRequiredWhat it is
afmstringNoGreek tax ID (AFM, 9 digits) — used as fallback when GEMI number is not known
gemi_numberstringNoGreek GEMI registry number (6-14 digits)

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
afmstringUsually (present for most inputs)
statusstringAlways (present in every successful answer)
addressstringUsually (present for most inputs)
directorsarrayUsually (present for most inputs)
is_branchbooleanAlways (present in every successful answer)
org_numberstringAlways (present in every successful answer)
vat_numberstringUsually (present for most inputs)
company_namestringAlways (present in every successful answer)
business_typestringAlways (present in every successful answer)
industry_codestringUsually (present for most inputs)
registration_datestringUsually (present for most inputs)
industry_descriptionstringUsually (present for most inputs)

How to call it

The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.

# 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
  }'

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.