Cotes Pinnacle en JavaScript navigateur
Réponse : les réponses REST /v1/* incluent Access-Control-Allow-Origin: *, donc fetch() depuis une page ne déclenche pas d'erreur CORS. Le problème est la clé : tout le front est visible. Pour un site public, appelez PinnFeed depuis un petit serveur (ou serverless) qui détient PINNFEED_KEY et ne renvoie que le nécessaire. Les navigateurs ne peuvent pas poser d'en-têtes sur un WebSocket ; un socket navigateur aurait besoin de ?key= dans l'URL et exposerait la clé de la même façon.
OK pour un test privé#
<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>
Site public : motif proxy#
// 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);
Un cache court évite que de nombreux visiteurs consomment votre rate limit (Free 1 req/s, Hobby 2, Builder 10, Pro 30). Proxies prêts : FastAPI, Cloudflare Worker, Supabase Edge.
Mises à jour live dans la page#
Gardez le WebSocket sur le serveur (Builder) et renvoyez seulement les changements au navigateur via votre WS ou SSE. Reconnect Node.
CTA#
Builder (99 €/mois). Essai 3 jours ; carte requise. REST gratuit : inscription. Clé fuite ? Faites-la tourner.
Questions fréquentes#
Puis-je restreindre une clé à mon domaine ?#
Pas de restriction par domaine — d'où le proxy comme motif sûr.
Le WebSocket envoie-t-il des en-têtes CORS ?#
CORS ne s'applique pas aux WebSockets ; le problème est la clé dans l'URL depuis le navigateur.
Contenu éducatif pour adultes ?#
Oui (18+).
Contenu éducatif pour adultes (18+) : ni pronostics ni promesse de gain. En France, seuls les opérateurs agréés par l'ANJ peuvent proposer des paris en ligne.