Hybriqx Workout Adaptation

Adapt an existing workout to equipment, duration goals and movement restrictions. This is the agent API frontdoor, separate from the human browser experience.

Open the human app at /app

Availability and price

Available for paid scaling. Scaler enabled: true; payments enabled: true.

Configured price: $0.05 USDC per scaling request/tool call on eip155:8453. Disabled or unconfigured scaling is unavailable, not a free fallback.

Supported protocols

REST + x402 and MCP only. No A2A endpoint or A2A Agent Card conformance. The legacy agent-card URL is a custom descriptor.

Paid HTTP routes: POST /api/v1/scale-wod and POST /v1/wod/scale (aliases, not two different products).

MCP: https://www.hybriqx.com/mcp/, stateless Streamable HTTP. service_info is free metadata; scale_workout requires an x402-capable wallet client and explicit spending approval. Documentation does not automatically pay or execute a workout.

Inspect actual payment requirements and verify the same-host resource, price, network, asset and receiver before paying. No wallet keys belong in requests.

Documentation

Install the buyer client and try offline

Public buyer client (MIT): https://github.com/LKennedyShare/hybriqx-workout-assistant
Install from Git (no PyPI publication claim):
python -m pip install "git+https://github.com/LKennedyShare/hybriqx-workout-assistant.git"
Offline demo (synthetic fixture; no network, model call or payment):
python -m hybriqx_workout_assistant --demo
The client cap is at most 0.05 USDC per paid attempt and per in-memory session; a runtime price above the cap is refused, not automatically approved. LangChain and OpenAI Agents integrations require optional langchain/openai extras. Paid framework tools are disabled unless a trusted operator approval_policy is supplied; model arguments cannot authorize spending. Reuse the tool factory for session limits; production needs a durable external budget/approval ledger. No automatic paid retries. This is a buyer client, not an MCP server or A2A agent.

The priced-resource list is local service discovery, not a facilitator index. The browser app's internal APIs and generated workouts are not this paid surface.

Privacy and human review

athlete_notes is optional. Submitted workout text, equipment and notes are sent to the configured Google Gemini model. Do not send personal or health information without the athlete's informed consent and appropriate data-handling authorization.

Model-generated adaptations are not medical advice or medically approved workouts. Equipment checks are bounded and cannot verify all movement, medical, or duration constraints. Human review is required, especially for injuries or restrictions. Do not exercise through pain; seek appropriate professional guidance.

Static illustration

SYNTHETIC_ILLUSTRATION: static request/response contract illustration only. Not executed, not a paid result, not a verified duration, and not medically approved. execution_time_ms=0.0 is a placeholder, not a latency measurement.

{
  "request": {
    "original_wod": "5 rounds: 10 deadlifts (100 kg), 15 box jumps",
    "available_equipment": [
      "Dumbbells (22.5 kg)",
      "SkiErg"
    ],
    "target_time_domain_mins": 15,
    "athlete_notes": null
  },
  "response": {
    "scaled_wod": "5 rounds: 10 dumbbell deadlifts (2 x 22.5 kg), 15 air squats",
    "movement_substitutions": [
      "Barbell deadlift -> dumbbell deadlift",
      "Box jumps -> air squats (bodyweight; no box required)"
    ],
    "target_stimulus": "Illustrative steady effort with posterior-chain and leg volume; not a verified equivalent stimulus or duration.",
    "execution_time_ms": 0.0
  }
}
Request and response JSON schemas
{
  "request": {
    "additionalProperties": false,
    "properties": {
      "original_wod": {
        "description": "Raw text of the WOD to scale",
        "maxLength": 5000,
        "minLength": 1,
        "title": "Original Wod",
        "type": "string"
      },
      "available_equipment": {
        "description": "Equipment currently available",
        "items": {
          "type": "string"
        },
        "maxItems": 50,
        "title": "Available Equipment",
        "type": "array"
      },
      "target_time_domain_mins": {
        "anyOf": [
          {
            "maximum": 240,
            "minimum": 1,
            "type": "integer"
          },
          {
            "type": "null"
          }
        ],
        "default": 15,
        "description": "Target cap/duration",
        "title": "Target Time Domain Mins"
      },
      "athlete_notes": {
        "anyOf": [
          {
            "maxLength": 1000,
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null,
        "description": "Injuries or movement restrictions",
        "title": "Athlete Notes"
      }
    },
    "required": [
      "original_wod",
      "available_equipment"
    ],
    "title": "WODScalingRequest",
    "type": "object"
  },
  "response": {
    "additionalProperties": false,
    "properties": {
      "scaled_wod": {
        "description": "The adjusted, scaled WOD workout text",
        "minLength": 1,
        "title": "Scaled Wod",
        "type": "string"
      },
      "movement_substitutions": {
        "description": "Specific movement swaps made",
        "items": {
          "type": "string"
        },
        "title": "Movement Substitutions",
        "type": "array"
      },
      "target_stimulus": {
        "description": "Energy system and pacing intent",
        "minLength": 1,
        "title": "Target Stimulus",
        "type": "string"
      },
      "execution_time_ms": {
        "description": "Latency in milliseconds",
        "minimum": 0,
        "title": "Execution Time Ms",
        "type": "number"
      }
    },
    "required": [
      "scaled_wod",
      "movement_substitutions",
      "target_stimulus",
      "execution_time_ms"
    ],
    "title": "WODScalingResponse",
    "type": "object"
  }
}