はじめてのJRDB-API

APIの基本的な使い方を学び、最初のデータ取得を行います。

前提条件

  • ✓JRDB-APIのアカウント登録が完了していること
  • ✓Python 3.8以上、またはNode.js 16以上がインストールされていること
  • ✓HTTPリクエストの基本的な知識があること

Step 1: 認証情報の確認

まず、ダッシュボードで2つの認証情報を確認します。

APIキー(api_key)

クエリパラメータとして送信

?api_key=API_KEY

認証キー(x-user-key)

HTTPヘッダーとして送信

x-user-key: YOUR_AUTH_KEY

注意: 認証情報は機密情報です。GitHubなどに公開しないよう、環境変数で管理してください。

Step 2: 最初のリクエスト

今週の競走馬データ(tky)を取得してみましょう。

Python

import requests

# ダッシュボードで取得した値をそれぞれ貼り付け
API_KEY  = "API_KEY"     # APIキー(アプリ共通)
AUTH_KEY = "YOUR_AUTH_KEY"    # 認証キー (x-user-key)

url = f"https://dev.api.bigtime.world/v1/tky?api_key={API_KEY}"

headers = {
    "Content-Type": "application/json",
    "x-user-key": AUTH_KEY
}

# 今週末の開催日を指定
payload = {
    "racedate": "20250105"  # 2025年1月5日
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

# 結果を確認
if data["result"]["status"] == 200:
    horses = data["result"]["data"]
    print(f"取得件数: {len(horses)}件")

    # 最初の3件を表示
    for horse in horses[:3]:
        print(f"馬名: {horse.get('horse_name', 'N/A')}")
else:
    print(f"エラー: {data.get('message', 'Unknown error')}")

※ 本番運用では認証情報を環境変数 JRDB_API_KEY /JRDB_AUTH_KEY に格納し、os.getenv() で読み込むことを推奨します。

JavaScript (Node.js)

// ダッシュボードで取得した値をそれぞれ貼り付け
const API_KEY  = "API_KEY";     // APIキー(アプリ共通)
const AUTH_KEY = "YOUR_AUTH_KEY";    // 認証キー (x-user-key)

const url = `https://dev.api.bigtime.world/v1/tky?api_key=${API_KEY}`;

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-user-key': AUTH_KEY
  },
  body: JSON.stringify({
    racedate: '20250105'
  })
});

const data = await response.json();

if (data.result.status === 200) {
  const horses = data.result.data;
  console.log(`取得件数: ${horses.length}件`);

  horses.slice(0, 3).forEach(horse => {
    console.log(`馬名: ${horse.horse_name || 'N/A'}`);
  });
} else {
  console.error(`エラー: ${data.message}`);
}

※ 本番運用では認証情報を環境変数 JRDB_API_KEY /JRDB_AUTH_KEY に格納し、process.env.JRDB_API_KEY で読み込むことを推奨します。

Step 3: レスポンスの理解

レスポンスの構造を理解しましょう。

{
  "request": {
    "racedate": "20250105"
  },
  "result": {
    "status": "success",
    "data": [
      {
        "racekey": "05250101",
        "horse_number": "01",
        "horse_name": "サンプルホース",
        "jockey_name": "サンプル騎手",
        "trainer_name": "サンプル調教師",
        "horse_weight": 480,
        "idm": 55.5,
        // ... その他のフィールド
      },
      // ... 他の馬データ
    ]
  }
}

主要なフィールド

  • racekey - レースを識別する8桁のキー
  • horse_number - 馬番
  • horse_name - 馬名
  • idm - IDM指数(能力指数)

次のステップ