---
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"

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.
