Cover Endpoint
Unified API: One endpoint that handles league covers, team covers, and matchup covers.
Endpoints:
/:league/cover[.png]- League cover (dark gradient with logo)/:league/:team/cover[.png]- Team cover (team color gradient with logo)/:league/:team1/:team2/cover[.png]- Matchup cover (split design, 1080x1440)
Parameters
league- Sport league code (see Supported Leagues)team/team1/team2- Team identifier (name, city, or abbreviation)- Athlete Sports (Tennis, MMA): Use athlete names (e.g.,
djokovic,serena-williams) - Doubles/Teams: Use
+to combine multiple athletes (e.g.,djokovic+federer)
- Athlete Sports (Tennis, MMA): Use athlete names (e.g.,
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
aspect | string | 3-4 | Aspect ratio: 3-4 (1080x1440), 9-16 (1080x1920), or 1-1 (1080x1080) |
style | integer | 1 | Visual style 1-4 (matchup only) |
logo | boolean | true | Include league logo (matchup only) |
badge | string | - | Add quality badge overlay: ALT, 4K, HD, FHD, or UHD (matchup only) |
winner | string | - | Winning team identifier - displays losing team in greyscale (matchup only) |
fallback | boolean | false | Single team: Return league cover. Matchup: Use greyscale league logo for missing teams |
title | string | - | League Cover: An optional title to display on the league cover for sports that are not based on matchups (motorsports, etc.). Requires ALLOW_EVENT_OVERLAYS=true. |
subtitle | string | - | League Cover: An optional subtitle to display on the league cover for sports that are not based on matchups (motorsports, etc.). Requires ALLOW_EVENT_OVERLAYS=true. |
iconurl | string | - | League Cover: Optional image URL to display on the league cover for sports that are not based on matchups (motorsports, etc.). Must be an http:// or https:// URL with a public hostname; private and loopback targets are rejected unless ALLOW_INSECURE_OVERLAY_URLS=true. Requires ALLOW_EVENT_OVERLAYS=true. |
Matchup Styles
Applies to: /:league/:team1/:team2/cover only
Examples below include
logo=trueto display the league logo in the center.
| Style | Description | Preview |
|---|---|---|
| 1: Horizontal Split | Horizontal split with team colors separated by a white line. | |
| 2: Gradient Blend | Smooth gradient blend between team colors. | |
| 3: Minimalist Badge (Light) | Minimalist design with team circles, VS text, and light background. | |
| 4: Minimalist Badge (Dark) | Minimalist design with team circles, VS text, and dark background. | |
| 5: Grid Background | Dark background with grey diagonal grid lines and fade to black effect. | |
| 6: Grid with Team Colors | Dark background with team color gradient grid lines and fade to black effect. | |
| 98: 3D Embossed with League Logo | 3D embossed design with textured backgrounds, reflections, metallic VS badge, and league logo at top. Credit: @oOStroudyOo | |
| 99: 3D Embossed | 3D embossed design with textured backgrounds, reflections, and metallic VS badge. Credit: @shelf on Dispatcharr Discord |
Examples
League Covers
Dark gradient background with centered league logo.
Team Covers
Team color gradient background with centered team logo.
Matchup Covers
Basic:
GET /nhl/leafs/canadiens/cover
GET /nba/raptors/warriors/cover?style=2
GET /mlb/bluejays/orioles/cover?logo=false
GET /nhl/oilers/jets/cover?style=99
GET /mls/toronto-fc/montreal/cover?badge=UHD
GET /nhl/canucks/flames/cover?badge=4K&style=2
GET /nhl/senators/sabres/cover?style=5
GET /mls/vancouver/seattle/cover?style=6
Fallback Behavior
When fallback=true is set, the API gracefully handles missing data instead of returning errors.
Unsupported League Fallback
If a league is not configured but exists in ESPN’s API, automatically uses ESPN provider.
| Request | Behavior |
|---|---|
/eng.w.1/team1/team2/cover?fallback=true | Detects unconfigured league → creates temporary config → resolves teams normally |
This enables support for 100+ ESPN leagues (e.g., WSL, Brazilian Serie A, J-League, Liga MX lower divisions) without manual configuration.
Single Team Fallback
If a team is not found, returns the league cover instead.
Matchup Fallback
If one or both teams are not found, uses greyscale league logo for missing teams.
Winner Effect
The winner parameter displays the losing team in greyscale (35% opacity with grey colors), making the winner stand out in full color.
Team Matching: Uses the same flexible matching as team parameters - accepts team names, cities, or abbreviations.
Basic Usage:
GET /nhl/leafs/canadiens/cover?winner=leafs
GET /nba/lakers/celtics/cover?winner=lakers&style=2
GET /mlb/yankees/redsox/cover?winner=yankees&logo=true
| Request | Preview | Result |
|---|---|---|
/nhl/leafs/canadiens/cover?winner=leafs | Leafs in color, Canadiens greyscale | |
/nhl/leafs/canadiens/cover?winner=canadiens&style=2 | Canadiens in color, Leafs greyscale |
Combined with Other Parameters:
GET /nfl/chiefs/49ers/cover?winner=chiefs&badge=UHD
GET /nba/warriors/cavaliers/cover?winner=warriors&style=99
Flexible Team Matching:
GET /nhl/leafs/canadiens/cover?winner=toronto # City name
GET /nba/lakers/celtics/cover?winner=lal # Abbreviation
GET /mlb/yankees/redsox/cover?winner=new-york # Partial match
If the winner doesn’t match either team, both teams display in full color (no error returned).
Athlete Sports
GET /tennis/djokovic/federer/cover
GET /tennis/djokovic+federer/nadal+murray/cover?style=3
GET /ufc/jon-jones/stipe-miocic/cover?style=2
Output
- Default: 1080x1440 PNG (3:4 aspect ratio)
- 9:16: 1080x1920 PNG
- 1:1 (Square): 1080x1080 PNG
Notes
- League: Dark gradient with league logo centered
- Team: Team color gradient with team logo centered
- Matchup: Split design with team colors and logos
- Identical to thumbnail but in portrait orientation
- Perfect for vertical/portrait displays and mobile screens
Deprecated Endpoint
/:league/leaguecover→ Use/:league/cover