On the wire · 04:33:31 UTC Live 548 · Prematch 14,368 · Markets 56,922 Vol. I · No. 5 · Friday 13 November 2026 wss://pinnfeed.io/v1/stream
PinnFeed
Vibe coding · AI agents

Build with PinnFeed using AI

Updated · PinnFeed · 4 min read

Answer: get a Free key at signup, export PINNFEED_KEY, paste a prompt from this page into Cursor / Claude / ChatGPT / Lovable / Replit / Bolt, and point the agent at llms-api.txt or AGENTS.md. Auth is x-api-key (or Bearer / ?key=). WebSocket needs Builder (€99/mo). Educational, 18+.

1. Key in about 60 seconds#

  1. Open signup — email + password.
  2. Confirm email if asked, then open the dashboard.
  3. Create key — copy it once. It starts with ps_live_.
  4. Store it only in the environment (never in chat history you share, never in git):
export PINNFEED_KEY="ps_live_..."
echo 'PINNFEED_KEY=ps_live_...' >> .env
echo '.env' >> .gitignore

Free = REST with ~30 s delay, 2 sports, 1 req/s, 1,000/day. Hobby = real-time REST, no WebSocket. Builder = WebSocket plan. Details: pricing, quickstart.

2. One-line proof the key works#

curl -sS -H "x-api-key: $PINNFEED_KEY" \
  "https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=3"

OpenAPI: /openapi.json. Postman/Insomnia: collection JSON (set variable apiKey).

3. Give your agent the real API (do not invent)#

Paste into the repo or the agent context:

.cursorrules / AGENTS.md template (copy)#

# PinnFeed
- Read https://pinnfeed.io/llms-api.txt and https://pinnfeed.io/openapi.json before writing API code.
- Auth: header x-api-key from env PINNFEED_KEY (ps_live_...). Also Bearer or ?key=. Never hardcode keys; use .env + .gitignore.
- REST base https://pinnfeed.io — /v1/account /v1/sports /v1/events /v1/odds /v1/drops /v1/closing[/{eventId}]
- WebSocket wss://pinnfeed.io/v1/stream needs Builder; Free/Hobby get 403 plan_lacks_ws. Reply to ping with pong.
- MCP POST https://pinnfeed.io/mcp — tools listed in /docs/mcp. Each tools/call counts as one REST request.
- Do not invent endpoints, latency SLAs, or multi-book coverage. Pinnacle only. Educational, 18+.

4. MCP setups (real transports only)#

Hosted MCP: POST https://pinnfeed.io/mcp (Streamable HTTP). Auth: Authorization: Bearer, x-api-key, or ?key= when the client cannot send headers. Source: docs/mcp.

Cursor (~/.cursor/mcp.json or project .cursor/mcp.json)#

{
  "mcpServers": {
    "pinnfeed": {
      "url": "https://pinnfeed.io/mcp",
      "headers": { "Authorization": "Bearer YOUR_KEY" }
    }
  }
}

Claude Code#

claude mcp add --transport http pinnfeed https://pinnfeed.io/mcp \
  --header "Authorization: Bearer YOUR_KEY"

Claude Desktop / Claude web / ChatGPT connectors#

These clients often cannot set custom headers — put the key in the URL (use a dedicated dashboard key you can revoke):

https://pinnfeed.io/mcp?key=YOUR_KEY

Tools: get_account, list_sports, search_events, get_live_odds, get_prematch_odds, get_event, get_drops, get_closing_odds.

5. Master prompts by tool#

Replace YOUR_GOAL with the app you want. Always tell the agent to read /llms-api.txt and never to invent endpoints.

Cursor / Claude Code#

You are building against PinnFeed (Pinnacle odds API).
1) Read https://pinnfeed.io/llms-api.txt and https://pinnfeed.io/openapi.json.
2) Use env PINNFEED_KEY only (x-api-key). Add .env to .gitignore.
3) Goal: YOUR_GOAL
4) Prefer REST on Free/Hobby; WebSocket only if I confirm Builder.
5) Educational, 18+. No betting tips, no guaranteed profit.

ChatGPT (with or without MCP)#

Use PinnFeed for Pinnacle odds. If MCP is connected, call get_account then get_prematch_odds for soccer main lines.
If not, show me the exact curl with x-api-key from $PINNFEED_KEY against https://pinnfeed.io/v1/odds.
Do not invent bookmakers or latency. Goal: YOUR_GOAL. 18+ educational.

Lovable / Bolt / v0-style UI builders#

Build a small web UI that fetches https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=10
with header x-api-key from an env/secret named PINNFEED_KEY. Show event names and decimal prices.
No hardcoded keys. Link to https://pinnfeed.io/docs. 18+ educational odds display only.

Replit#

Create a Replit Secret PINNFEED_KEY. Write a Python script that curls/requests
GET https://pinnfeed.io/v1/odds?sport=soccer&main=true&limit=5 with x-api-key.
Print event id and moneyline decimals. Then optionally add a loop on /v1/drops.
Read https://pinnfeed.io/llms-api.txt. 18+.

6. Starter app prompts (copy one)#

  1. Telegram steam alert — poll /v1/drops?sport=soccer&minutes=15&min_pct=3 every minute on Hobby+; send Telegram message when a drop appears. Respect rate limits. See also Telegram answer.
  2. Discord picks bot — slash command that calls /v1/odds for a team query q=. No tips language — show prices + fairProb only. Discord answer.
  3. Google Sheets live-ish board — Apps Script UrlFetchApp with x-api-key (IMPORTDATA cannot set headers). IMPORTDATA answer.
  4. CLV tracker — store your taken price; after start call /v1/closing/{eventId} on Builder; compute CLV. CLV.
  5. +EV screen (educational) — compare your model probability to fairProb from /v1/odds. No guaranteed profit. +EV.
  6. Streamlit dashboard — sidebar sport select → /v1/odds table of decimal + fair.
  7. Excel refresh — Power Query Web.Contents with x-api-key. Power Query.
  8. Cursor WebSocket book — Builder only; subscribe soccer; maintain map by market.id from snapshot/delta; pong heartbeats.

Trial CTA#

Builder (€99/mo) for WebSocket + closing history. 3-day trial; card required, charged after day 3 unless cancelled. Free key: signup. Related: docs, answers, compare.

Questions people ask#

Do I need Builder to vibe-code?#

No for REST prototypes on Free/Hobby. Yes for /v1/stream and /v1/closing.

Can the agent invent new endpoints?#

It must not — pin it to OpenAPI and llms-api.txt.

Is this educational content for adults?#

Yes (18+). No tips, no guaranteed profit.

The WebSocket plan: Builder, €99/mo.

Real-time Pinnacle odds pushed over one WebSocket, all 13 sports, every market, no-vig fair odds and closing lines. 3 days free, cancel in one click.

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.