Skip to main content

Scorelytics REST API (1.0.0)

Download OpenAPI specification:Download

Real-time sports data — leagues, matches, statistics, lineups, standings.

The Scorelytics REST API exposes everything you need to build a live-score product, a fantasy app, an analytics dashboard or a sportsbook frontend.

Base URL

https://api.scorelytics.pro

Authentication

All endpoints under /v1/{sport}/* (where sport is football or basketball) require an API key. Pass it as X-API-Key, as a Bearer token, or as the ?api_key= query parameter. See Authentication for details.

Conventions

  • Times are Unix epoch seconds (UTC) unless otherwise noted.
  • All responses are JSON unless explicitly noted.
  • Pagination uses an opaque next_cursor; pass it back as ?after=.

Need help?

Reach us at support@scorelytics.pro or open a ticket from the dashboard.

Matches

Live and historical matches. Includes scores, period/minute, events, statistics, lineups and standings snapshots.

List matches

Returns a paginated list of matches. Combine filters to narrow the result set. The list is sorted by kickoff time ascending.

Tip — for a daily live scoreboard, call ?status=live and re-poll every 5–10 seconds, or use the WebSocket stream for push updates.

Authorizations:
ApiKeyHeaderApiKeyQueryBearerAuth
path Parameters
sport
required
string
Enum: "football" "basketball"

Sport identifier — football or basketball.

query Parameters
status
string
Enum: "live" "scheduled" "finished"

Filter by lifecycle status.

league_id
string

Restrict results to a single league.

date
string <date>
Example: date=2026-05-04

Filter by kickoff date in UTC (YYYY-MM-DD).

after
integer <int64>

Cursor for pagination. Pass the next_cursor value returned by a previous call to fetch the next page.

limit
integer [ 1 .. 200 ]
Default: 50

Page size, between 1 and 200.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 2,
  • "limit": 50
}

Get a match

Returns the full record for a match, including referee, venue, attendance, formations and half-time scores.

Authorizations:
ApiKeyHeaderApiKeyQueryBearerAuth
path Parameters
sport
required
string
Enum: "football" "basketball"

Sport identifier — football or basketball.

id
required
string

Match identifier returned by listMatches.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "league_id": "string",
  • "season": "string",
  • "home_team": "string",
  • "away_team": "string",
  • "home_score": 0,
  • "away_score": 0,
  • "home_ht_score": 0,
  • "away_ht_score": 0,
  • "status_code": 0,
  • "period": 0,
  • "minute": 0,
  • "added_time": 0,
  • "kickoff_ts": 0,
  • "finished_at": "2019-08-24T14:15:22Z",
  • "home_formation": "4-3-3",
  • "away_formation": "string",
  • "referee": "string",
  • "venue": "string",
  • "attendance": 0,
  • "updated_at": "2019-08-24T14:15:22Z",
  • "home_logo": "http://example.com",
  • "away_logo": "http://example.com"
}

Get match events

Chronological event timeline for a match: goals, cards, substitutions, penalties and own goals. Sorted by minute then added_time.

Authorizations:
ApiKeyHeaderApiKeyQueryBearerAuth
path Parameters
sport
required
string
Enum: "football" "basketball"

Sport identifier — football or basketball.

id
required
string

Match identifier returned by listMatches.

Responses

Response samples

Content type
application/json
{
  • "match_id": "string",
  • "events": [
    ]
}

Get match statistics

Returns the live in-game statistics for a match — possession, shots, corners, fouls, offsides, saves, etc. for football and FG%, 3P%, FT%, rebounds, assists and turnovers for basketball.

The stats field is a JSON pass-through whose shape varies per sport. See Statistics shape for the canonical field reference.

Authorizations:
ApiKeyHeaderApiKeyQueryBearerAuth
path Parameters
sport
required
string
Enum: "football" "basketball"

Sport identifier — football or basketball.

id
required
string

Match identifier returned by listMatches.

Responses

Response samples

Content type
application/json
{
  • "match_id": "string",
  • "stats": [
    ]
}

Get match lineups

Starting XI and bench for both teams, ordered home first, starters before substitutes.

Authorizations:
ApiKeyHeaderApiKeyQueryBearerAuth
path Parameters
sport
required
string
Enum: "football" "basketball"

Sport identifier — football or basketball.

id
required
string

Match identifier returned by listMatches.

Responses

Response samples

Content type
application/json
{
  • "match_id": "string",
  • "lineups": [
    ]
}

Get standings snapshot for a match

Returns the league table as it stood at this match's kickoff. Useful for retrospective analysis. For the current league standings, use /v1/{sport}/leagues/{id}/standings.

Authorizations:
ApiKeyHeaderApiKeyQueryBearerAuth
path Parameters
sport
required
string
Enum: "football" "basketball"

Sport identifier — football or basketball.

id
required
string

Match identifier returned by listMatches.

Responses

Response samples

Content type
application/json
{
  • "match_id": "string",
  • "table": [
    ]
}

Get head-to-head history

Recent meetings between the two teams of the requested match.

Authorizations:
ApiKeyHeaderApiKeyQueryBearerAuth
path Parameters
sport
required
string
Enum: "football" "basketball"

Sport identifier — football or basketball.

id
required
string

Match identifier returned by listMatches.

Responses

Response samples

Content type
application/json
{ }

Leagues

Tracked competitions and their current standings.

List leagues

All competitions tracked on your account, ordered by country and name.

Authorizations:
ApiKeyHeaderApiKeyQueryBearerAuth
path Parameters
sport
required
string
Enum: "football" "basketball"

Sport identifier — football or basketball.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get current league standings

Returns the latest standings snapshot for a league. Standings are recomputed after every match in that league.

Authorizations:
ApiKeyHeaderApiKeyQueryBearerAuth
path Parameters
sport
required
string
Enum: "football" "basketball"

Sport identifier — football or basketball.

id
required
string

Responses

Response samples

Content type
application/json
{
  • "league_id": "string",
  • "standings": [
    ]
}

System

Health and readiness probes for monitoring.

Liveness probe

Always returns 200, even when downstream components are degraded. Use this for load balancer liveness checks.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "components": {
    },
  • "timestamp": "2019-08-24T14:15:22Z"
}

Readiness probe

Returns 200 only when every downstream component (Postgres, Redis, NATS) is healthy. Returns 503 otherwise. Use this to gate routing decisions at the load balancer.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "components": {
    },
  • "timestamp": "2019-08-24T14:15:22Z"
}