# FPL Analyzer — API for AI agents and bots # https://www.fpl-analyzer.com/api.txt FPL Analyzer publishes Fantasy Premier League (FPL) expected-points projections and Top 1,000 manager data. Agents can buy it per call with x402 — no account, no API key, no subscription. Pay $0.01 in USDC, get the data. ## Quick facts - Protocol: x402 v2 (HTTP 402 Payment Required) - Price: $0.01 per call (10000 units of USDC, 6 decimals) - Network: Base mainnet (CAIP-2: eip155:8453) - Asset: USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 - Pay to: 0x6dd08f455B2a77ebC83a5818329B360ffDf28fc1 - Scheme: exact (EIP-3009 transferWithAuthorization — the buyer pays no gas) - Facilitator: Coinbase CDP - Catalogue: GET https://www.fpl-analyzer.com/api/x402 (free) ## Paid resources All are GET requests. 1. https://www.fpl-analyzer.com/api/x402/captains[?gw=N] Top 10 captain picks for the upcoming Gameweek, ranked by FPL Analyzer xPts. Available players only, with captain xPts and differential flags. 2. https://www.fpl-analyzer.com/api/x402/projections[?gw=N] Expected points (xPts) for every Premier League player for the upcoming Gameweek, with fixtures (H/A), price, availability and ownership. 3. https://www.fpl-analyzer.com/api/x402/elite-meta What the Top 1,000 FPL managers own, start and captain this Gameweek: template players, captaincy, chips, formations, average points, transfers and squad value. gw is optional (integer 1-38). It defaults to the upcoming Gameweek. ## How a call works 1. Request a resource with no payment. The server answers 402 with a PAYMENT-REQUIRED header (base64 JSON: price, network, asset, payTo). 2. Sign a USDC payment authorisation for that amount. 3. Repeat the request with the signature in the PAYMENT-SIGNATURE header. 4. The server verifies the payment, builds the data and only then settles the payment on-chain. The response is 200 with the data, and a PAYMENT-RESPONSE header carrying the settled transaction. Any x402 client does steps 1-4 for you. ## Charging rules - You are charged only when the data is delivered. - If the data is not available yet (for example, forecasts for that Gameweek are not archived, or the Top 1K sample is still being built) the server returns 503 and nothing is settled. - A payment that cannot settle (reused authorisation, insufficient funds) receives no data. ## Example (Node.js) import { wrapFetchWithPayment } from '@x402/fetch'; import { x402Client } from '@x402/core/client'; import { ExactEvmScheme } from '@x402/evm/exact/client'; import { privateKeyToAccount } from 'viem/accounts'; const client = new x402Client(); client.register('eip155:*', new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_PRIVATE_KEY))); const payingFetch = wrapFetchWithPayment(fetch, client); const res = await payingFetch('https://www.fpl-analyzer.com/api/x402/captains'); const { gameweek, picks } = await res.json(); console.log(`GW${gameweek}`, picks.map(p => `${p.rank}. ${p.name} ${p.xpts}`)); Use a dedicated wallet holding a little USDC on Base. Keep the private key in an environment variable, never in code. ## About the data - Each Gameweek's xPts forecast is made once the official FPL site marks the previous Gameweek finished, and archived before the deadline, so it cannot be changed after the fact. - Accuracy is scored publicly against actual points at https://www.fpl-analyzer.com/benchmarks (text: /benchmarks.txt). - FPL Analyzer is independent and is not affiliated with the Premier League or Fantasy Premier League. ## Free options - Website: https://www.fpl-analyzer.com - MCP server: https://www.fpl-analyzer.com/mcp - LLM overview: https://www.fpl-analyzer.com/llms.txt - Benchmarks: https://www.fpl-analyzer.com/benchmarks.txt