Quant Desk Feature

Developer API

Pull today's Power & Premium Projections and your graded history as clean JSON over a Bearer-authenticated REST endpoint. Build your own dashboards, alerts, and models on top of the EdgeDesk engine.

Requires an active Quant Desk plan

The Developer API is included with Quant Desk ($149/mo) and its annual plan. Keys issued to any lower plan cannot pull projections — the endpoint returns 403 until you upgrade.

Base URL
https://edgeslatesports.com/api/v1
Auth
Bearer es_live_…
Rate limit
60 req / min
Authentication

Authenticate with a Bearer key

Every request must include your personal key in the Authorization header. Keys are prefixed es_live_ and are issued from Dashboard → API Access. Treat it like a password — anyone with your key can pull your plan's projections. Rotate it any time from the same panel.

Header
Authorization: Bearer es_live_xxxxxxxxxxxxxxxx
Endpoint

Get projections

GET/api/v1/picks

Returns today's slate for the sports and products your plan covers, or your recently graded history. Canonical numeric fields include their units in the name: confidence is 0–100 percent, model and market probabilities are 0–1 decimals, and edge is expressed in probability percentage points. The old confidence, edge, and modelProbability aliases remain temporarily for compatibility and are deprecated.

Machine-readable contract: /api/v1/openapi

ParamValuesDescription
statustoday | gradedtoday (default) returns the current plan-gated slate. graded returns recently settled projections with results and CLV.
sportmlb, nba, wnba, nhl, soccer, ncaab, ncaaw … or allFilter to one sport (lowercase). Defaults to all.
productpremium | power | allFilter to a projection product line. Defaults to all.
limit1–100Max rows returned. Defaults to 50, capped at 100.
include_lockedtrue | falseOn status=today, also return a locked[] array of projections above your plan (metadata only, no values).
Example request

Copy-paste curl

Pull today's Premium MLB projections. Swap the key for your own and adjust the query params.

Terminal
curl -H "Authorization: Bearer es_live_xxxxxxxxxxxxxxxx" \
  "https://edgeslatesports.com/api/v1/picks?status=today&sport=mlb&product=premium"
Response

JSON response shape

Every response is { status, meta, data }. meta carries the slate day, your resolved plan, the applied filters, a row count, and a compliance disclaimer. data is an array of projections.

status=today — live slate:

200 OK · status=today
{
  "status": "ok",
  "meta": {
    "schemaVersion": "edgeslate.developer-api.v1",
    "units": {
      "confidencePercent": "percent (0-100)",
      "modelProbabilityDecimal": "decimal probability (0-1)",
      "marketProbabilityDecimal": "decimal probability (0-1)",
      "edgeProbabilityPoints": "percentage-point difference"
    },
    "day": "2026-07-04",
    "status": "today",
    "plan": "all_access_monthly",
    "sport": "mlb",
    "count": 2,
    "lockedCount": 0,
    "generatedAt": "2026-07-04T15:00:00.000Z",
    "disclaimer": "Projections are for research and informational purposes only. EdgeSlate is analytics software, not a sportsbook, and does not accept wagers."
  },
  "data": [
    {
      "id": "mlb-2026-07-04-nyy-bos-ml",
      "day": "2026-07-04",
      "sport": "mlb",
      "league": "MLB",
      "matchup": "New York Yankees vs Boston Red Sox",
      "startTime": "2026-07-04T23:05:00Z",
      "projection": "Yankees Moneyline",
      "market": "Moneyline",
      "side": "home",
      "team": "New York Yankees",
      "opponent": "Boston Red Sox",
      "confidencePercent": 64,
      "edgeProbabilityPoints": 4.2,
      "modelProbabilityDecimal": 0.61,
      "marketProbabilityDecimal": 0.568,
      "priceAmerican": -135,
      "marketLine": null,
      "product": "premium",
      "starRating": 4,
      "confidence": 0.64,
      "edge": 4.2,
      "modelProbability": 0.61,
      "locked": false
    }
  ]
}

status=graded — settled history adds result, finalScore, units, closingPriceAmerican, and clvProbabilityPoints:

200 OK · status=graded
{
  "status": "ok",
  "meta": { "schemaVersion": "edgeslate.developer-api.v1", "status": "graded", "plan": "all_access_monthly", "sport": "mlb", "count": 1, "disclaimer": "…" },
  "data": [
    {
      "id": "mlb-2026-07-02-lad-sf-ml",
      "day": "2026-07-02",
      "sport": "mlb",
      "matchup": "Los Angeles Dodgers vs San Francisco Giants",
      "projection": "Dodgers Moneyline",
      "market": "Moneyline",
      "priceAmerican": -160,
      "confidencePercent": 67,
      "edgeProbabilityPoints": 3.1,
      "modelProbabilityDecimal": 0.67,
      "marketProbabilityDecimal": 0.639,
      "product": "power",
      "result": "win",
      "finalScore": "5-2",
      "units": 1.0,
      "closingPriceAmerican": -172,
      "clvProbabilityPoints": 1.4,
      "gradedAt": "2026-07-03T04:12:00Z"
    }
  ]
}
Rate limits & errors

Limits and error codes

Requests are limited to 60 per minute per key. Every response returns X-RateLimit-Limit and X-RateLimit-Remaining from the shared counter, plus X-RateLimit-Reset. Over the limit you get a 429 with a Retry-After header. Errors are shaped { status: "error", error: { code, message } }.

StatusCodeMeaning
401missing_api_key / invalid_api_keyNo es_live_ key, or the key is not recognized.
403quant_desk_requiredValid key, but the owner has no active Quant Desk entitlement. Upgrade to enable.
429rate_limitedOver 60 req/min. Honor the Retry-After header.
200degraded / no_publicationAlways 200 with an empty data: [] when the slate is empty or upstream is briefly unavailable — never a hard 500.

Ready to build on the engine?

The Developer API ships with Quant Desk. Upgrade, mint your key from the dashboard, and start pulling projections in minutes.