BLSPORTS
Developers

Read BL Sports from code, or hand it to your AI.

Public JSON for odds, saved boards, fantasy and college data; an MCP server and agent API for AI clients; and the Black Label platform API, MCP and SDKs to connect your other apps.

20Data endpoints
3Site MCP tools
0Keys to read
1,600+Apps via platform

BL Sports data API

Base URL https://michaelbarber.tech. JSON, read-only, no key, edge-cached. Every response carries its own timestamps and source states; missing sources are reported, never filled in. Research data only: BL Sports does not accept or place wagers.

EndpointWhat it returns
GET/api/healthService check.
GET/api/oddsCurrent multi-book odds snapshot (schema bl-sportsbook-odds/v1) with live status.
GET/api/odds/live?league=NFLLive game, prop, alternate and period lines from every connected book. Large; filter by league.
GET/api/odds/board?league=NFLPlayer-prop board for one league.
GET/api/odds/sourcesSportsbook source catalog with each connector’s current state.
GET/api/odds/archive/statusOdds archive capture status: runs, quotes and age of the newest capture.
GET/api/odds/board/history?league=&kind=games|players&from=&through=&limit=&cursor=Saved board receipts with original ranks, quotes and times; paged with cursor.
GET/api/odds/backtestFive-season odds backtest report, with its availability status.
GET/api/sourcesFantasy source catalog, league settings and truth boundary.
GET/api/fantasy2026 full-PPR redraft dataset: players, projections, ranks.
GET/api/fantasy/liveThe same dataset with live status overlays.
GET/api/fantasy/environment?playerId=Game environment and background for one player (400 without playerId).
GET/api/fantasy/backtestFantasy model backtest across 2021–2025.
GET/api/intelligenceDraft-intelligence summary with provenance.
GET/api/collegeCollege fantasy dataset.
GET/api/college/liveCollege dataset with live source states.
GET/api/college/scoreboardNCAA FBS scoreboard from the official live feed, with fetch receipt.
GET/api/college/play-by-play?contestId=Play-by-play for one NCAA contest (digits only).
GET/api/college/sourcesCollege connectors, known data gaps and receipts.
GET/api/weather?stadium=pittsburghNational Weather Service forecast for a supported stadium.
curl "https://michaelbarber.tech/api/odds/board/history?league=NFL&kind=games&limit=20"

Site MCP and agent API

Connect Claude, ChatGPT, Cursor or any MCP client to this site. Public tools need no credential. OpenAPI: /openapi.json · setup guide: /connect · agent card: /.well-known/agent-card.json.

EndpointWhat it returns
GET/agent/site.jsonSite identity and every discovery link.
GET/agent/search?q=&limit=Search site pages by words in their path.
GET/agent/read?url=Read one michaelbarber.tech page as Markdown.
GET/agent/connect.jsonConnection details for API, MCP, A2A and DNS.
POST/agent/a2aA2A 1.0 JSON-RPC SendMessage with a site skill.
POST/mcpMCP server (Streamable HTTP). Tools: site_info, search_pages, read_page.
claude mcp add --transport http --scope user michaelbarber-tech https://michaelbarber.tech/mcp
{
  "mcpServers": {
    "michaelbarber-tech": { "type": "http", "url": "https://michaelbarber.tech/mcp" }
  }
}
Black Label platform

Connect your other apps from code.

The Black Label platform (Ace) connects 1,600+ apps to one account and exposes them through a REST API, an MCP server and dependency-free SDKs. Keys start with ace_sk_ and act as your account.

REST
https://tryacee.com/api/v1 · Authorization: Bearer ace_sk_… · 120 requests a minute per key
Spec
https://tryacee.com/openapi.json
MCP
https://tryacee.com/mcp · tools: search_apps, connect_app, list_connections, find_tools, get_tool, run_tool
npm
npm install https://tryacee.com/sdk/tryacee-sdk-1.0.0.tgz
pip
pip install https://tryacee.com/sdk/tryacee-1.0.0-py3-none-any.whl
EndpointWhat it returns
GET/api/v1/catalogPublic app catalog, no key.
GET/api/v1/apps?search=Search apps with your connection status.
POST/api/v1/apps/{app}/connectSign-in link that connects an app.
GET/api/v1/connectionsYour connected apps.
POST/api/v1/tools/findFind tools for a task in plain words.
POST/api/v1/tools/{tool}/runRun a tool in a connected app.
POST/api/v1/apps/{app}/requestCall any endpoint of a connected app’s own API.
POST/api/v1/triggersWatch an event; Ace posts each one to your webhook, signed.
POST/api/v1/custom-connectorsAdd any MCP server or REST API as your own connector.
GET/api/v1/meThe account behind the key.
import { Ace } from "@tryacee/sdk";
const ace = new Ace({ apiKey: process.env.ACE_API_KEY });
const { url } = await ace.apps.connect("slack");
const { tools } = await ace.tools.find("post a message in #sales on Slack");
await ace.tools.run("SLACK_SEND_MESSAGE", {
  channel: "#sales", markdown_text: "Board updated",
});
from tryacee import Ace
ace = Ace()  # reads ACE_API_KEY
link = ace.apps.connect("googlesheets")["url"]
found = ace.tools.find("append a row to a Google Sheet")

# MCP in Claude Code
claude mcp add --transport http ace https://tryacee.com/mcp \
  --header "Authorization: Bearer ace_sk_YOUR_KEY"