---
title: "GLEIF LEI ↔ 法人番号 bridge"
method: GET
path: "/v1/lei"
tags: ["Identifiers"]
---

# GLEIF LEI ↔ 法人番号 bridge

`GET /v1/lei`

## Request

- Base URL: `https://jp-verify.obolpay.xyz`
- URL: `https://jp-verify.obolpay.xyz/v1/lei`
- Auth: one of:
  - none
  - API key in header `X-API-Key`

GLEIF LEI (Legal Entity Identifier) <-> 法人番号 bridge (jpverify.lei; the method
and the measured coverage are summarised in ``/llms.txt`` and below). Provide exactly one
of ``corporate_number=``/``t_number=`` (-> the corporation's LEI, if GLEIF's golden copy
maps one) or ``lei=`` (-> the 法人番号 it maps to, if any). Honest scope: only a measured
~20% of JP-jurisdiction LEIs have a number-based or exact-name join to a 法人番号 today
(the join is by the 法人番号 GLEIF records as the registration authority id, else by an
exact normalised legal name — nothing fuzzy) — a null ``lei`` is
the ordinary, correctly-reported case, not a lookup failure. When more than one LEI maps
to the same 法人番号, the chosen one prefers an ISSUED registration then the most
recently updated (see ``lei_candidates`` for the total). GLEIF publishes this data under
CC0 1.0 (no attribution required); a response also carrying houjin-bangou data still owes
the NTA attribution for that half. Where the bridge is not configured this returns 503.

## Query parameters

- `corporate_number` string: a 13-digit 法人番号 (Corporate Number, check-digit validated) — look up its LEI
- `t_number` string: alternative input: T + 13-digit 法人番号
- `lei` string: alternative input: a 20-character LEI (ISO 17442) — look up the 法人番号 it maps to

## Headers

- `X-API-Key` string

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Malformed input — refused before metering; nothing was charged.
- `401`: Unknown, inactive, or expired API key.
- `422`: Validation Error
- `429`: Quota exceeded for the caller's tier.
- `503`: The register, or an optional feature, is unavailable or not configured on this deployment. A register 503 (since 1.4.1) also carries the mirror's `data_as_of` with the source fields — `source_latest_diff_date` (the newest 差分 the NTA 公表サイト listed when the sync last read it), `source_checked_at`, `source_gap_business_days` and `freshness.rule` (`stale` here) — so a caller can tell a mirror that is behind its source (`data_date` older than `source_latest_diff_date`) from a source that has not published (equal, but `source_checked_at` older than `freshness.source_check_max_hours`); `data_as_of` is null when the mirror is absent. Nothing was charged.

---

[API](https://skmtc.dev/obolpay/apis/jp-verify.md) · [All operations](https://skmtc.dev/obolpay/apis/jp-verify/llms.txt) · [OpenAPI document](https://skmtc.dev/obolpay/apis/jp-verify/revisions/bf8851690df0?raw)
