# Japan JGB Yield Curve Daily Panel with USD/JPY (`mrdoe/japan-jgb-yields-panel`) Actor

Daily Japanese government bond yield curve from the Ministry of Finance, 1 to 40 year, with curve spreads, 1-day changes, 1-year percentile, curve regime label and the USD/JPY rate. History back to 1974.

- **URL**: https://apify.com/mrdoe/japan-jgb-yields-panel.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 $0.90 / 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 JGB Yield Curve Daily Panel with USD/JPY - Japan JGB yield curve daily panel from 1 to 40 years with curve spreads and USD JPY](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-jgb-yields-panel--hero.png)

### What does Japan JGB Yield Curve Daily Panel with USD/JPY do?

Japan JGB Yields Panel returns one row per Japanese trading day with the full government bond yield curve published by the Ministry of Finance: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30 and 40 year yields, with history back to 1974. Each row adds the 10s2s, 30s10s and 30s5s spreads in basis points, a curve regime label, 1-day changes at the 2, 10 and 30 year points, the 1-year percentile of the 10 year yield and the USD/JPY rate computed from the ECB euro reference rates. The yields are the Ministry of Finance's published interest rates on JGBs.

### Why use Japan JGB Yield Curve Daily Panel with USD/JPY?

- The whole curve in one row, 15 maturities, back to 1974.
- Derived features included: spreads, changes, percentile and a curve regime.
- Official source: the Japan Ministry of Finance, joined to a yen cross from the ECB.
- Blank cells stay empty where a maturity did not yet exist, instead of being filled with guesses.
- Bulk history in one run or a daily delta. No API key or login.

### What makes this different

The Ministry of Finance publishes a large CSV with placeholders for missing maturities and no derived features. This Actor cleans it, merges the latest month, adds spreads, changes and percentiles and joins the yen, ready for a model.

### Who can use the Japan JGB Yields Panel and how?

- **Quant researchers:** add JGB curve and yen features to models.
- **Global macro traders:** watch super-long JGB yields and the yen together.
- **Portfolio managers:** monitor Japanese curve shape.
- **Economists and students:** study a long JGB history.
- **Newsletter writers:** publish a daily JGB curve table.
- **Fintech apps:** show rate context beside Japan exposure.
- **AI agent builders:** let an assistant answer where JGB yields are today.
- **Backtesting platforms:** filter signals by Japanese curve regime.

### How it works

![Japan JGB Yield Curve Daily Panel with USD/JPY workflow: your input, collection, output](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-jgb-yields-panel--how-it-works.png)

1. **Your input** — set a date range or a lookback in days.
2. **The Actor collects it** — the Actor reads Japan Ministry of Finance and ECB and joins the series by date.
3. **Your output** — you get one row per trading day with derived features; schedule it daily with delta mode to append each new day.

### What data can you extract?

The dataset has 32 fields per row:

