---
title: "Axiora integration"
description: "Integrate with the Axiora retriever for Japanese financial filings using LangChain Python."
---

> [Axiora](https://axiora.dev) provides structured financial data for 4,000+ Japanese listed companies from EDINET filings.

`AxioraRetriever` searches English translations of Japanese filings (有価証券報告書) and returns LangChain `Document` objects. Use it for RAG over risk factors, MD&A, business overviews, and other filing sections.

For detailed documentation of all Axiora features head to the [Axiora docs](https://axiora.dev/docs).

### Integration details

| Class | Package | Downloads | Version |
| :--- | :--- | :---: | :---: |
| [AxioraRetriever](https://axiora.dev/docs) | [langchain-axiora](https://pypi.org/project/langchain-axiora/) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/langchain-axiora?style=flat-square&label=%20) | ![PyPI - Version](https://img.shields.io/pypi/v/langchain-axiora?style=flat-square&label=%20) |

## Setup

Sign up at [axiora.dev](https://axiora.dev) for a free API key (no credit card).

If you want to get automated tracing from individual queries, you can also set your [LangSmith](/langsmith/home) API key by uncommenting below:

```python
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
os.environ["LANGSMITH_TRACING"] = "true"
```

### Installation

<CodeGroup>
```bash pip
pip install -U langchain-axiora
```
```bash uv
uv add langchain-axiora
```
</CodeGroup>

## Instantiation

`AxioraRetriever` parameters:

- **`section`**: Optional filter — `mda`, `risk_factors`, `business_overview`, `governance`, `financial_notes`, `accounting_policy`. If omitted, searches all sections.
- **`k`**: Max results to return (default 10, max 50).
- **`api_key`**: Axiora API key. Reads from `AXIORA_API_KEY` environment variable if not provided.

```python
import getpass
import os

if "AXIORA_API_KEY" not in os.environ:
    os.environ["AXIORA_API_KEY"] = getpass.getpass("Enter your Axiora API key: ")

from langchain_axiora import AxioraRetriever

retriever = AxioraRetriever(
    section="risk_factors",
    k=5,
)
```

## Usage

Search for filing sections by natural language query:

```python
docs = retriever.invoke("semiconductor supply chain risk")
```

```python
docs[0].metadata
```

```text
{
  'company_name': 'Tokyo Electron Limited',
  'doc_id': 'S100TXYZ',
  'section': 'risk_factors',
  'score': 0.92
}
```

```python
docs[0].page_content[:200]
```

```text
'The semiconductor industry is subject to cyclical fluctuations in demand.
A prolonged downturn in the semiconductor market could adversely affect
our business, financial condition, and results of operations...'
```

### In a RAG chain

Plug the retriever into any LangChain chain:

```python
from langchain_anthropic import ChatAnthropic
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough

llm = ChatAnthropic(model="claude-sonnet-4-5-20250929")
prompt = ChatPromptTemplate.from_template(
    "Based on these Japanese filing excerpts:\n{context}\n\nAnswer: {question}"
)
chain = {"context": retriever, "question": RunnablePassthrough()} | prompt | llm

result = chain.invoke("What semiconductor risks do Japanese manufacturers report?")
```

---

## API reference

For detailed documentation of all Axiora features head to the [Axiora docs](https://axiora.dev/docs).
