---
title: "Fetch an image we host"
method: GET
path: "/v1/assets/{id}"
tags: ["assets"]
---

# Fetch an image we host

`GET /v1/assets/{id}`

## Request

- Base URL: `https://api.bigballsdata.com`
- URL: `https://api.bigballsdata.com/v1/assets/{id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Serves a team crest or player headshot from our own storage. Every `logo_url`, `headshot_url`, `photo_url` and `flag_url` in any response points here; no response field ever points at a third-party host.

`id` is opaque and is the only supported way to reach an asset. There is no parameter that accepts a URL, and an id this API did not issue is refused. Do not parse, construct, truncate or derive anything from it; treat it as a bearer string and store it whole. The same image always gets the same id, so the URL is stable and safe to cache or persist.

No API key is required, and an authenticated request returns byte-identical content to an unauthenticated one. Responses carry `cache-control: public, max-age=31536000, immutable`, so you may cache and store the bytes, including in your own infrastructure, for as long as that header allows.

## Path parameters

- `id` string, required

## Response `200`

The image.

## Other responses

- `403`: The id is well-formed but names an asset this API does not serve.
- `404`: No asset of ours is named by this id.
- `502`: We do not yet hold a copy of this image and could not retrieve it. Retry; the copy is fetched on first request.
- `504`: The image could not be retrieved in time. Retry.

---

[API](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api.md) · [All operations](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api/revisions/9191fc13fcdb?raw)
