On the wire · 04:47:49 UTC Live 550 · Prematch 14,364 · Markets 57,048 Vol. I · No. 5 · Friday 13 November 2026 wss://pinnfeed.io/v1/stream
PinnFeed
回答 · フロントエンド · セキュリティ

ブラウザJavaScriptでピナクルオッズ

更新日 · PinnFeed · 約1分で読めます

回答: /v1/* のREST応答には Access-Control-Allow-Origin: * が付くため、ページからの fetch() はCORSエラーになりません。問題はキーで、フロントのコードは誰でも見られます。公開サイトでは PINNFEED_KEY を持つ小さなサーバー(またはサーバーレス)からPinnFeedを呼び、必要な分だけ返します。ブラウザはWebSocketにヘッダーを付けられないため、ブラウザソケットはURLの ?key= が必要で、同様にキーが露出します。

私的なテストなら可#

<script>
fetch('https://pinnfeed.io/v1/odds?sport=tennis&market=moneyline&main=true&limit=5', {
  headers: { 'x-api-key': 'ps_live_your_key' }   // visible to anyone who opens this page
}).then(r => r.json()).then(d => console.log(d.events));
</script>

公開サイト:プロキシパターン#

// server.js (Node 18+), run with PINNFEED_KEY in the environment
import http from 'node:http';
http.createServer(async (req, res) => {
  if (!req.url.startsWith('/odds')) { res.writeHead(404).end(); return; }
  const r = await fetch('https://pinnfeed.io/v1/odds?sport=tennis&market=moneyline&main=true&limit=20', {
    headers: { 'x-api-key': process.env.PINNFEED_KEY },
  });
  res.writeHead(r.status, { 'content-type': 'application/json', 'cache-control': 'max-age=5' });
  res.end(await r.text());
}).listen(3000);

短いキャッシュで多数の訪問者がレート制限を使い切るのを防ぎます(Free 1、Hobby 2、Builder 10、Pro 30 req/s)。既成プロキシ:FastAPI、Cloudflare Worker、Supabase Edge。

ページ内のライブ更新#

WebSocketはサーバー(Builder)で保持し、必要な変更だけ自前のWSやSSEでブラウザへ転送します。Node再接続。

CTA#

Builder(99€/月)。3日間トライアル、カード必須。無料REST:signup。 キー漏洩時はローテーション。

よくある質問#

キーをドメイン制限できますか?#

ドメイン制限はありません。だからプロキシが安全なパターンです。

WebSocketはCORSヘッダーを送りますか?#

CORSはWebSocketに適用されません。問題はブラウザからURLにキーを載せる点です。

成人向けの教育コンテンツですか?#

はい(18+)。

18歳以上の方を対象とした教育目的のコンテンツです。予想や利益の約束ではありません。日本では刑法により賭博は原則として禁止されています。

WebSocketプラン:Builder、月額99ユーロ

ピナクルのオッズを1本のWebSocketでリアルタイムに。全13競技、全マーケット、マージンなしのフェアオッズとクロージングオッズ。3日間無料、ワンクリックで解約できます。

Form K-1 · Free API key

Get your free API key.

One field. No password, no card: enter your email, click the link we send, and your key is on screen.

By continuing you agree to the Terms and Privacy Policy.

One free key per email. Link valid for 20 minutes.