Use PrizePicks data with Grok.
Pick the route by where you use Grok. Steps follow xAI's documentation as of 5 November 2026. We have not run the two MCP routes end to end, so check the first read below before you rely on them.
Grok Build
- Create a free account, copy a key from API keys and set
PRIZEPICKS_API_KEYin your environment. - Add the table below to
~/.grok/config.toml, or.grok/config.tomlfor one project. Grok expands the variable when it loads the file, so the key stays out of it. - Run
grok mcp doctor prizepicksto check the connection. - Ask for a small read:
get_coverage, thenget_projectionsfor one league. Grok shows them asprizepicks__get_coverageandprizepicks__get_projections.
[mcp_servers.prizepicks]
url = "https://prizepicksapi.com/api/mcp"
headers = { "Authorization" = "Bearer ${PRIZEPICKS_API_KEY}" }The xAI API
For an app you are building on Grok. xAI's servers call our MCP endpoint during the request.
- Set
XAI_API_KEYandPRIZEPICKS_API_KEYon your server, never in browser code. - Send the request below.
allowed_toolskeeps the model to the tools this task needs. Use a current model name from xAI's list. - On a new account the first data call asks for
complete_setup, which needs what you want the data for. Finish it once with your own words. - Confirm the answer quotes real rows with
observed_at. If a tool reports a missing key, the header did not arrive. CallGET /api/v1/projectionsfrom your server and pass the rows to Grok instead.
curl https://api.x.ai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4.7",
"input": [{"role": "user", "content": "Call get_coverage, then get_projections with league NBA, view compact and limit 5. Send user_request describing this task. Report the rows and observed_at. If the board is empty or delayed, say so."}],
"tools": [{
"type": "mcp",
"server_url": "https://prizepicksapi.com/api/mcp",
"server_label": "prizepicks",
"allowed_tools": ["complete_setup", "get_coverage", "get_projections"],
"headers": {"Authorization": "Bearer '"$PRIZEPICKS_API_KEY"'"}
}]
}'Grok chat
Paste a board. It works anywhere you can paste text, and the chat never holds your key.
- Copy a board as short text with the request below. It copies to your clipboard on a Mac. Elsewhere, drop
| pbcopyand copy the output. - Paste it into Grok after the prompt below, then ask your question.
curl -s "https://prizepicksapi.com/api/v1/export?league=NBA&stat=Points&format=text" \
-H "Authorization: Bearer $PRIZEPICKS_API_KEY" \
-H "X-User-Request: Export NBA points board for chat analysis" | pbcopyBelow is a PrizePicks board exported from prizepicksapi.com. Use only these rows for lines. Quote the read time from the header when you state a line, and tell me if it is more than an hour old. Available sides on goblin and demon lines vary; inspect selections[].available. This is information for analysis, not betting advice.
[paste the board here]
My question:A pasted board is a snapshot. Copy it again when you need newer lines.
Questions
Can the Grok chat app connect to this MCP server?
We could not confirm that it accepts a custom MCP server with an API key, so this guide does not describe one. Paste the board instead. Never paste your API key into a chat.
Why does the xAI API example use headers rather than authorization?
Our server accepts only the exact header Authorization: Bearer followed by your key. xAI documents authorization as a token set in that header, without saying whether it adds the Bearer prefix. The headers field leaves no doubt about what is requested.
What does the xAI API route cost?
Two separate bills: xAI charges for the model and its tool use, and each data call uses credits on your plan here.
Is this an official PrizePicks integration?
No. This is an independent API and is not affiliated with PrizePicks.
A step no longer matches what you see? Tell us and we will fix this page.