---
title: "Batch Resolve Identifiers"
method: POST
path: "/v1/batch/identifiers"
tags: ["identifiers"]
---

# Batch Resolve Identifiers

`POST /v1/batch/identifiers`

## Request

- Base URL: `https://api.axiora.dev` (the document declares no server; this is the origin it was published from)
- URL: `https://api.axiora.dev/v1/batch/identifiers`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/axioradev/apis/axiora-api/docs/v1/batch/identifiers/post.ts> (a function with typed inputs; its response is checked against the schema)

Resolve up to 100 identifiers of any kind in one request.

Every input is accounted for: identifiers that match no entity are named in
`meta.unresolved` rather than dropped, so a caller can always reconcile the
response against what they sent.

## Request body

- BatchIdentifiersRequest
  - `ids` string[], required: Identifiers to resolve (1-100). Any mix of EDINET codes, securities codes and investor identifiers.

## Response `200`

Successful Response

- ListResponseIdentifiersOut
  - `data` IdentifiersOut[], required: Array of result objects.
    - `edinet_code` string, nullable: EDINET submitter code (e.g. 'E02144'). Null only when the identifier names an entity that has never filed under one of its own, which is possible for a group of co-filing investors.
    - `securities_code` string, nullable: TSE securities code (e.g. '7203').
    - `isin` string, nullable: ISIN (12-character international securities ID).
    - `lei` string, nullable: Legal Entity Identifier (20 characters). An entity-level identifier, so it is served from the resolved entity record and never from the listed-issuer cross-reference. Null when no entity record backs this identifier, or when that record carries no LEI; `provenance.entity_registry` says which.
    - `jpx_code` string, nullable: JPX issuer code.
    - `match_method` string, nullable: How the market identifiers were matched (e.g. 'exact', 'fuzzy'). Null when this company is not in the listed-issuer cross-reference; `provenance.market_identifiers` says why.
    - `confidence` number, nullable: Match confidence (0.0 to 1.0). Null when there is no match to score.
    - `matched_at` string, date-time, nullable: When the market identifiers were last matched. Null when never matched.
    - `entity_id` string, nullable: Stable key of the resolved entity behind this identifier. Null when no resolved entity record covers it.
    - `name` string, nullable: The entity's name, as filed (Japanese).
    - `name_en` string, nullable: English name, where we hold one.
    - `roles` string[]: Every role this entity holds: 'issuer' (company endpoints answer for it) and/or 'investor' (it files shareholding reports). An entity is legitimately both, so this is always a list.
    - `links` object: Role to the endpoint path that answers for this entity in that role.
    - `provenance` IdentifierProvenance, required: Why the identifier fields hold the values they hold. A null identifier is only usable if the consumer can tell "we checked and there is none" from "we never looked". These three fields carry that distinction structurally so it does not have to be inferred from prose.
      - `market_identifiers` string, required: Where `securities_code`, `isin` and `jpx_code` come from, and what their nulls mean. 'market_cross_reference': served from the listed-issuer cross-reference. 'unlisted': this filer is not listed, so it has none to carry. 'unmapped': listed, but not yet cross-referenced, so they are unknown to us. 'not_an_issuer': the identifier names an entity with no issuer facet, so they do not apply.
      - `entity_registry` string, required: Where the ENTITY-level fields (`lei`, `entity_id`, `name`) come from. 'entity_registry': a resolved entity record backs this identifier. 'none': the identifier is known only from filing data, so `lei` and `entity_id` are unknown rather than absent.
      - `explanation` string, required: The same statement in prose. Always present.
  - `meta` AxioraApiSchemasMeta, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-16** `996d12eb9cb3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/axioradev/apis/axiora-api/changes/v1/batch/identifiers/post.md)

---

[API](https://skmtc.dev/axioradev/apis/axiora-api.md) - [All operations](https://skmtc.dev/axioradev/apis/axiora-api/llms.txt) - [OpenAPI document](https://skmtc.dev/axioradev/apis/axiora-api/revisions/47e27a7f92de?raw)
