Integration guide, checked 5 November 2026
Use with Lovable
Short answerStore the key as a secret named FANDUEL_API_KEY in your Lovable project's backend, call https://fanduelapi.com/api/v1/props from an edge function, and have the page read from that function. Never put the key in browser code.
FanDuel API is an independent data service operated by FF API Inc. It is not affiliated with, endorsed by or sponsored by FanDuel.
Set it up
- Get a key
Create a free key at https://fanduelapi.com/dashboard/keys, or let the agent start the signup for you through https://fanduelapi.com/connect. Store it as FANDUEL_API_KEY; it is shown once.
- Ask Lovable for the function
Paste this prompt into Lovable.
Prompt Add a backend edge function named fanduel-props. It reads the secret FANDUEL_API_KEY and calls GET https://fanduelapi.com/api/v1/props with the query string it receives and the header "Authorization: Bearer <secret>". Return the JSON as is. Show the results on the page in a table of player, stat, line, over and under. Never send the key to the browser. - The function it should write
If Lovable writes something different, compare it with this.
supabase/functions/fanduel-props/index.ts Deno.serve(async (req) => { const query = new URL(req.url).search; const res = await fetch("https://fanduelapi.com/api/v1/props" + query, { headers: { Authorization: `Bearer ${Deno.env.get("FANDUEL_API_KEY")}` }, }); return new Response(await res.text(), { status: res.status, headers: { "Content-Type": "application/json" } }); }); - Check the key with one REST call
If a client cannot reach MCP, the same data is plain REST.
Terminal export FANDUEL_API_KEY=<your key> curl "https://fanduelapi.com/api/v1/props?sport=nba&stat=points&limit=3" \ -H "Authorization: Bearer $FANDUEL_API_KEY"
A first prompt
Bounded and specific, so the first answer shows whether the data fits.
Build a page that lists FanDuel NBA points props from the fanduel-props function, with a column for how far each line moved since it opened.If something is off
The tools list is empty or the server will not connect
The server speaks streamable HTTP as stateless JSON over POST at https://fanduelapi.com/api/mcp. A client that only speaks SSE or stdio needs a bridge such as mcp-remote.
A tool says it needs an API key
Data tools need the Authorization header. search_docs, fetch_doc, get_sample_props and send_feedback work without one.
A 429 or quota error
Relay error.user_message to the person as is. Wait until error.reset_at for a rate limit; a monthly quota needs the month to reset or a plan change, which only the person can approve.
Other clients
The same server works anywhere MCP does. Everything an agent needs is in the agent guide and the llms.txt file.