---
title: "Axiora toolkit and integration"
description: "Integrate with the Axiora toolkit and tools for Japanese financial data using LangChain Python."
---

This guide provides a quick overview for getting started with the Axiora [tools](/oss/langchain/tools). Axiora gives your agent access to 4,000+ Japanese listed companies — financials from EDINET filings, health scores, screening, and English translations of annual reports.

## Overview

### Details

| Class | Package | Serializable | [JS support](https://js.langchain.com/docs/integrations/chat/anthropic) | Downloads | Version |
| :--- | :--- | :---: | :---: | :---: | :---: |
| [AxioraToolkit](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) |

### Features

- 18 tools covering financials, screening, health scores, rankings, peer comparison, and filing translations
- Retriever for RAG over English translations of Japanese filings
- `selected_tools` parameter to limit which tools the agent sees
- `handle_tool_error=True` on all tools — agents self-correct instead of crashing
- Individual tool imports — use any tool without the toolkit wrapper
- Async support via `ainvoke`

---

## Setup

To access Axiora tools, you'll need an Axiora API key (free, no credit card) and the `langchain-axiora` package.

### Credentials

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

```python Set API key icon="key"
import getpass
import os

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

It's also helpful (but not needed) to set up LangSmith for best-in-class observability/<Tooltip tip="Log each step of a model's execution to debug and improve it">tracing</Tooltip> of your tool calls. To enable automated tracing, set your [LangSmith](/langsmith/home) API key:

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

### Installation

The Axiora tools live in the `langchain-axiora` package:

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

---

## Instantiation

### Toolkit (all 18 tools)

```python Initialize toolkit icon="robot"
from langchain_axiora import AxioraToolkit

toolkit = AxioraToolkit()
tools = toolkit.get_tools()
```

### Individual tool

```python Initialize single tool icon="wrench"
from langchain_axiora import GetFinancialsTool

tool = GetFinancialsTool()
```

Both read `AXIORA_API_KEY` from the environment. You can also pass `api_key=` directly.

---

## Available tools (18)

| Tool name | Description |
|-----------|-------------|
| `axiora_search_companies` | Find companies by name (JP/EN) or securities code |
| `axiora_get_company` | Company details — sector, listing, fiscal year end |
| `axiora_get_financials` | Revenue, income, assets, equity, ratios per year |
| `axiora_get_growth` | YoY growth rates and 3/5-year CAGRs |
| `axiora_get_ranking` | Rank companies by any metric |
| `axiora_get_sector_overview` | Sector stats and company counts |
| `axiora_compare_companies` | Side-by-side financials for 2–5 companies |
| `axiora_screen_companies` | Filter by sector, revenue, ROE, PE ratio |
| `axiora_get_health_score` | Financial health score (0–100) with breakdown |
| `axiora_get_health_ranking` | Rank by health score |
| `axiora_get_peers` | Find similar companies by sector and revenue |
| `axiora_get_timeseries` | Chart-ready time series for any metric |
| `axiora_list_filings` | Browse filings by company or type |
| `axiora_get_translations` | English translations of filing sections |
| `axiora_search_translations` | Full-text search across translated filings |
| `axiora_get_filing_calendar` | Filing volume by day |
| `axiora_search_companies_batch` | Bulk lookup (up to 10 at once) |
| `axiora_get_coverage` | Data coverage statistics |

---

## Invocation

### Directly

```python Call tool icon="rocket"
from langchain_axiora import GetFinancialsTool

tool = GetFinancialsTool()
tool.invoke({"code": "7203", "years": 1})
```

```text
{
  "company": "Toyota Motor Corporation",
  "data": [
    {
      "fiscal_year": 2025,
      "revenue": 48036704000000,
      "net_income": 4789755000000,
      "operating_margin": 9.98,
      "roe": 12.99,
      "num_employees": 383853
    }
  ]
}
```

### As a ToolCall

We can also invoke the tool with a model-generated `ToolCall`, in which case a @[`ToolMessage`] will be returned:

```python ToolCall icon="briefcase"
# This is usually generated by a model, but we'll create a tool call directly for demo purposes.
model_generated_tool_call = {
    "args": {"code": "7203", "years": 1},
    "id": "1",
    "name": "axiora_get_financials",
    "type": "tool_call",
}
tool.invoke(model_generated_tool_call)
```

### Within an agent

Axiora tools work with any model that supports tool calling. Here's an example with Claude:

```python Agent with toolkit icon="robot"
# pip install -qU langchain-axiora "langchain[anthropic]"
from langchain_axiora import AxioraToolkit
from langchain.agents import create_agent

toolkit = AxioraToolkit()
agent = create_agent(
    model="claude-sonnet-4-5-20250929",
    tools=toolkit.get_tools(),
)

result = agent.invoke(
    {"messages": [{"role": "user", "content": "Compare Toyota and Honda's financials over the last 3 years"}]}
)
```

The agent chains tool calls automatically — searches for companies, fetches financials, and synthesizes a comparison.

---

## Use a subset of tools

18 tools can be noisy for a simple agent. Pass `selected_tools` to keep it focused:

```python Subset of tools icon="filter"
toolkit = AxioraToolkit(
    selected_tools=[
        "axiora_search_companies",
        "axiora_get_financials",
        "axiora_compare_companies",
    ],
)
```

Pass an invalid name and you get a `ValueError` with the full list of valid tool names.

---

## Error handling

All tools set `handle_tool_error=True`. When the API returns an error, the agent receives a helpful message instead of crashing:

```text
Axiora API error 404. Company not found. Use axiora_search_companies to find the correct code.
```

The agent reads this, calls `axiora_search_companies`, gets the right code, and retries. Self-correcting, not crashing.

---

## API reference

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