# Japan Stock Quotes: TSE Prices, PER, PBR & Dividend Yield (`mrdoe/japan-stock-quotes`) Actor

Tokyo Stock Exchange stock quotes from public market data: price, change, open, day range, previous close, PER, PBR, PSR, dividend yield, volume, market cap and shares outstanding. Any TSE code.

- **URL**: https://apify.com/mrdoe/japan-stock-quotes.md
- **Developed by:** [MrDoe](https://apify.com/mrdoe) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.80 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Stock Quotes: TSE Prices, PER, PBR & Dividend Yield - Japan stock quotes API with TSE price, PER, PBR and dividend yield](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-stock-quotes--hero.png)

### What does Japan Stock Quotes: TSE Prices, PER, PBR & Dividend Yield do?

Japan Stock Quotes returns one row per Tokyo Stock Exchange code from public market data. Each row has the last price in yen, the change and percent change from the previous close, the previous close, open, day high and day low, price to earnings ratio, price to book ratio, price to sales ratio, dividend yield, trading unit size, volume, market capitalisation and shares outstanding, and the company name. Give it any TSE code such as 7203 (Toyota), 6758 (Sony Group) or 9432 (NTT).

### Why use Japan Stock Quotes: TSE Prices, PER, PBR & Dividend Yield?

- The fundamentals Japanese investors screen on: PER, PBR, PSR and dividend yield in every row.
- Reads a public, unauthenticated stock quote page, so no account or API key is needed.
- Unknown codes return a clean 404 and are skipped without stopping the run.
- Numbers are converted out of Japanese units (万, 百万, 倍, 株) into plain figures.
- Bulk codes per run, billed only for rows returned.

### What makes this different

Japanese stock fundamentals are usually read one page at a time in a browser, in Japanese units that need manual conversion. This Actor returns them as tidy, converted rows for a whole watchlist in one run.

### Who can use the Japan Stock Quotes and how?

- **Quant researchers:** collect Japanese fundamentals and price features for models.
- **Retail investors:** screen TSE stocks by PER, PBR and dividend yield.
- **Newsletter writers:** publish a daily TSE table.
- **Fintech apps:** show Japanese quotes without a data contract.
- **Advisers:** track client holdings in yen.
- **AI agent builders:** let an assistant answer what a TSE stock trades at.
- **Analysts:** screen the market for value or income.
- **Students:** free Japanese market data for coursework.

### How it works

![Japan Stock Quotes: TSE Prices, PER, PBR & Dividend Yield workflow: your input, collection, output](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-stock-quotes--how-it-works.png)

1. **Your input** — list the tickers (or ISINs).
2. **The Actor collects it** — the Actor reads public stock quote pages public market data for each one.
3. **Your output** — you get one row per stock with price, change, range position and fundamentals.

### What data can you extract?

The dataset has 25 fields per row:

| Field                | Type   | Description                              |
| -------------------- | ------ | ---------------------------------------- |
| `record_type`        | string | quote or bar.                            |
| `ticker`             | string | Ticker symbol.                           |
| `name`               | string | Company or fund name.                    |
| `exchange`           | string | Exchange.                                |
| `currency`           | string | Trading currency.                        |
| `price`              | number | Last price.                              |
| `change`             | number | Change from the previous close.          |
| `change_pct`         | number | Change from the previous close, percent. |
| `previous_close`     | number | Previous close.                          |
| `open`               | number | Open.                                    |
| `day_high`           | number | Day high.                                |
| `day_low`            | number | Day low.                                 |
| `dividend_yield_pct` | number | Dividend yield, percent.                 |
| `unit_shares`        | number | Unit shares.                             |
| `pe_ratio`           | number | Price to earnings ratio.                 |
| `psr`                | number | Psr.                                     |
| `pbr`                | number | Pbr.                                     |
| `volume`             | number | Volume in shares.                        |
| `market_cap`         | number | Market capitalisation.                   |
| `shares_outstanding` | number | Shares outstanding.                      |
| `as_of`              | string | When the data was read.                  |
| `fetch_path`         | string | How the data was obtained.               |
| `source`             | string | Data source.                             |
| `scraped_at`         | string | Timestamp.                               |
| `actor_version`      | string | Actor version.                           |

### How to use Japan Stock Quotes: TSE Prices, PER, PBR & Dividend Yield

![Japan Stock Quotes: TSE Prices, PER, PBR & Dividend Yield input form](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-stock-quotes--input.png)

1. Open the Actor and go to the **Input** tab.
2. Enter **Tickers** as TSE codes (for example `7203`, `6758`, `9432`) and run.
3. Optionally set filters and a **Max results** limit.
4. Click **Start**. A default run finishes in under a minute.
5. Open the **Output** tab, then download the dataset or connect it to your tools.

### Input Parameters

| Parameter            | Type    | Required | Default                  | Description                                                                            |
| -------------------- | ------- | -------- | ------------------------ | -------------------------------------------------------------------------------------- |
| `tickers`            | array   | No       | `["7203","6758","9432"]` | Tokyo Stock Exchange codes, one per line, for example 7203, 6758, 9432.                |
| `maxItems`           | integer | No       | `0`                      | Cap on returned rows. Set 0 for no limit.                                              |
| `proxyConfiguration` | object  | No       | `{"useApifyProxy":true}` | Proxy. Apify Proxy is needed: the source blocks direct datacenter requests without it. |

### Output Data

![Japan Stock Quotes: TSE Prices, PER, PBR & Dividend Yield dataset table](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-stock-quotes--output.png)

`price`, `change`, `change_pct`, `previous_close`, `open`, `day_low`, `day_high` are in yen. `pe_ratio`, `pbr` and `psr` are ratios. `dividend_yield_pct` is percent. `volume` and `shares_outstanding` are share counts, and `market_cap` is in yen, all converted from the page's Japanese units (万, 百万, 千, 倍).

![Japan Stock Quotes: TSE Prices, PER, PBR & Dividend Yield field map of one record](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-stock-quotes--fields.png)

A real dataset item:

```json
{
    "record_type": "quote",
    "ticker": "7203",
    "name": "トヨタ自動車",
    "exchange": "TSE",
    "currency": "JPY",
    "price": 2989.5,
    "change": 20.5,
    "change_pct": 0.69,
    "previous_close": 2969,
    "open": 2990,
    "day_high": 3003,
    "day_low": 2979,
    "dividend_yield_pct": 3.34,
    "unit_shares": 100,
    "pe_ratio": 10.12,
    "psr": 0.86,
    "pbr": 1.09,
    "volume": 21084000,
    "market_cap": 43631715000000,
    "shares_outstanding": 14594987000,
    "as_of": "2026-09-27T06:17:23.203Z",
    "fetch_path": "public_stock_quote_page",
    "source": "public_stock_quote_page",
    "scraped_at": "2026-09-27T06:17:23.203Z",
    "actor_version": "1.0.0"
}
```

### How to read and use the results

1. **Read price and change\_pct**.
2. **Screen on pe\_ratio, pbr and dividend\_yield\_pct**.
3. **Check market\_cap and shares\_outstanding** for size.
4. **Compare day\_low/day\_high** to price for the day's range.
5. **Schedule runs** to build history.
6. **Watch the log** for unknown codes.

### Usage Examples

#### Toyota, Sony, NTT

```json
{
    "tickers": ["7203", "6758", "9432"]
}
```

#### SoftBank, MUFG, Hitachi

```json
{
    "tickers": ["9984", "8306", "6501"]
}
```

#### Shin-Etsu, Recruit, KDDI

```json
{
    "tickers": ["4063", "6098", "9433"]
}
```

### Tips for Best Results

- Schedule the Actor after the close and keep each run to build your own price history.
- Keep tickers in one run: many tickers per run cost less than many runs.
- Sort by dividend\_yield\_pct and pbr for a value and income screen.
- pe\_ratio is empty when the company has negative earnings.
- Default is 5 results for a fast test. Set the max to 0 to return everything available.

### Reliability by mode

| Mode                          | Status | Needs login or key? | Notes                                 |
| ----------------------------- | ------ | ------------------- | ------------------------------------- |
| Quotes for listed TSE codes   | ✅     | No                  | Public stock quote page.              |
| PER, PBR, PSR, dividend yield | 🟡     | No                  | Present for most operating companies. |
| Daily price history           | ❌     | -                   | Not available from this source.       |
| Real-time tick data           | ❌     | -                   | End-of-day and delayed snapshots.     |

✅ works as described, 🟡 works with caveats, ❌ not supported.

### Known Limitations

- This Actor returns quotes only; daily OHLC history is not available from the public page it reads.
- Prices reflect the last available session; outside trading hours they are the prior close.
- A few smaller or newly listed codes may have incomplete fundamentals.
- Only Tokyo Stock Exchange codes are covered.
- This is information, not financial advice.

### Integrations

Run it from the Apify API, on a schedule, or from a webhook. Send results straight to Google Sheets, Make, Zapier, Slack or your own database with Apify's built-in integrations.

### Export Formats

Download the dataset as JSON, CSV, Excel, XML, HTML table or RSS from the **Output** tab or the API.

### Frequently Asked Questions

#### Where does the data come from?

A public Japanese stock quote page (minkabu.jp), which is free and needs no login.

#### Does it need an API key or account?

No.

#### How fresh are the prices?

Prices reflect the latest available trading session.

#### What if a ticker is wrong?

It is skipped and named in the log; the other tickers still return.

#### Can I run it on a schedule?

Yes. Schedule it and store each run to build your own price history.

#### Am I charged for tickers that return nothing?

No, only for rows returned.

#### Do I need an account or login?

No. The Actor reads public public stock quote pages market data and needs no account or API key.

#### Am I charged for failed runs or empty results?

You are only charged for results that are actually written to the dataset.

#### Can I run it on a schedule?

Yes. Create a Task with your input and add a schedule in Apify Console. With monitor mode on, each scheduled run returns only what changed since the previous one.

### Changelog

- **2026-09-27:** First release.

### Enterprise and custom work

Need higher volumes, a custom output schema, dedicated scheduling or a no-breaking-changes commitment for a production pipeline? Open an issue on the Actor page and describe your use case. Bulk terms and custom builds are available.

### Support

Questions or a missing field? Open an issue from the **Issues** tab on this Actor's page and it will be looked at.

### Legal / Responsible Use

This Actor reads publicly available public stock quote pages market data. You are responsible for how you use it and for complying with the source's terms. It is not financial advice and not affiliated with public stock quote pages.

# Actor input Schema

## `tickers` (type: `array`):

Tokyo Stock Exchange codes, one per line, for example 7203, 6758, 9432.

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

Cap on returned rows. Set 0 for no limit.

## `proxyConfiguration` (type: `object`):

Proxy. Apify Proxy is needed: the source blocks direct datacenter requests without it.

## Actor input object example

```json
{
  "tickers": [
    "7203",
    "6758",
    "9432"
  ],
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "tickers": [
        "7203",
        "6758",
        "9432"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrdoe/japan-stock-quotes").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 = {
    "tickers": [
        "7203",
        "6758",
        "9432",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("mrdoe/japan-stock-quotes").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 '{
  "tickers": [
    "7203",
    "6758",
    "9432"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call mrdoe/japan-stock-quotes --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mrdoe/japan-stock-quotes"
        }
    }
}
```

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/wPvEhOlMehIbel3ob/builds/RI6wuISjhIMibQ1Jw/openapi.json
