---
title: "Licensed GymVisual media by tier (allowlisted callers only)"
method: GET
path: "/exerciseMedia"
tags: ["Exercise Database"]
---

# Licensed GymVisual media by tier (allowlisted callers only)

`GET /exerciseMedia`

## Request

- Base URL: `https://api.anatome.dev`
- URL: `https://api.anatome.dev/exerciseMedia`
- Auth: none declared

One route for every tier named in an exercise's licensed_media_kinds. The `anim` and `still` tiers are reachable ONLY here; /exerciseGif, /exerciseImage and /exerciseVideo are aliases for gif, thumb and video. Same gate, same 403/404 semantics; Range/206/HEAD apply to kind=video. Read licensed_media_kinds and pick a tier rather than probing — 318 of the 1,324 rows have no MP4.

## Query parameters

- `id` string, required
- `kind` 'video' | 'anim' | 'still' | 'gif' | 'thumb', required

## Response `200`

Media bytes for the requested tier

## Other responses

- `206`: Partial content (kind=video)
- `400`: Missing or invalid id, or unknown kind
- `403`: Caller is not allowlisted
- `404`: Unknown id, no asset of this kind for the row, or no object in R2

---

[API](https://skmtc.dev/anatome/apis/anatome-muscle-group-image-generator-api.md) · [All operations](https://skmtc.dev/anatome/apis/anatome-muscle-group-image-generator-api/llms.txt) · [OpenAPI document](https://skmtc.dev/anatome/apis/anatome-muscle-group-image-generator-api/revisions/87cc81795f65?raw)
