Documentation

API & Agent Docs

V12 DFS works as a REST API, a CLI tool, or through any AI agent that supports tool use — Claude Code, OpenClaw, Cursor, or your own.

Quick Start

Via CLI

$ npm install -g v12-dfs
$ v12 login
$ v12 generate --nba --date 2026-03-31 --lineups 20

Via API

$ curl -X POST https://api.v12dfs.com/v1/generate \
    -H "X-API-Key: your_key_here" \
    -H "Content-Type: application/json" \
    -d '{"sport":"nba","date":"2026-03-31","lineups":20}'

Via AI Agent (Claude Code, OpenClaw, etc.)

"Generate 20 NBA lineups for today using V12 DFS"

# Any agent with HTTP tool access can call the API directly.
# Claude Code: use the Bash tool to curl the endpoint.
# OpenClaw: add V12 as a skill with the API endpoint.
# Custom agents: POST to /v1/generate with your API key.

Authentication

All generate requests require an API key. Pass it in the X-API-Key header. Get your key from the dashboard.

curl -H "X-API-Key: v12_pro_abc123..." \
     https://api.v12dfs.com/v1/generate

Endpoints

POST/v1/generateAUTH REQUIRED

Generate optimized DFS lineups for any slate.

Request Body

{
  "date": "2026-03-31",
  "sport": "nba",
  "lineups": 20,
  "style": "balanced"
}

Response

{
  "status": "ok",
  "lineups": [
    {
      "players": ["PG: Jalen Brunson", "SG: ..."],
      "salary": 59800,
      "projection": 285.4,
      "ceiling": 342.1
    }
  ],
  "exposures": { "Jalen Brunson": 0.45, ... },
  "warnings": ["MIL-CLE blowout risk (spread -8.5)"],
  "generation_time_ms": 28400
}
GET/v1/health

Check if the API is online.

Response

{
  "status": "ok",
  "version": "1.0.0",
  "timestamp": "2026-03-31T18:42:13Z"
}
GET/v1/slates

List all available slates for today.

Response

[
  {
    "id": 128307,
    "sport": "NBA",
    "site": "fd",
    "type": "main",
    "start": "2026-03-31T19:00:00Z",
    "games": 7
  }
]