Browse API Reference

List equipment

Return cursor-paginated equipment records and combine category, kind, loading, ubiquity, and search filters.

The collection returns complete records, including the image template. Rendering a list takes no further request per row.

GET https://api.gymassets.dev/v1/equipment
cURL
curl 'https://api.gymassets.dev/v1/equipment?category=machine&kind=station' \
  -H "Authorization: Bearer $GA_SECRET_KEY"
Response · application/json 200
{
  "data": [
    {
      "id": "leg-press-45",
      "label": "45° leg press sled",
      "category": "machine",
      "kind": "station",
      "loading": ["plate"],
      "ubiquity": "commercial",
      "image": "https://cdn.gymassets.dev/v1/{publishableKey}/equipment/leg-press-45.png"
    }
  ],
  "next": "opaque cursor"
}

Query parameters

ParameterBehavior
categoryFilter by /v1/equipment-categories
kindFilter by /v1/equipment-kinds
loadingFilter by /v1/equipment-loadings
ubiquityFilter by /v1/equipment-ubiquities
qSearch labels and ids. Every word must match, and a misspelled one is corrected
cursorContinue from a previous response’s next value

Filters combine. A value outside its vocabulary returns 400 unknown_value with the accepted values.

Search without exact spelling

q matches every word you give it, in any field and any order — not the phrase. So ?q=flat bench finds flat-bench, and adding a word narrows the result rather than emptying it. Ten words is the limit, and an eleventh is refused rather than dropped.

A word that matches nothing is corrected to the nearest one that does. ?q=dumbell returns the dumbbell, and the response says what it changed:

GET https://api.gymassets.dev/v1/equipment?q=dumbell
cURL
curl 'https://api.gymassets.dev/v1/equipment?q=dumbell' \
  -H "Authorization: Bearer $GA_SECRET_KEY"
Response · application/json 200
{
  "data": [ "…" ],
  "corrected": { "dumbell": "dumbbell" }
}

Show what you searched for from corrected rather than repeating the query back.