API cheat sheet

One-page re-entry for humans and a compact context block for LLMs. Keep this tab open while you build.

API key Sign in, or get an instant trial key below — no signup required.

Base URL & auth

http
Base URL:  https://lumify.ai
Auth:      Authorization: Bearer lmfy-...
Instant key (no signup): https://lumify.ai/docs/ai
Persistent free tier:    https://lumify.ai/register  (1,000 credits)

Response envelope & headers

  • JSON everywhere. Cursor pagination: ?after_id=<id>&limit=<n> (max 100) → next_after_id.
  • Timestamps are ISO-8601 UTC with trailing Z.
  • Every response: X-RateLimit-{Limit,Remaining,Reset}, X-Credits-Used, X-Credits-Remaining (when resolvable).
  • Odds / splits / intelligence not ready yet → 200 with available: false and 0 credits.

Credits (1-credit default)

CallCost
Standard (events, scores, odds, splits, intelligence, players)1 credit
Multi-bookmaker odds (bookmaker=all or a list)2 credits
Compound include_odds / include_intelligence+1–2 credits
SSE stream open1 credit
POST /v1/estimate (pre-call cost estimate)Free
Errors (4xx/5xx) and available: falseFree

Rate limits (sliding 60s): Free 20/min · PAYG 60/min · Growth 120/min.

Hero query — events + odds + intelligence

bash
curl -s "https://lumify.ai/v1/events?sport=mlb&status=scheduled&limit=5" \
  -H "Authorization: Bearer lmfy-YOUR_KEY"

# Then for one event_id:
curl -s "https://lumify.ai/v1/events/EVENT_ID?include_odds=true&include_intelligence=true" \
  -H "Authorization: Bearer lmfy-YOUR_KEY"

# Or estimate cost first (always free):
curl -s -X POST "https://lumify.ai/v1/estimate" \
  -H "Authorization: Bearer lmfy-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"calls":[{"tool":"get_event","arguments":{"event_id":12345,"include_odds":true,"include_intelligence":true}}]}'

Intelligence sports today: MLB, NFL, NCAA Football, ATP/WTA tennis, FIFA World Cup soccer, MLS. Splits: MLB, NBA, NHL, NFL.

Error shape

json
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded",
    "status": 429,
    "doc_url": "https://lumify.ai/docs/reference#error-codes",
    "retry_after": 23
  },
  "detail": "Rate limit exceeded"
}

Switch on error.code (stable slug), not message. Common codes: unauthorized, insufficient_credits, rate_limit_exceeded, not_found, validation_error.

MCP (hosted, metered)

text
URL:  https://lumify.ai/mcp
Auth: Authorization: Bearer lmfy-...
18 tools — initialize / tools/list / ping are free; tools/call metered like REST.
No npx required for remote clients. Desktop/IDE only until OAuth ships.
Setup: https://lumify.ai/docs/ai

Go deeper