# Japan Company Registry Search (Official NTA Data) (`panda_studio/japan-company-registry-search`) Actor

Search Japan's official registry of 5M+ corporations by name (Japanese, kana, English or romaji), corporate number, address or postcode. Official National Tax Agency open data, no API key, no proxy. English-friendly output.

- **URL**: https://apify.com/panda\_studio/japan-company-registry-search.md
- **Developed by:** [panda studio](https://apify.com/panda_studio) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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

## Japan Company Registry Search (Official NTA Data)

Search **Japan's official registry of corporations** (millions of records; Tokyo alone has 1.37 million) by company name, 13-digit corporate number (法人番号), address or postcode. The data is the **National Tax Agency (NTA) corporate number open data**, the official list of every corporation that has been assigned a corporate number.

- Search in **Japanese, kana, English or romaji**. For example, `ソニー` or `Sony Interactive` both find 株式会社ソニー・インタラクティブエンタテインメント.
- **Verify a Japanese company** (KYB / vendor onboarding): check that the legal name, the registered address and the status (active or closed) match.
- **Build lead lists** by area: every KK or GK registered in a ward or postcode area (e.g. `渋谷区`, postcode `150`).
- English-friendly output: company type in English, prefecture in English, the official English name when one is registered, and an automatic romaji reading.
- Official open data, no login, no proxy, no API key.

### How it works

The NTA publishes the complete registry as one file per prefecture, updated monthly. For each prefecture you select, the Actor downloads the official file and streams through every corporation to apply your filters. Tokyo (1.37 million records, including 1.17 million active corporations) took about 13 seconds in our tests. Most prefectures take 1 to 3 seconds.

### Input example

```json
{
  "prefectures": ["Tokyo"],
  "nameKeywords": ["ソニー", "Sony Interactive"],
  "companyTypes": ["kabushiki"],
  "includeClosed": false,
  "maxItems": 50
}
```

Look up specific corporate numbers:

```json
{ "prefectures": ["Tokyo"], "corporateNumbers": ["3010401087161", "1010001126313"] }
```

All filters combine with AND. Name keywords match if **any** keyword matches.

### Output example (real record)

```json
{
  "corporateNumber": "3010401087161",
  "name": "株式会社ソニー・インタラクティブエンタテインメント",
  "nameKana": "ソニーインタラクティブエンタテインメント",
  "nameEnglish": "Sony Interactive Entertainment Inc.",
  "nameRomaji": "Soniiintarakutibuentateinmento",
  "companyType": "Kabushiki Kaisha (stock company, KK)",
  "companyTypeJa": "株式会社",
  "prefecture": "東京都",
  "prefectureEn": "Tokyo",
  "city": "港区",
  "fullAddress": "東京都港区港南１丁目７番１号",
  "postCode": "108-0075",
  "corporateNumberAssignedDate": "2015-10-05",
  "changeDate": "2016-04-05",
  "lastChangeType": "Name change",
  "closeDate": null,
  "ntaUrl": "https://www.houjin-bangou.nta.go.jp/henkorireki-johoto.html?selHouzinNo=3010401087161"
}
```

Other fields: `kindCode`, `cityCode`, `cityEn`, `streetAddress`, `addressOverseas`, `closeCause`, `successorCorporateNumber`, `updateDate`, `isLatest`, `source`. `RUN_SUMMARY` in the key-value store lists the rows scanned for each prefecture and any corporate numbers that were not found.

### Use cases

- **KYB / vendor verification** for Japanese counterparties: confirm the legal name, the address and whether the company is active.
- **CRM enrichment**: add the official corporate number and the normalized address to your Japanese accounts.
- **Territory lead lists**: all companies in a city, ward or postcode area, filtered by company type.
- **Entity resolution**: match English or romaji company names to the official Japanese legal entity.

### Pricing

Pay per event: a small fee for each prefecture file scanned, plus a fee for each company returned. See the **Pricing** tab. Choose only the prefectures you need.

### Data source, license and limitations

- Source: [National Tax Agency Corporate Number Publication Site](https://www.houjin-bangou.nta.go.jp/), full data files (Unicode CSV), updated monthly. The terms are compatible with the Public Data License 1.0 (similar to CC BY 4.0), so commercial reuse is allowed **with attribution**. Every record includes a `source` field. This Actor is not affiliated with or guaranteed by the NTA.
- The monthly files can be a few weeks old. For companies registered in the last days, use our *Japan New Company Registrations Feed*.
- The registry has no phone numbers, emails, officers, capital or revenue.
- A corporate number lookup searches only the prefectures you select. If you don't know the prefecture, add the likely ones (Tokyo, Osaka, Kanagawa, Aichi...).
- Records the NTA marks as excluded from search are always skipped. Sole proprietors are not included.
- `nameRomaji` is generated automatically from the official kana and is approximate.

### FAQ

**Why do I have to choose prefectures?** Each prefecture is a separate official file. Scanning only what you need keeps runs fast and cheap.

**Can I search by English name?** Partly. Few companies register an official English name: 3,610 of the 1.17 million active Tokyo corporations (0.3%, measured in September 2026), mostly large companies. About 63% have an official kana reading, and keywords with 4 or more letters are also matched against the romaji generated from it (e.g. `sumitomo`). For the most reliable results, search in Japanese.

**Is this legal?** Yes. This is official government open data published for reuse. The Actor downloads the published files and includes the attribution the terms require.

### Changelog

- 0.1 (2026-09): First release.

# Actor input Schema

## `prefectures` (type: `array`):

Required. One official NTA file is scanned per prefecture (Tokyo ≈ 1M+ corporations, about 20-60 s). English names (Tokyo, Osaka), Japanese (東京都) or JIS codes (13).

## `nameKeywords` (type: `array`):

Substring match against the registered Japanese name, the official kana reading and the official English name (keywords with 4+ letters are also matched against auto-generated romaji). Any keyword matches.

## `corporateNumbers` (type: `array`):

Look up specific corporations by their 13-digit corporate number (法人番号) within the selected prefectures.

## `addressContains` (type: `string`):

e.g. 渋谷区 or 大手町. Matched against the Japanese address.

## `postCodePrefix` (type: `string`):

e.g. 150 or 1000004.

## `companyTypes` (type: `array`):

Empty = all types.

## `includeClosed` (type: `boolean`):

Include corporations whose registration was closed (liquidated, merged...).

## `maxItems` (type: `integer`):

Stop after this many records.

## Actor input object example

```json
{
  "prefectures": [
    "Tokyo"
  ],
  "nameKeywords": [
    "ソニー"
  ],
  "includeClosed": false,
  "maxItems": 50
}
```

# Actor output Schema

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

All matching records produced by this run, stored in the default dataset.

# 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 = {
    "prefectures": [
        "Tokyo"
    ],
    "nameKeywords": [
        "ソニー"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("panda_studio/japan-company-registry-search").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 = {
    "prefectures": ["Tokyo"],
    "nameKeywords": ["ソニー"],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("panda_studio/japan-company-registry-search").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 '{
  "prefectures": [
    "Tokyo"
  ],
  "nameKeywords": [
    "ソニー"
  ],
  "maxItems": 50
}' |
apify call panda_studio/japan-company-registry-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,panda_studio/japan-company-registry-search"
        }
    }
}
```

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/yBbauJsXgaWayol1K/builds/IIGbhvZi8rZe03Ni0/openapi.json