| Field                   | Type   | Description                                           |
| ----------------------- | ------ | ----------------------------------------------------- |
| `date`                  | string | Trading date, YYYY-MM-DD.                             |
| `jgb_1y`                | number | Jgb 1y.                                               |
| `jgb_2y`                | number | Jgb 2y.                                               |
| `jgb_3y`                | number | Jgb 3y.                                               |
| `jgb_4y`                | number | Jgb 4y.                                               |
| `jgb_5y`                | number | Jgb 5y.                                               |
| `jgb_6y`                | number | Jgb 6y.                                               |
| `jgb_7y`                | number | Jgb 7y.                                               |
| `jgb_8y`                | number | Jgb 8y.                                               |
| `jgb_9y`                | number | Jgb 9y.                                               |
| `jgb_10y`               | number | Jgb 10y.                                              |
| `jgb_15y`               | number | Jgb 15y.                                              |
| `jgb_20y`               | number | Jgb 20y.                                              |
| `jgb_25y`               | number | Jgb 25y.                                              |
| `jgb_30y`               | number | Jgb 30y.                                              |
| `jgb_40y`               | number | Jgb 40y.                                              |
| `jpy_per_eur`           | number | Yen per euro (ECB reference rate).                    |
| `usd_per_eur`           | number | US dollars per euro (ECB reference rate).             |
| `usd_jpy`               | number | Yen per US dollar, derived from ECB reference rates.  |
| `spread_10y_2y_bps`     | number | Yield spread 10y 2y, basis points.                    |
| `spread_30y_10y_bps`    | number | Yield spread 30y 10y, basis points.                   |
| `spread_30y_5y_bps`     | number | Yield spread 30y 5y, basis points.                    |
| `curve_regime`          | string | inverted, flat or normal.                             |
| `change_10y_bps`        | number | 1-day change in 10y, basis points.                    |
| `change_2y_bps`         | number | 1-day change in 2y, basis points.                     |
| `change_30y_bps`        | number | 1-day change in 30y, basis points.                    |
| `usd_jpy_change_1d_pct` | number | 1-day change in usd jpy, percent.                     |
| `jgb_10y_percentile_1y` | number | Percentile of jgb 10y over the last 252 trading days. |
| `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 JGB Yield Curve Daily Panel with USD/JPY

![Japan JGB Yield Curve Daily Panel with USD/JPY input form](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-jgb-yields-panel--input.png)

1. Open the Actor and go to the **Input** tab.
2. Leave the dates empty for the last 90 days, or set **Start date** and **End date** for a long history. Turn on delta mode and schedule the Actor daily to append each new day.
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                                                                           |
| -------------------- | ------- | -------- | ------------------------- | ------------------------------------------------------------------------------------- |
| `startDate`          | string  | No       | —                         | First trading date, YYYY-MM-DD. Leave empty to use the lookback below.                |
| `endDate`            | string  | No       | —                         | Last trading date, YYYY-MM-DD. Leave empty for today.                                 |
| `lookbackDays`       | integer | No       | `90`                      | Used when no start date is set.                                                       |
| `newestFirst`        | boolean | No       | `true`                    | Return the newest day first. Turn off for chronological order.                        |
| `maxItems`           | integer | No       | `0`                       | Cap on returned rows. Set 0 for no limit.                                             |
| `deltaMode`          | boolean | No       | `false`                   | After the first run with a delta key, return and bill only days not delivered before. |
| `deltaStateKey`      | string  | No       | `"default"`               | Name of the tracked stream.                                                           |
| `proxyConfiguration` | object  | No       | `{"useApifyProxy":false}` | Optional proxy. The sources work without one.                                         |

### Output Data

![Japan JGB Yield Curve Daily Panel with USD/JPY dataset table](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-jgb-yields-panel--output.png)

`jgb_*` are JGB yields in percent at each maturity (empty before that maturity existed). `spread_*_bps` are yield differences in basis points and `curve_regime` is inverted (10s2s below 0), flat (below 30 bps) or normal. `usd_jpy` is yen per US dollar derived from ECB reference rates, and `jpy_per_eur` and `usd_per_eur` are the inputs. `jgb_10y_percentile_1y` ranks the 10 year yield over the last 252 trading days.

![Japan JGB Yield Curve Daily Panel with USD/JPY field map of one record](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/japan-jgb-yields-panel--fields.png)

A real dataset item:

```json
{
    "date": "2026-09-24",
    "jgb_1y": 1.627,
    "jgb_2y": 1.912,
    "jgb_3y": 2.065,
    "jgb_4y": 2.259,
    "jgb_5y": 2.4,
    "jgb_6y": 2.523,
    "jgb_7y": 2.641,
    "jgb_8y": 2.8,
    "jgb_9y": 2.936,
    "jgb_10y": 3.073,
    "jgb_15y": 3.598,
    "jgb_20y": 3.887,
    "jgb_25y": 4.141,
    "jgb_30y": 4.115,
    "jgb_40y": 4.103,
    "jpy_per_eur": 180.57,
    "usd_per_eur": 1.1367,
    "usd_jpy": 158.855,
    "spread_10y_2y_bps": 116.1,
    "spread_30y_10y_bps": 104.2,
    "spread_30y_5y_bps": 171.5,
    "curve_regime": "normal",
    "change_10y_bps": 9.2,
    "change_2y_bps": 6.3,
    "change_30y_bps": 7.1,
    "usd_jpy_change_1d_pct": 0.612,
    "jgb_10y_percentile_1y": 100,
    "fetch_path": "published_csv",
    "source": "japan_ministry_of_finance_and_ecb",
    "scraped_at": "2026-09-27T05:07:13.182Z",
    "actor_version": "1.0.0"
}
```

### How to read and use the results

1. **Read curve_regime and spread_10y_2y_bps** for the curve slope.
2. **Watch spread_30y_10y_bps** for super-long stress.
3. **Use jgb_10y_percentile_1y** to compare with the past year.
4. **Read usd_jpy** and its change for the currency.
5. **Join on date** to your own price data.
6. **Schedule with delta mode** to append each day.

### Usage Examples

#### Last 90 days

```json
{}
```

#### History for a model

```json
{
    "startDate": "1990-01-01",
    "newestFirst": false
}
```

#### Only new days

```json
{
    "deltaMode": true,
    "deltaStateKey": "daily"
}
```

### Tips for Best Results

- Join on the date column; markets are closed on weekends and holidays, so those dates have no row.
- Run the Actor once for the whole history, then schedule it daily with delta mode.
- Use the percentile fields rather than raw levels to compare conditions across years.
- Curve inversion is a slow signal; combine it with faster features such as daily changes.
- Use the 30y minus 10y spread to watch super-long JGB stress.
- 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                                 |
| ---------------------------- | ------ | ------------------- | ------------------------------------- |
| JGB yields 1 to 30 year      | ✅     | No                  | Published by the Ministry of Finance. |
| 40 year yield                | 🟡     | No                  | Empty before that maturity existed.   |
| USD/JPY                      | 🟡     | No                  | Cross rate from ECB reference rates.  |
| Intraday or real-time values | ❌     | -                   | End-of-day only.                      |

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

### Only new records (delta mode)

Turn on **Only new trading days (delta mode)** and set a **Delta key**. The first run returns the whole range; later runs return, and bill, only trading days not delivered before.

### Known Limitations

- The yen rate is a cross rate computed from ECB reference rates, not a Japanese source.
- The Bank of Japan policy rate is not included in this Actor.
- Yields are the Ministry of Finance interest rates on JGBs, not tradable prices.
- The newest day can be missing until the Ministry publishes it.
- 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?

The Japan Ministry of Finance interest rate data on Japanese government bonds, and ECB euro reference rates for the yen cross.

#### How far back does it go?

The JGB yield history starts in 1974; the 40 year point starts later.

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

No.

#### Can I get intraday data?

No, the data is end-of-day.

#### Why is a value empty?

The series did not exist on that date, or the source has not published that day yet.

#### Am I charged for empty days?

No, only for rows returned.

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

No. The Actor reads public Japan Ministry of Finance and ECB 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 published Japan Ministry of Finance and ECB data. You are responsible for how you use the data. It is not financial advice and not affiliated with the Japan Ministry of Finance.

# Actor input Schema

## `startDate` (type: `string`):

First trading date, YYYY-MM-DD. Leave empty to use the lookback below.

## `endDate` (type: `string`):

Last trading date, YYYY-MM-DD. Leave empty for today.

## `lookbackDays` (type: `integer`):

Used when no start date is set.

## `newestFirst` (type: `boolean`):

Return the newest day first. Turn off for chronological order.

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

Cap on returned rows. Set 0 for no limit.

## `deltaMode` (type: `boolean`):

After the first run with a delta key, return and bill only days not delivered before.

## `deltaStateKey` (type: `string`):

Name of the tracked stream.

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

Optional proxy. The sources work without one.

## Actor input object example

```json
{
  "lookbackDays": 90,
  "newestFirst": true,
  "maxItems": 0,
  "deltaMode": false,
  "deltaStateKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrdoe/japan-jgb-yields-panel").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 = { "proxyConfiguration": { "useApifyProxy": False } }

# Run the Actor and wait for it to finish
run = client.actor("mrdoe/japan-jgb-yields-panel").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 '{
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call mrdoe/japan-jgb-yields-panel --silent --output-dataset

```

## MCP server setup

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

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/nTZ06Cf3iBqy8zsSx/builds/qJqgKSZm2WHX7RNnc/openapi.json
