Google SheetsとExcel向けピナクルのオッズAPI
回答: Google Apps Script(UrlFetchApp)やExcel(Power Query、Office Scripts、小さなPythonスクリプト)から、x-api-keyヘッダー付きでPinnFeed REST APIのGET /v1/oddsを呼び出します。15分ごとに更新する表なら、無料プラン(0ユーロ、30秒遅延、2競技、1日1,000リクエスト)で足ります。Apps Scriptの手順:Google Sheetsガイド。
Google Sheets(基本の呼び出し)#
キーはセルではなく、スクリプトプロパティにPINNFEED_KEYとして保存します:
// Example fragment — full script in the Sheets guide
function refreshOdds() {
const key = PropertiesService.getScriptProperties().getProperty('PINNFEED_KEY');
const url = 'https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=50';
const res = UrlFetchApp.fetch(url, { headers: { 'x-api-key': key }, muteHttpExceptions: true });
if (res.getResponseCode() !== 200) {
console.warn(res.getContentText());
return; // leave previous rows alone
}
const events = JSON.parse(res.getContentText()).events || [];
// write Starts / League / Home / Away / 1 / X / 2 / fair columns into sheet "Odds"
}
トリガー:15分ごとの時間主導型で1日約96回。無料プランの1日の上限内です。
Excel#
APIに合う方法:
- Power Query:
Web.Contents("https://pinnfeed.io/v1/odds?sport=soccer&main=true", [Headers=[#"x-api-key"=Key]])で取得し、events、markets、outcomesを展開します。 - Python in Excel、または
requestsで定期的に.xlsxを書き出すローカルスクリプト。 - 共有ブックのURLにキーを入れないこと。
公式のExcelアドインはありません。インターフェースはREST APIのJSONです(RESTドキュメント)。
プラン#
遅延データの表:無料登録。リアルタイムのプッシュにはBuilder(月額99ユーロ)が必要です。3日間のトライアルがあります。カード登録が必要で、解約しない場合は3日目の後に課金されます。
18歳以上の方を対象とした教育目的のコンテンツです。予想や利益の約束ではありません。日本では刑法により賭博は原則として禁止されています。
よくある質問#
SheetsでWebSocketをストリーミングできますか?#
実用的ではありません。Apps Scriptは常時接続のソケットを保持できません。SheetsではタイマーでRESTを呼び、ライブツールにはWebSocketクライアントを使ってください。
クエリパラメータではなくx-api-keyを使う理由は?#
ドキュメントで推奨されている認証方法です。ヘッダーならキーがアクセスログやセルの数式に残りません。