---
name: j-quants-ingestion
description: "How to get J-Quants API data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load J-Quants daily prices into pandas and Parquet for private use

Source entry: https://signal-lab-jet.vercel.app/datasets/j-quants
Provider: https://jpx-jquants.com/en
Checked against the provider's documentation: 2026-10-29

## Access
- A free account, selected plan and API key are required. Put the key in JQUANTS_API_KEY.
- The service is limited to private use by individuals.

## Request
```bash
curl -H 'x-api-key: '$JQUANTS_API_KEY 'https://api.jquants.com/v2/equities/bars/daily?code=86970&from=2026-01-01&to=2026-07-31'
```

## Format
JSON with a data array of daily equity bars and pagination_key when another page is available.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""J-Quants daily TSE prices -> pandas -> Parquet. Private individual use."""
import os
import requests
import pandas as pd

headers = {"x-api-key": os.environ["JQUANTS_API_KEY"]}
params = {"code": "86970", "from": "2026-01-01", "to": "2026-07-31"}
rows = []
while True:
    r = requests.get("https://api.jquants.com/v2/equities/bars/daily",
                     headers=headers, params=params, timeout=30)
    r.raise_for_status()
    body = r.json()
    rows += body["data"]
    if "pagination_key" not in body:
        break
    params["pagination_key"] = body["pagination_key"]
df = pd.DataFrame(rows)
df["Date"] = pd.to_datetime(df["Date"])
df.to_parquet("jquants_86970_daily.parquet", index=False)
print(len(df), "rows", df["Date"].min().date(), "to", df["Date"].max().date())
```
Needs a personal API key; not run.

## Limits
- Free: five calls per minute.
- Free history covers two years and is delayed by 12 weeks.

## Quirks
- Free access is cancelled after one year; re-subscription is allowed.
- Delete downloaded data after cancelling the service.
- The Japanese terms are the official version; the English version is for reference.

## Terms and attribution
- Use is limited to private use by individuals.
- Commercial or academic purposes are outside own use.
- Making data or processed data available to a third party is not allowed.
- Data must be deleted after cancellation.
- Terms page: https://jpx-jquants.com/en/termsofservice

## Sources
- https://jpx-jquants.com/en/help/usage: "limited to private use by individuals"
- https://jpx-jquants.com/en/termsofservice: "commercial or academic purposes shall not be included in "own use.""
- https://jpx-jquants.com/en/termsofservice: "The Registered User shall immediately dispose or delete all the Data and its duplicates"

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
