LogoFunkyStats
TeamsEventsTrackLocks
HomeCompare TeamsUnlucky TeamsAPI

Developed by team 846

API docs

BasicsAuthenticationRate limitsResponse formatErrorsEndpoints/rankings/teams/{team}/events/events/{event}/events/{event}/teams/events/{event}/matches

Read-only FRC scouting metrics for the 2026 season: FSM ratings, component breakdowns, defense scores and model-backed match predictions. Base URL: https://fsm846.vercel.app/api/v1. Need a key? Request one here.

Authentication

Send your key in the X-API-Key header on every request. Only /api/v1 (the index) and /api/v1/openapi.json work without one.

curl -H "X-API-Key: YOUR_KEY" "https://fsm846.vercel.app/api/v1/rankings?page_size=5"

It's a server-to-server key: don't put it in browser JavaScript.

Rate limits

60 requests a minute per key. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Going over returns 429 with a Retry-After header.

Response format

{
  "data": ...,
  "meta": { "season": 2026, "generated_at": "2026-08-07T19:34:13.582Z", "source": "fsm/v1" },
  "pagination": { "page": 1, "page_size": 100, "total_items": 3758, "total_pages": 38 }
}
  • Metrics are JSON numbers rounded to 2 decimals, never strings.
  • Teams come back as frc846 plus a numeric team_number; 846 and frc846 both work as input.
  • Event codes work with or without the season: casj or 2026casj.

Errors

{ "error": { "code": "unauthorized", "message": "Missing or invalid X-API-Key header.", "status": 401 } }
CodeStatus
invalid_request400
unauthorized401
not_found404
rate_limited429
internal_error500
upstream_unavailable502
service_unavailable503

GET/rankings

2026 FSM leaderboard.

ParameterInTypeNotes
pagequeryintegerDefault 1.
page_sizequeryintegerDefault 100. Max 500.
countryquerystring
state_provquerystring
min_fsmquerynumber
curl -H "X-API-Key: YOUR_KEY" "https://fsm846.vercel.app/api/v1/rankings"

GET/teams/{team}

One team's 2026 season profile.

ParameterInTypeNotes
team requiredpathstringTeam number or TBA key (846 or frc846).
curl -H "X-API-Key: YOUR_KEY" "https://fsm846.vercel.app/api/v1/teams/846"

GET/events

All 2026 events with strength metrics.

ParameterInTypeNotes
pagequeryintegerDefault 1.
page_sizequeryintegerDefault 100. Max 500.
weekqueryinteger
districtquerystring
countryquerystring
state_provquerystring
curl -H "X-API-Key: YOUR_KEY" "https://fsm846.vercel.app/api/v1/events"

GET/events/{event}

One 2026 event.

ParameterInTypeNotes
event requiredpathstringEvent code, with or without the 2026 prefix (casj or 2026casj).
curl -H "X-API-Key: YOUR_KEY" "https://fsm846.vercel.app/api/v1/events/casj"

GET/events/{event}/teams

Scouting table for an event.

Every attending team with FSM, components, penalty and defense_score.

ParameterInTypeNotes
event requiredpathstringEvent code, with or without the 2026 prefix (casj or 2026casj).
sortqueryrank | fsm | defense_score | team_numberDefault rank.
curl -H "X-API-Key: YOUR_KEY" "https://fsm846.vercel.app/api/v1/events/casj/teams"

GET/events/{event}/matches

Match predictions for an event.

ParameterInTypeNotes
event requiredpathstringEvent code, with or without the 2026 prefix (casj or 2026casj).
playedqueryboolean
curl -H "X-API-Key: YOUR_KEY" "https://fsm846.vercel.app/api/v1/events/casj/matches"