Thumbnail Endpoint
Unified API: One endpoint that handles league thumbnails, team thumbnails, and matchup thumbnails.
Endpoints:
/:league/thumb[.png]- League thumbnail (dark gradient with logo)/:league/:team/thumb[.png]- Team thumbnail (team color gradient with logo)/:league/:team1/:team2/thumb[.png]- Matchup thumbnail (split design, 1440x1080)
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 | 4-3 | Aspect ratio: 4-3 (1440x1080), 16-9 (1920x1080), 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 thumb. Matchup: Use greyscale league logo for missing teams |
title | string | - | League Thumb: A title to display on the league thumb for sports that are not based on matchups (motorsports, etc.). Requires ALLOW_EVENT_OVERLAYS=true. |
subtitle | string | - | League Thumb: A subtitle to display on the league thumb for sports that are not based on matchups (motorsports, etc.). Requires ALLOW_EVENT_OVERLAYS=true. |
iconurl | string | - | League Thumb: Optional image URL to display on the league thumb 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/thumb only
Examples below include
logo=trueto display the league logo in the center.
| Style | Description | Preview |
|---|---|---|
| 1: Diagonal Split | Diagonal 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 Thumbnails
Dark gradient background with centered league logo.
Team Thumbnails
Team color gradient background with centered team logo.
Matchup Thumbnails
Basic:
GET /nhl/leafs/canadiens/thumb
GET /nba/raptors/lakers/thumb?style=2
GET /mlb/bluejays/yankees/thumb?logo=false
GET /nhl/oilers/flames/thumb?style=99
GET /mls/toronto-fc/lafc/thumb?badge=4K
GET /nhl/canucks/bruins/thumb?badge=HD&style=3
GET /nhl/jets/blackhawks/thumb?style=5
GET /nhl/senators/rangers/thumb?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/thumb?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 thumbnail 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/thumb?winner=leafs
GET /nba/lakers/celtics/thumb?winner=lakers&style=2
GET /mlb/yankees/redsox/thumb?winner=yankees&logo=true
| Request | Preview | Result |
|---|---|---|
/nhl/leafs/canadiens/thumb?winner=leafs | Leafs in color, Canadiens greyscale | |
/nhl/leafs/canadiens/thumb?winner=canadiens&style=2 | Canadiens in color, Leafs greyscale |
Combined with Other Parameters:
GET /nfl/chiefs/49ers/thumb?winner=chiefs&badge=4K
GET /nba/warriors/cavaliers/thumb?winner=warriors&style=99
Flexible Team Matching:
GET /nhl/leafs/canadiens/thumb?winner=toronto # City name
GET /nba/lakers/celtics/thumb?winner=lal # Abbreviation
GET /mlb/yankees/redsox/thumb?winner=new-york # Partial match
If the winner doesn’t match either team, both teams display in full color (no error returned).
Athlete Sports (Singles)
GET /tennis/djokovic/federer/thumb
GET /tennis/serena-williams/osaka/thumb?style=2
GET /ufc/jon-jones/stipe-miocic/thumb
Tennis Doubles
GET /tennis/djokovic+federer/nadal+murray/thumb
GET /tennis/serena-williams+venus-williams/osaka+azarenka/thumb?style=3
GET /tennis/ram+salisbury/koolhof+skupski/thumb?logo=false
Output
- Default: 1440x1080 PNG (4:3 aspect ratio)
- 16:9: 1920x1080 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
- Automatically selects best logo variants based on contrast
Deprecated Endpoint
/:league/leaguethumb→ Use/:league/thumb