# Armenia Company Registry + Beneficial Owners (`reestri/am-company-lookup`) Actor

Look up any company in Armenia's state register (e-register.moj.am) by name or unique identifier: status, registration number and date, tax ID, address, and the company's public beneficial-ownership declarations parsed from official BODS data into clean JSON.

- **URL**: https://apify.com/reestri/am-company-lookup.md
- **Developed by:** [Soso Pkhakadze](https://apify.com/reestri) (community)
- **Categories:** Agents, MCP servers
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $500.00 / 1,000 company record incl. beneficial owners

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Armenia Company Registry + Beneficial Owners

Look up any company in Armenia's state register (Ministry of Justice, e-register.moj.am)
by name or unique identifier, and get a clean JSON record: status, registration number
and date, tax ID, address, registering body, plus the company's **public
beneficial-ownership declarations**, parsed from the register's official BODS 0.2
data into a simple owners list. Armenia is the only country in the region that
publishes beneficial owners for free; this tool makes that data usable in seconds.

### What you can do with it

- **KYB / UBO checks**: see who ultimately owns an Armenian counterparty, with the
  register's own declaration as the source.
- **Sanctions and due-diligence screening**: owner names (Armenian and Latin
  transliteration), nationalities, PEP flags and interest types, ready for your
  watchlist screening.
- **Supplier and customer verification**: confirm the company exists and is not in
  liquidation before signing.
- **AI agents**: available as an MCP tool for counterparty research.

### Input

| Field | Type | Description |
|---|---|---|
| `query` | string | Full or partial company name (Armenian, English or Latin). |
| `uid` | string | 8-digit unique identifier; takes precedence over `query`. |
| `maxResults` | integer | Max companies to return and charge for (default 5). |
| `includeBeneficialOwners` | boolean | Fetch and parse BO declarations (default true). |
| `language` | `en` / `hy` / `ru` | Register page language (default `en`). |

### Output

Every query yields at least one record with a `resultType`:

- `company`, an evidence-grade record (fields below).
- `not_found`, the register answered and had no match. A trustworthy negative.
- `unavailable`, the register could not be read (down, blocked, layout changed).
  **Never** treat this as a negative; the run is also marked failed so you notice.

Company record (abridged):

```json
{
  "resultType": "company",
  "country": "AM",
  "companyNumber": "39014171",
  "registrationNumber": "211.190.00190",
  "nameLatin": "…",
  "status": "active",
  "statusLocal": "There is no information recorded … liquidation …",
  "registeredAt": "2001-11-20",
  "taxId": "02560453",
  "address": "…, ԵՐԵՎԱՆ, RA",
  "people": [
    { "entityType": "person", "nameLatin": "…", "role": "beneficial_owner",
      "interestTypes": ["shareholding"], "nationalities": ["AM"], "pep": false,
      "since": "2021-06-23", "isCurrent": true, "personKey": "<register statement id>" }
  ],
  "beneficialOwnershipDeclarations": [{ "url": "…", "statements": 35, "date": "2021-06-23" }],
  "match": { "method": "uid_exact", "score": 1, "ambiguous": false, "candidates": 1 },
  "evidence": { "sourceUrl": "…", "retrievedAt": "…", "sha256": "…" }
}
```

The sample above is illustrative; real output and per-field fill rates will be
published here after the first production runs.

### What is and isn't included

The register's free layer does not publish founders, directors or charters (those are
a paid extract). Beneficial-ownership declarations partly compensate and are
included. **Owners' home addresses are never included.** `personKey` is the register's
own public statement identifier, so you can join records across runs.

### Pricing

Pay per event: one `lookup` per query (including `not_found`), one `company-record`
per company returned. Free-plan users can test at no cost.

### Source, legality, freshness

Read live from the public register at request time; no login, no captcha, polite
rate limits, identified user agent. Company data and beneficial-ownership
declarations are published by law for public access. The `evidence` block on every
record gives the exact page and a hash of what was parsed, for audit.

### Related tools

Georgia company lookup · Georgia person → companies search · Kazakhstan legal-entity
lookup (official open data) · Multi-country change monitor.

### Use it from an AI agent or an automation

- **Claude / Cursor / any MCP client:** add `https://mcp.apify.com/?tools=reestri/am-company-lookup` (Apify token as bearer). Tools: `lookup_armenian_company / search_armenian_companies`.
- **Claude Code:** `claude mcp add --transport http reestri https://mcp.apify.com/?tools=reestri/am-company-lookup`
- **LangChain / CrewAI:** `ApifyActorsTool("reestri/am-company-lookup")` from `langchain-apify` / `crewai-tools`.
- **n8n / Make / Zapier:** the official Apify node, Actor `reestri/am-company-lookup`, then map the dataset items.
- **REST:** `POST https://api.apify.com/v2/acts/reestri~am-company-lookup/run-sync-get-dataset-items?token=…` with the input JSON.

### Related Reestri tools

[Georgia company lookup](https://apify.com/reestri/ge-company-lookup), [Georgia person → companies](https://apify.com/reestri/ge-person-search), [Caucasus company screen](https://apify.com/reestri/company-screen). Armenia is the country in the South Caucasus (capital Yerevan; register e-register.moj.am).

# Actor input Schema

## `query` (type: `string`):

Full or partial company name (Armenian, English or Latin). Leave empty when searching by identifier.

## `uid` (type: `string`):

The company's 8-digit unique identifier in the register (e.g. 39014171). Takes precedence over the name query.

## `maxResults` (type: `integer`):

Maximum number of companies to return (and charge for).

## `includeBeneficialOwners` (type: `boolean`):

Fetch and parse the company's public BO declarations (BODS format). One extra request per declaration. Home addresses of owners are never included.

## `maxDeclarations` (type: `integer`):

How many beneficial-ownership declarations to fetch per company, newest first (some companies have 15+). Each is one extra request.

## `language` (type: `string`):

Register language to read (English pages return registered English names where available).

## Actor input object example

```json
{
  "query": "bank",
  "maxResults": 5,
  "includeBeneficialOwners": true,
  "maxDeclarations": 5,
  "language": "en"
}
```

# Actor output Schema

## `companies` (type: `string`):

One record per query result: `company` (with `people` = beneficial owners from official declarations), `not_found` or `unavailable`, each with match and evidence blocks.

# 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 = {
    "query": "bank"
};

// Run the Actor and wait for it to finish
const run = await client.actor("reestri/am-company-lookup").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 = { "query": "bank" }

# Run the Actor and wait for it to finish
run = client.actor("reestri/am-company-lookup").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 '{
  "query": "bank"
}' |
apify call reestri/am-company-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,reestri/am-company-lookup"
        }
    }
}

```

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/DhR4Sclm1dVDvKvfD/builds/uWAgR2gaM8YhevhoO/openapi.json
