{
  "openapi": "3.1.0",
  "info": {
    "title": "Lift links and guides",
    "version": "1.0.0",
    "description": "Lift is a free workout log. It has no API for workout data, on purpose: a person's log is private to them. This file lists the only public addresses meant for assistants and crawlers: the guides, and links that open a routine or the plate calculator for a person to check. Opening a link saves nothing. Lift is a log, not a coach, and gives no medical or training advice."
  },
  "servers": [{ "url": "https://lift-free.openapps.xyz" }],
  "paths": {
    "/llms.txt": {
      "get": {
        "summary": "Guide for assistants",
        "description": "Plain text: what Lift does, the routine link format, the ready-made templates and every exercise id.",
        "responses": { "200": { "description": "The guide.", "content": { "text/plain": { "schema": { "type": "string" } } } } }
      }
    },
    "/index.md": {
      "get": {
        "summary": "Landing page as markdown",
        "responses": { "200": { "description": "The landing page.", "content": { "text/markdown": { "schema": { "type": "string" } } } } }
      }
    },
    "/r": {
      "get": {
        "summary": "Open a routine for a person to check",
        "description": "Returns the Lift app, which shows the routine read-only. The person taps Start workout or Save to my routines; nothing is saved until they do. Routine links carry no weights or history.",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": true,
            "description": "Routine name, up to 60 characters, URL-encoded.",
            "schema": { "type": "string", "maxLength": 60 }
          },
          {
            "name": "e",
            "in": "query",
            "required": true,
            "description": "Exercises in order, separated by commas, up to 40. Each is an exercise id from llms.txt followed by colon-separated parts: 4x6-8 (sets and reps), 3x30s (timed sets), w2 (warm-up sets), r150 (rest in seconds), s1 (superset group). Example: bench-press:w2:4x6-8:r150,overhead-press:3x8-10:r120",
            "schema": { "type": "string" }
          },
          {
            "name": "note",
            "in": "query",
            "required": false,
            "description": "Optional note shown above the exercises, up to 300 characters.",
            "schema": { "type": "string", "maxLength": 300 }
          }
        ],
        "responses": { "200": { "description": "The Lift app, showing the routine.", "content": { "text/html": { "schema": { "type": "string" } } } } }
      }
    },
    "/plates": {
      "get": {
        "summary": "Open the plate calculator",
        "parameters": [
          { "name": "w", "in": "query", "required": false, "description": "Target bar weight.", "schema": { "type": "number" } },
          { "name": "unit", "in": "query", "required": false, "schema": { "type": "string", "enum": ["kg", "lb"] } }
        ],
        "responses": { "200": { "description": "The Lift app, showing the plates to load.", "content": { "text/html": { "schema": { "type": "string" } } } } }
      }
    }
  }
}
