Japan API integration example (TSE:7203)

Connect to Japan market data with ZaFeed. Includes TSE:7203 examples, historical candles, live WebSocket subscriptions, and market key authentication.

简体中文

Published March 21, 2026
Market: Japan (JP)
Exchange: TSE

For Japan, keep request formats, field mappings, and error handling consistent across your services.

Start with authentication, valid parameter combinations, retries, and storage fields.

Overview

Use the runnable examples for a first integration check across backend, frontend, and data teams.

Use cases

  • Live TSE subscriptions and alerts
  • Historical candles for backtesting and validating strategies with TSE:7203
  • A single data gateway for multiple markets
  • Japan dashboards and market rankings

Integration approach

Use WebSocket for live data and REST for historical data:

  • WebSocket: Stream order books and latest prices, and trigger alerts.
  • Historical REST API: Load and backfill data for charts, backtests, and audits.
  • Authentication: Use the same market key for REST and WebSocket. Send it in the X-API-Key header for REST and the key connection parameter for WebSocket. Each market has its own key.

The two interfaces work together:

Live updates stay responsive, while REST provides a way to recover missing data.

Prelaunch checklist

  • Run replay tests and check alerts before launch.
  • Before testing, verify that the market key is valid and market matches it.
  • Check that the market and symbol use the documented formats.
  • Add heartbeats, reconnect logic, and deduplication to the stream.
  • Fetch historical data in batches to avoid overload.

Integration tip

Test with TSE:7203 before subscribing to several symbols. This makes market and symbol errors easier to diagnose.

Quick start

REST (historical candles)

GET https://api.zafeed.com/v1/klines?market=JP&symbol=TSE:7203&interval=1m&limit=200
X-API-Key: YOUR_JP_KEY

WebSocket (live quotes)

wss://api.zafeed.com/v1/stream?key=YOUR_JP_KEY
{"op":"subscribe","market":"JP","symbols":["TSE:7203"]}

Parameters and fields

Main request parameters:

  • market: Market code, for example JP.
  • symbol: Full symbol code, for example TSE:7203.
  • interval: Candle interval, such as 1m, 5m, 15m, 1h, or 1d.
  • limit: Number of items. Defaults to 200, up to 1,000.

Use consistent fields when storing data:

  • symbol, venue, and time (Unix milliseconds)
  • open/high/low/close、volume
  • Live updates can include price/change/changePct and other snapshot fields.

Code examples

cURL (initial checks)

curl "https://api.zafeed.com/v1/klines?market=JP&symbol=TSE:7203&interval=1m&limit=200" \
  -H "X-API-Key: YOUR_JP_KEY"

JavaScript (Node.js)

const url = "https://api.zafeed.com/v1/klines?market=JP&symbol=TSE:7203&interval=1m&limit=200";
const resp = await fetch(url, {
  headers: {
    "X-API-Key": "YOUR_JP_KEY"
  }
});
const data = await resp.json();
console.log(data);

Python (data jobs)

import requests

url = "https://api.zafeed.com/v1/klines?market=JP&symbol=TSE:7203&interval=1m&limit=200"
headers = {"X-API-Key": "YOUR_JP_KEY"}
res = requests.get(url, headers=headers, timeout=20)
print(res.status_code, res.json())

Go (backend services)

req, _ := http.NewRequest("GET", "https://api.zafeed.com/v1/klines?market=JP&symbol=TSE:7203&interval=1m&limit=200", nil)
req.Header.Set("X-API-Key", "YOUR_JP_KEY")
resp, _ := http.DefaultClient.Do(req)

WebSocket (live subscriptions)

const ws = new WebSocket("wss://api.zafeed.com/v1/stream?key=YOUR_JP_KEY");
ws.onopen = () => ws.send(JSON.stringify({
  op: "subscribe",
  market: "JP",
  symbols: ["TSE:7203"]
}));

Example parameters

  • market:JP
  • symbol:TSE:7203
  • venue:TSE

Troubleshooting

1. HTTP 401

If the key is missing, invalid, rotated, or expired, check its status in the member center. Copy the current key without spaces.

2. Market and symbol mismatch

Check that market=JP and symbol=TSE:7203 belong to the same market.

3. WebSocket disconnects soon after connecting

Check heartbeats, proxy timeouts, and duplicate connections. Each market key allows one concurrent WebSocket connection by default.

4. Delayed updates

Show incoming changes in the UI and write or validate data asynchronously on the server.

Performance and reliability

  • Reuse connections and retry with backoff to limit the impact of temporary failures.
  • Request historical data in batches and respect rate limits.
  • Deduplicate live messages by symbol and time.
  • Monitor error rates, latency, and reconnection counts.

Frequently asked questions

1) When should I use WebSocket?

Use WebSocket to update quotes and order books in real time or to trigger alerts.

2) When should I use historical candles?

Use historical candles for backtesting, calculating indicators, and filling data gaps.

3) Where do I send my market key?

Send the market key in the REST header X-API-Key or the WebSocket connection parameter key. The market parameter must match the key or the API returns 403. Keep the key on your server.

4) What can I build with these APIs?

Market data terminals, trading signals, backtesting platforms, risk controls, and alerting tools.

Common issues

  • Check symbol naming conventions across services.
  • Check that repeated updates are safe and duplicates are removed.
  • Classify API failures so they can be diagnosed quickly.

Reliability and monitoring

  • Track error rates, P95 latency, and reconnection counts.
  • Save sample responses for incident reviews.
  • Update service configuration when you rotate a key in the member center.

After launch

Set up error logging and alert thresholds in the first week.

References