認証

JRDB-APIを利用するには、2つの認証情報が必要です。

認証の仕組み

1

APIキー(アプリ共通)

クエリパラメータ ?api_key= に指定

  • ・クエリパラメータで送信
  • ・全ユーザー共通
  • ・ダッシュボードで確認
2

認証キー (x-user-key)

HTTP ヘッダー x-user-key に指定

  • ・HTTPヘッダーで送信
  • ・ユーザーごとに異なる
  • ・絶対に公開しない

1. APIキー(api_key)

概要

APIキーは、JRDB-APIサービスを利用するためのアプリケーション識別子です。 すべてのAPIリクエストに必須で、クエリパラメータとして送信します。

取得方法

  1. ダッシュボードにログイン
  2. 「APIキー(API_KEY)」セクションに表示されています
  3. 「コピー」ボタンでクリップボードにコピー

送信方法

クエリパラメータ api_key として送信します。

GET https://dev.api.bigtime.world/v1/tky?api_key=API_KEY

2. 認証キー(x-user-key)

概要

認証キーは、ユーザー固有の秘密鍵です。APIの利用権限を確認するために使用します。 プランを契約すると発行され、ダッシュボードで確認できます。

取得方法

  1. ダッシュボードにログイン
  2. 「認証キー (x-user-key)」セクションで 👁 アイコンを押して値を表示
  3. 「コピー」ボタンでクリップボードにコピー

送信方法

HTTPヘッダー x-user-key として送信します。

x-user-key: YOUR_AUTH_KEY

セキュリティ上の注意

  • 認証キーは秘密情報です。絶対に他人と共有しないでください。
  • GitHubなどの公開リポジトリにコミットしないでください。
  • 環境変数やシークレット管理サービスでの管理を推奨します。
  • クライアントサイド(ブラウザ)での使用は避けてください。

完全なリクエスト例

cURL

curl -X POST "https://dev.api.bigtime.world/v1/tky?api_key=API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-user-key: YOUR_AUTH_KEY" \
  -d '{"racedate": "20250105"}'

事前準備: .env ファイルを作成

Python / Node.js のサンプルは .env から認証情報を読み込みます。 プロジェクトルートに .env を作成し、ダッシュボードの値を貼り付けてください。

# .env (プロジェクトルートに配置 / .gitignore に追加)
JRDB_API_KEY=ダッシュボードのAPIキー(アプリ共通)
JRDB_AUTH_KEY=ダッシュボードの認証キー (x-user-key)
  • Python: pip install python-dotenv → サンプルの冒頭で from dotenv import load_dotenv; load_dotenv() を追加
  • Node.js 20+: 起動時に node --env-file=.env app.js (20 未満は npm i dotenv + require('dotenv').config())
  • .env は必ず .gitignore に追加してください

Python

import os
import requests
from dotenv import load_dotenv

load_dotenv()  # .env から JRDB_API_KEY / JRDB_AUTH_KEY を読み込み

API_KEY = os.environ["JRDB_API_KEY"]
AUTH_KEY = os.environ["JRDB_AUTH_KEY"]

url = "https://dev.api.bigtime.world/v1/tky"
params = {"api_key": API_KEY}
headers = {
    "Content-Type": "application/json",
    "x-user-key": AUTH_KEY
}
payload = {"racedate": "20250105"}

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

JavaScript (Node.js)

起動例: node --env-file=.env app.js(Node.js 20+ の場合)

// process.env.JRDB_API_KEY / JRDB_AUTH_KEY は .env から読み込み
const API_KEY = process.env.JRDB_API_KEY;
const AUTH_KEY = process.env.JRDB_AUTH_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();
console.log(data);

認証エラー

ステータス原因対処法
401APIキーまたは認証キーが不正、または未設定ダッシュボードで正しいキーを確認し、再設定してください
403プラン未契約、または有効期限切れプランを契約するか、更新してください
429レート制限超過リクエスト間隔を空けてリトライしてください

エラーレスポンス例

{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing authentication credentials"
  }
}

ベストプラクティス

1. 環境変数を使用する

認証情報はコードに直接書かず、環境変数で管理してください。

export JRDB_API_KEY="API_KEY"
export JRDB_AUTH_KEY="YOUR_AUTH_KEY"

2. .gitignore に追加

環境変数ファイル(.env)は必ず .gitignore に追加してください。

3. サーバーサイドで使用

認証キーはサーバーサイド(バックエンド)でのみ使用してください。 クライアントサイド(ブラウザ)から直接APIを呼び出すと、認証キーが漏洩するリスクがあります。

4. エラーハンドリング

401/403エラー時は、認証情報の再確認とリトライロジックを実装してください。

次のステップ