draftkings apiDashboard ↗

AI CLIENTS

Use the DraftKings API with Gemini

Connect Gemini CLI to observed DraftKings data over MCP with httpUrl and an environment-backed header, and see how the Gemini app differs from the developer CLI.

Editorial review: · Not a live coverage report

Gemini CLI and the Gemini app are different setups

Gemini CLI is a developer tool configured by a settings file. The Gemini app at gemini.google.com has its own custom app feature with its own eligibility rules. Most of this page is about the CLI.

SurfaceHow it connectsWhat it can reach here
Gemini CLIsettings.json or gemini mcp add, with a Bearer headersearch, fetch and all data tools
Gemini appCustom app added by MCP server URLExpect search and fetch only. Google's page does not state custom API-key headers. We have not tested this route

Configure Gemini CLI

Use httpUrl, the key Gemini CLI reads as an HTTP streaming endpoint. url means an SSE endpoint, and this server is not SSE. Put the block in ~/.gemini/settings.json, or in .gemini/settings.json for one project. Gemini CLI expands $DRAFTKINGS_API_KEY from your environment.

Environment
export DRAFTKINGS_API_KEY=dk_your_key_here  # put this in a shell profile or secret manager, not the repo
settings.json
{
  "mcpServers": {
    "draftkings": {
      "httpUrl": "https://draftkingsapi.com/api/mcp",
      "headers": {
        "Authorization": "Bearer $DRAFTKINGS_API_KEY"
      },
      "timeout": 30000
    }
  }
}

Leave trust at its default of false so Gemini CLI asks before running tools. The CLI command below writes an equivalent entry. Because your shell expands the variable first, it stores the literal key in the settings file, so prefer editing the file by hand.

CLI alternative
gemini mcp add --transport http --header "Authorization: Bearer $DRAFTKINGS_API_KEY" draftkings https://draftkingsapi.com/api/mcp
Verify
gemini mcp list
# inside a session
/mcp

Keep the credential out of the repository

A project .gemini/settings.json is often committed. The variable reference is safe there; a literal key is not. Create a dedicated named key for the CLI so you can revoke it alone. Keys on one account share one allowance.

Run the first task

Give Gemini CLI a small task that forces real rows. This costs two requests.

First task
Use the draftkings MCP tools. Call get_coverage, then get_pick6_projections with sport NHL, stat Shots on Goal and limit 5. Report the rows you actually got, with observed_at and stale for each. If rows are stale or absent, say so. Never invent rows. Standings multipliers are not odds. Do not recommend entries or bets.

Compare the reply with the rows returned. If Gemini paraphrases stale: true as current, correct it in your project's GEMINI.md. Use includeTools to limit the assistant to the tools your project needs.

Tools the server exposes

The endpoint is Streamable HTTP in its stateless JSON form, over POST. search and fetch read public documentation and need no key. Every other tool calls the same handler as its REST endpoint, so a Bearer key is required and each call counts against your plan.

ToolKey neededUse it for
search, fetchNoGuides, questions, data reports and integration pages
get_coverageYesCall this first: measured stored coverage and collector context
get_pick6_projections, get_pick6_historyYesPick6 rows and recorded changes
get_sportsbook_events, get_sportsbook_odds, get_sportsbook_historyYesMainline observations and retained history
get_dfs_sports, get_dfs_contests, get_dfs_slates, get_dfs_playersYesDFS catalog, contests, slates and salaries
get_context_games, get_context_player_stats, get_context_team_statsYesScores and box scores for observed events
get_stats_games, get_stats_player_games, get_stats_team_gamesYesIndependent statistics. sport and season are required

As of 2026-11-03, native sportsbook scopes cover New York NFL, NHL, college basketball and college football game lines and New York NHL Shots on Goal, points, assists, saves, goalscorers, power-play points and first-period shots. Read snapshots and streamed changes through the sportsbook endpoints. ESPN-attributed DraftKings moneyline, spread and total observations are also available across eight leagues. Current scope inventory is listed at /api/v1/sportsbook/scopes. Pick6 rows carry standings multipliers such as 1.5x. A standings multiplier is not decimal odds, a probability or an established entry payout.

Troubleshoot Gemini CLI

Check these first when tools fail to appear or return errors.

  • The server shows as disconnected: confirm you used httpUrl rather than url.
  • A tool reports that it needs an API key: the variable was empty when the CLI started. Run echo $DRAFTKINGS_API_KEY in the launching shell.
  • HTTP 401 inside a tool result: the key is revoked or malformed. Keys start with dk_.
  • HTTP 429: wait for the next UTC minute, or for the next month if the monthly allowance is spent. See errors and rate limits.
  • Timeouts: the example sets timeout to 30,000 ms. A short value can fail on large pages, so lower limit before raising it.
  • A GET request to the endpoint returns 405: this is expected. The server is stateless JSON over POST.

Use the Gemini app

Google's help page says custom apps can be added by MCP server URL, for people aged 18 or over in the US with a personal Google Account and Keep Activity on. Work and school accounts are excluded. It does not list authentication methods beyond Dynamic Client Registration and entering credentials under advanced features.

Server URL
https://draftkingsapi.com/api/mcp
First task for the app
Use the draftkings search tool to find the page about API request limits, then fetch it and tell me the plans and limits it states, with the page URL. Do not guess anything the page does not say.

We have not tested this route. This server offers no OAuth sign-in, so plan on keyless search and fetch. For live rows, run a REST call yourself and attach the result.

REST alternative

Everything the data tools do is a plain HTTP call, and MCP is optional. Use REST when a client cannot send a header, or when a scheduled job needs no assistant in the loop.

The same first read over REST
curl --fail-with-body "https://draftkingsapi.com/api/v1/pick6/projections?sport=NHL&stat=Shots%20on%20Goal&limit=5" \
  -H "Authorization: Bearer $DRAFTKINGS_API_KEY"

The public contract is at /api/openapi. See the Python guide and the JavaScript guide for retries and pagination.

Evaluate before you build on Gemini

Check the data before you promise a feature. A connected client shows that the transport works, not that the coverage fits your project.

Free includes 500 requests/month at 20/minute; Developer is $49/month with 10,000 requests/month at 60/minute; Production is $149/month with 50,000 requests/month at 120/minute. Limits are shared across keys.

Try it

Run the first read over REST if you want to check your key before configuring a client.

curl --fail-with-body "https://draftkingsapi.com/api/v1/pick6/projections?sport=NHL&stat=Shots%20on%20Goal&limit=5" \
  -H "Authorization: Bearer $DRAFTKINGS_API_KEY"

Check the recorded data

Questions

Should I use httpUrl or url in Gemini CLI?

Use httpUrl. Gemini CLI treats url as an SSE endpoint, and this server is stateless JSON over HTTP POST.

Does this configuration work in the Gemini app?

No. The settings file applies to Gemini CLI. The Gemini app has a separate custom app feature with its own eligibility rules, and we have not tested it with this server.

Can I use Gemini CLI without a key?

Yes, for the search and fetch tools, which read public documentation. Omit the headers block. Data tools need an account and a key.

Do tool calls count against my plan?

Data tool calls do, one request each, the same as REST. Search and fetch read public pages and need no key.

Sources

  1. Gemini CLI: MCP servers checked 2026-11-03
  2. Google: add custom apps to Gemini checked 2026-11-03

Related resources

Independent service operated by DD Inc., not affiliated with or endorsed by DraftKings. Technical access is not a redistribution license. No wagering: this service does not place, recommend or settle entries or bets. Check sources and status for actual capture context.