---
title: Image API
description: Reference for the image proxy — every supported entity type, modifiers, response semantics and caching behaviour.
---

# Image API

Serves logos, badges and photos for every entity in the platform, keyed by
the same numeric ids the REST APIs return. **No authentication.** Practical
usage guide: [Working with images](/docs/guides/images/).

```
GET https://sports.bzzoiro.com/img/<type>/<id>/               football
GET https://sports.bzzoiro.com/img/<sport>/<type>/<id>/       other sports
```

## Supported types

| Sport | URL forms |
|---|---|
| Football | `/img/player/{id}/` · `/img/team/{id}/` · `/img/league/{id}/` · `/img/manager/{id}/` · `/img/venue/{id}/` |
| Tennis | `/img/tennis/player/{id}/` |
| Darts | `/img/darts/player/{id}/` |
| Hockey | `/img/hockey/team/{id}/` · `/img/hockey/league/{id}/` |
| Basketball | `/img/basketball/team/{id}/` · `/img/basketball/league/{id}/` · `/img/basketball/player/{id}/` · `/img/basketball/manager/{id}/` · `/img/basketball/venue/{id}/` |
| CS2 | `/img/csgo/team/{id}/` · `/img/csgo/player/{id}/` · `/img/csgo/tournament/{id}/` |

An unknown type returns `404`. `/api/img/…` is an equivalent alias for both
forms.

## Modifiers

| Param | Applies to | Effect |
|---|---|---|
| `?bg=transparent` | All types | Removes white background connected to the image edge |
| `?sor=true` | `player` (football) only | Cut-out face-style photo when available; silent fallback to the regular photo |

Modifiers combine: `?sor=true&bg=transparent`. Each variant is cached
separately, so the first request per variant is slower.

## Response semantics

| Case | Response |
|---|---|
| Image available | `200` — PNG or WebP (`Content-Type` set accordingly) |
| Valid id, no image | `204 No Content` (empty body) — render your own placeholder |
| Non-numeric/`null` id | `204 No Content` |
| Unknown type | `404` |

The 204-instead-of-404 design means templates that interpolate optional ids
never produce broken requests. Sport-scoped types are namespaced — a tennis
id can never serve a football image.

## Caching

- Server/edge cache: up to **30 days** per image (missing images re-checked
  hourly).
- Browser cache: `Cache-Control: public, max-age=31536000` on cached images.
- The `X-Cache-Status` header reports `HIT`/`MISS`.
- First-ever request for an image fetches upstream (~1 s); after that it's
  served from cache.

Hotlink freely — the proxy exists so you don't have to download, store or
resize images yourself.
