{
  "info": {
    "name": "WorkoutDB API",
    "description": "The exercise database API, done right — combinable filters, ranked fuzzy + full-text search, and English/Spanish content.\n\nSet the `apiKey` collection variable to your WorkoutDB key (Dashboard → Keys). `baseUrl` defaults to http://localhost:3100; point it at your deployment (production: https://api.work-out-db.com, once live).",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-API-Key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{apiKey}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:3100",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Exercises",
      "item": [
        {
          "name": "Ranked search (trigram similarity + full-text rank, accent-insensitive)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/exercises/search?bodyPart=chest&target=&equipment=dumbbell&muscle=&category=strength&difficulty=beginner&force=push&mechanic=compound&q=press&sort=name&order=asc&offset=0&limit=10&cursor=&lang=en",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "exercises",
                "search"
              ],
              "query": [
                {
                  "key": "bodyPart",
                  "value": "chest",
                  "disabled": true,
                  "description": "Filter by body part slug (see /v1/bodyparts). (string)"
                },
                {
                  "key": "target",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by primary target muscle slug. (string)"
                },
                {
                  "key": "equipment",
                  "value": "dumbbell",
                  "disabled": true,
                  "description": "Filter by equipment slug (see /v1/equipment). (string)"
                },
                {
                  "key": "muscle",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by any involved muscle slug (see /v1/muscles). (string)"
                },
                {
                  "key": "category",
                  "value": "strength",
                  "disabled": true,
                  "description": "Filter by category. (string; one of: strength, cardio, mobility, stretching, plyometrics)"
                },
                {
                  "key": "difficulty",
                  "value": "beginner",
                  "disabled": true,
                  "description": "Filter by difficulty. (string; one of: beginner, intermediate, advanced)"
                },
                {
                  "key": "force",
                  "value": "push",
                  "disabled": true,
                  "description": "Filter by force type. (string; one of: push, pull, static)"
                },
                {
                  "key": "mechanic",
                  "value": "compound",
                  "disabled": true,
                  "description": "Filter by mechanic. (string; one of: compound, isolation)"
                },
                {
                  "key": "q",
                  "value": "press",
                  "disabled": false,
                  "description": "Free-text query — fuzzy + full-text, accent-insensitive. (string; required)"
                },
                {
                  "key": "sort",
                  "value": "name",
                  "disabled": true,
                  "description": "Sort field. (string; one of: name, difficulty; default name)"
                },
                {
                  "key": "order",
                  "value": "asc",
                  "disabled": true,
                  "description": "Sort direction. (string; one of: asc, desc; default asc)"
                },
                {
                  "key": "offset",
                  "value": "0",
                  "disabled": true,
                  "description": "Offset-based pagination start. (integer,null; default 0)"
                },
                {
                  "key": "limit",
                  "value": "10",
                  "disabled": true,
                  "description": "Page size (plan-capped). (integer; default 10)"
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "Opaque pagination cursor (preferred over offset). (string)"
                },
                {
                  "key": "lang",
                  "value": "en",
                  "disabled": true,
                  "description": "Response language. (string; one of: en, es)"
                }
              ]
            },
            "description": "Ranked search (trigram similarity + full-text rank, accent-insensitive)"
          },
          "response": []
        },
        {
          "name": "List/filter exercises (combinable query params)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/exercises?bodyPart=chest&target=&equipment=dumbbell&muscle=&category=strength&difficulty=beginner&force=push&mechanic=compound&q=press&sort=name&order=asc&offset=0&limit=10&cursor=&lang=en",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "exercises"
              ],
              "query": [
                {
                  "key": "bodyPart",
                  "value": "chest",
                  "disabled": true,
                  "description": "Filter by body part slug (see /v1/bodyparts). (string)"
                },
                {
                  "key": "target",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by primary target muscle slug. (string)"
                },
                {
                  "key": "equipment",
                  "value": "dumbbell",
                  "disabled": true,
                  "description": "Filter by equipment slug (see /v1/equipment). (string)"
                },
                {
                  "key": "muscle",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by any involved muscle slug (see /v1/muscles). (string)"
                },
                {
                  "key": "category",
                  "value": "strength",
                  "disabled": true,
                  "description": "Filter by category. (string; one of: strength, cardio, mobility, stretching, plyometrics)"
                },
                {
                  "key": "difficulty",
                  "value": "beginner",
                  "disabled": true,
                  "description": "Filter by difficulty. (string; one of: beginner, intermediate, advanced)"
                },
                {
                  "key": "force",
                  "value": "push",
                  "disabled": true,
                  "description": "Filter by force type. (string; one of: push, pull, static)"
                },
                {
                  "key": "mechanic",
                  "value": "compound",
                  "disabled": true,
                  "description": "Filter by mechanic. (string; one of: compound, isolation)"
                },
                {
                  "key": "q",
                  "value": "press",
                  "disabled": true,
                  "description": "Free-text query — fuzzy + full-text, accent-insensitive. (string)"
                },
                {
                  "key": "sort",
                  "value": "name",
                  "disabled": true,
                  "description": "Sort field. (string; one of: name, difficulty; default name)"
                },
                {
                  "key": "order",
                  "value": "asc",
                  "disabled": true,
                  "description": "Sort direction. (string; one of: asc, desc; default asc)"
                },
                {
                  "key": "offset",
                  "value": "0",
                  "disabled": true,
                  "description": "Offset-based pagination start. (integer,null; default 0)"
                },
                {
                  "key": "limit",
                  "value": "10",
                  "disabled": true,
                  "description": "Page size (plan-capped). (integer; default 10)"
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "Opaque pagination cursor (preferred over offset). (string)"
                },
                {
                  "key": "lang",
                  "value": "en",
                  "disabled": true,
                  "description": "Response language. (string; one of: en, es)"
                }
              ]
            },
            "description": "List/filter exercises (combinable query params)"
          },
          "response": []
        },
        {
          "name": "Get one exercise by cuid or slug",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/exercises/:idOrSlug?lang=en",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "exercises",
                ":idOrSlug"
              ],
              "query": [
                {
                  "key": "lang",
                  "value": "en",
                  "disabled": true,
                  "description": "Response language. (string; one of: en, es)"
                }
              ],
              "variable": [
                {
                  "key": "idOrSlug",
                  "value": "bench-press",
                  "description": "Exercise cuid or slug. (string; required)"
                }
              ]
            },
            "description": "Get one exercise by cuid or slug"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Taxonomies",
      "item": [
        {
          "name": "List body parts (localized)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/bodyparts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "bodyparts"
              ]
            },
            "description": "List body parts (localized)"
          },
          "response": []
        },
        {
          "name": "List muscles (localized)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/muscles",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "muscles"
              ]
            },
            "description": "List muscles (localized)"
          },
          "response": []
        },
        {
          "name": "List equipment (localized)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/equipment",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "equipment"
              ]
            },
            "description": "List equipment (localized)"
          },
          "response": []
        },
        {
          "name": "List categories (localized)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/categories",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "categories"
              ]
            },
            "description": "List categories (localized)"
          },
          "response": []
        }
      ]
    },
    {
      "name": "Meta",
      "item": [
        {
          "name": "Counts + every filterable value in one call (app-bootstrap friendly)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/meta",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "meta"
              ]
            },
            "description": "Counts + every filterable value in one call (app-bootstrap friendly)"
          },
          "response": []
        }
      ]
    }
  ]
}
