Developer resources

StreamCenter API

Images API

Render locally cached, immutable WebP artwork. StreamCenter validates, converts, hashes, stores, and verifies assets before they become public; image reads perform no remote fetch or generation.

Base URL: https://streamcenter.st

Endpoints

GET /api/images/badge/{assetId}.webp

Serves a team badge. Use the opaque badge value from a match team.

GET /api/images/poster/{assetId}.webp

Serves cached match artwork. The match poster field is an extensionless local path, so append .webp.

Shell
curl --fail-with-body --silent --show-error \
  "https://streamcenter.st/api/images/badge/home-badge-id.webp" \
  --output home-badge.webp
JavaScript
const badgeUrl = `https://streamcenter.st/api/images/badge/${encodeURIComponent(match.teams.home.badge)}.webp`;
const posterUrl = match.poster
  ? `https://streamcenter.st${match.poster}.webp`
  : null;

HTML examples

HTML
<img
  src="https://streamcenter.st/api/images/badge/home-badge-id.webp"
  alt="North City badge"
  width="96"
  height="96"
  loading="lazy"
>

<img
  src="https://streamcenter.st/api/images/poster/poster-asset-id.webp"
  alt="North City vs. South United"
  width="1280"
  height="720"
  loading="lazy"
>

Caching and layout

  • Asset IDs are immutable. Successful responses are cacheable for one year and include a strong ETag.
  • Preserve the .webp suffix and let browsers reuse the immutable response.
  • Always provide known width and height to prevent layout shift.
  • The image limit is 300 requests per minute per client IP.

Limitations

The API does not proxy arbitrary URLs, resize images dynamically, or compose posters at request time. Missing assets and capability mismatches return 404.