{
  "x402Version": 2,
  "id": 42659,
  "slug": "42659",
  "resource": "https://wod-api-production.up.railway.app/wod/custom",
  "description": "WOD Coach: a personalised training programme by an AI coach for $0.35 USDC on Base. Handles injuries with enforced movement substitutions, custom equipment lists, single sessions or 3–8 week progressive blocks (Baseline → Volume → Intensity → Deload). JSON body: equipment, user_context, duration. Returns Markdown, or JSON with ?format=json.",
  "type": "http",
  "serviceName": "WOD Coach",
  "resourceType": "Utilities",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x0395c1bed0b83ad6f0329b4132191934733e637c",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "350000",
      "amountUsd": 0.35,
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "properties": {
      "example": {
        "properties": {
          "constraints": {
            "description": "What the coach extracted and enforced",
            "properties": {
              "contraindicated": {
                "description": "Movements guaranteed absent from the prescribed work",
                "items": {
                  "type": "object"
                },
                "type": "array"
              },
              "equipment_inventory": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "experience_level": {
                "type": "string"
              },
              "goals": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "injuries": {
                "items": {
                  "type": "object"
                },
                "type": "array"
              },
              "needs_medical_clearance": {
                "type": "boolean"
              },
              "red_flags": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "substitutions": {
                "items": {
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "duration": {
            "enum": [
              "single",
              "multi_week"
            ],
            "type": "string"
          },
          "markdown": {
            "description": "Full programme. Sections: Overview, Warm-Up, Main Work, Progression & Scaling Guidelines, Injury Modification Notes, Safety",
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "weeks": {
            "type": "integer"
          }
        },
        "required": [
          "markdown",
          "title",
          "duration",
          "constraints"
        ],
        "type": "object"
      },
      "type": {
        "type": "string"
      }
    },
    "required": [
      "type"
    ],
    "type": "object"
  },
  "extensions": {
    "bazaar": {
      "discoverable": true,
      "info": {
        "input": {
          "body": {
            "duration": "multi_week",
            "equipment": [
              "50lb dumbbells",
              "pull-up bar",
              "resistance bands"
            ],
            "session_minutes": 60,
            "sessions_per_week": 3,
            "user_context": "Intermediate, 3 years CrossFit. Left shoulder impingement, focus on lower body & engine, avoid heavy overhead pressing.",
            "weeks": 4
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "example": {
            "constraints": {
              "contraindicated": [
                {
                  "movement": "Barbell Overhead Press",
                  "reason": "loads the impinged range"
                }
              ],
              "equipment_inventory": [
                "50lb dumbbells",
                "pull-up bar",
                "resistance bands"
              ],
              "experience_level": "intermediate",
              "goals": [
                "lower body strength",
                "aerobic engine"
              ],
              "injuries": [
                {
                  "area": "left shoulder",
                  "condition": "impingement"
                }
              ],
              "needs_medical_clearance": false,
              "red_flags": [],
              "substitutions": [
                {
                  "avoid": "Barbell Overhead Press",
                  "use": "Landmine Press",
                  "why": "safer arc"
                }
              ]
            },
            "duration": "multi_week",
            "markdown": "# 4-Week Lower Body & Engine Block (Shoulder-Safe)\n\n## Overview\n- …\n\n## Warm-Up\n- …\n\n## Main Work\n### Week 1: Baseline\n#### Session 1: Posterior Chain\n- **DB Romanian Deadlift**: 4 × 8 @ RPE 7, rest 90 s\n…\n### Week 4: Deload\n…\n\n## Progression & Scaling Guidelines\n- …\n\n## Injury Modification Notes\n- Avoid: Barbell Overhead Press → Do instead: Landmine Press (neutral-grip, below-shoulder path)\n\n## Safety\n- …",
            "model": "gemini-flash-latest",
            "title": "4-Week Lower Body & Engine Block (Shoulder-Safe)",
            "weeks": 4
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "properties": {
                  "duration": {
                    "default": "single",
                    "description": "single = one session; multi_week = a progressive block whose phases are fixed by week count, e.g. 4 weeks = Baseline → Volume → Intensity → Deload",
                    "enum": [
                      "single",
                      "multi_week"
                    ],
                    "type": "string"
                  },
                  "equipment": {
                    "anyOf": [
                      {
                        "items": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "additionalProperties": true,
                              "type": "object"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "description": "Available equipment as a list (e.g. [\"50lb dumbbells\", \"pull-up bar\"]) or a comma-separated string. Use \"bodyweight only\" if none."
                  },
                  "session_minutes": {
                    "default": 60,
                    "maximum": 120,
                    "minimum": 20,
                    "type": "integer"
                  },
                  "sessions_per_week": {
                    "default": 3,
                    "maximum": 6,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "user_context": {
                    "description": "Fitness level, goals, injuries and modifications.",
                    "maxLength": 2000,
                    "minLength": 3,
                    "type": "string"
                  },
                  "weeks": {
                    "default": 4,
                    "description": "multi_week only",
                    "maximum": 8,
                    "minimum": 3,
                    "type": "integer"
                  }
                },
                "required": [
                  "equipment",
                  "user_context"
                ],
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              },
              "method": {
                "enum": [
                  "POST",
                  "PUT",
                  "PATCH"
                ],
                "type": "string"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "properties": {
                  "constraints": {
                    "description": "What the coach extracted and enforced",
                    "properties": {
                      "contraindicated": {
                        "description": "Movements guaranteed absent from the prescribed work",
                        "items": {
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "equipment_inventory": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "experience_level": {
                        "type": "string"
                      },
                      "goals": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "injuries": {
                        "items": {
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "needs_medical_clearance": {
                        "type": "boolean"
                      },
                      "red_flags": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "substitutions": {
                        "items": {
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "duration": {
                    "enum": [
                      "single",
                      "multi_week"
                    ],
                    "type": "string"
                  },
                  "markdown": {
                    "description": "Full programme. Sections: Overview, Warm-Up, Main Work, Progression & Scaling Guidelines, Injury Modification Notes, Safety",
                    "type": "string"
                  },
                  "model": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "weeks": {
                    "type": "integer"
                  }
                },
                "required": [
                  "markdown",
                  "title",
                  "duration",
                  "constraints"
                ],
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "workout_generator",
    "fitness_coaching",
    "hyrox_programming",
    "custom_wod",
    "bazaar"
  ],
  "sourceHost": "wod-api-production.up.railway.app",
  "lastUpdated": "2026-10-12T22:48:59.675Z",
  "quality": {
    "calls30d": 1,
    "uniquePayers30d": 1,
    "lastCalledAt": "2026-10-12T22:48:59.516Z"
  },
  "metadata": {
    "serviceName": "WOD Coach",
    "extensions": {
      "bazaar": {
        "discoverable": true,
        "info": {
          "input": {
            "body": {
              "duration": "multi_week",
              "equipment": [
                "50lb dumbbells",
                "pull-up bar",
                "resistance bands"
              ],
              "session_minutes": 60,
              "sessions_per_week": 3,
              "user_context": "Intermediate, 3 years CrossFit. Left shoulder impingement, focus on lower body & engine, avoid heavy overhead pressing.",
              "weeks": 4
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "example": {
              "constraints": {
                "contraindicated": [
                  {
                    "movement": "Barbell Overhead Press",
                    "reason": "loads the impinged range"
                  }
                ],
                "equipment_inventory": [
                  "50lb dumbbells",
                  "pull-up bar",
                  "resistance bands"
                ],
                "experience_level": "intermediate",
                "goals": [
                  "lower body strength",
                  "aerobic engine"
                ],
                "injuries": [
                  {
                    "area": "left shoulder",
                    "condition": "impingement"
                  }
                ],
                "needs_medical_clearance": false,
                "red_flags": [],
                "substitutions": [
                  {
                    "avoid": "Barbell Overhead Press",
                    "use": "Landmine Press",
                    "why": "safer arc"
                  }
                ]
              },
              "duration": "multi_week",
              "markdown": "# 4-Week Lower Body & Engine Block (Shoulder-Safe)\n\n## Overview\n- …\n\n## Warm-Up\n- …\n\n## Main Work\n### Week 1: Baseline\n#### Session 1: Posterior Chain\n- **DB Romanian Deadlift**: 4 × 8 @ RPE 7, rest 90 s\n…\n### Week 4: Deload\n…\n\n## Progression & Scaling Guidelines\n- …\n\n## Injury Modification Notes\n- Avoid: Barbell Overhead Press → Do instead: Landmine Press (neutral-grip, below-shoulder path)\n\n## Safety\n- …",
              "model": "gemini-flash-latest",
              "title": "4-Week Lower Body & Engine Block (Shoulder-Safe)",
              "weeks": 4
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "properties": {
                    "duration": {
                      "default": "single",
                      "description": "single = one session; multi_week = a progressive block whose phases are fixed by week count, e.g. 4 weeks = Baseline → Volume → Intensity → Deload",
                      "enum": [
                        "single",
                        "multi_week"
                      ],
                      "type": "string"
                    },
                    "equipment": {
                      "anyOf": [
                        {
                          "items": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "additionalProperties": true,
                                "type": "object"
                              }
                            ]
                          },
                          "type": "array"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "description": "Available equipment as a list (e.g. [\"50lb dumbbells\", \"pull-up bar\"]) or a comma-separated string. Use \"bodyweight only\" if none."
                    },
                    "session_minutes": {
                      "default": 60,
                      "maximum": 120,
                      "minimum": 20,
                      "type": "integer"
                    },
                    "sessions_per_week": {
                      "default": 3,
                      "maximum": 6,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "user_context": {
                      "description": "Fitness level, goals, injuries and modifications.",
                      "maxLength": 2000,
                      "minLength": 3,
                      "type": "string"
                    },
                    "weeks": {
                      "default": 4,
                      "description": "multi_week only",
                      "maximum": 8,
                      "minimum": 3,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "equipment",
                    "user_context"
                  ],
                  "type": "object"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST",
                    "PUT",
                    "PATCH"
                  ],
                  "type": "string"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "properties": {
                    "constraints": {
                      "description": "What the coach extracted and enforced",
                      "properties": {
                        "contraindicated": {
                          "description": "Movements guaranteed absent from the prescribed work",
                          "items": {
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "equipment_inventory": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "experience_level": {
                          "type": "string"
                        },
                        "goals": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "injuries": {
                          "items": {
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "needs_medical_clearance": {
                          "type": "boolean"
                        },
                        "red_flags": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "substitutions": {
                          "items": {
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "duration": {
                      "enum": [
                        "single",
                        "multi_week"
                      ],
                      "type": "string"
                    },
                    "markdown": {
                      "description": "Full programme. Sections: Overview, Warm-Up, Main Work, Progression & Scaling Guidelines, Injury Modification Notes, Safety",
                      "type": "string"
                    },
                    "model": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "weeks": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "markdown",
                    "title",
                    "duration",
                    "constraints"
                  ],
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "wod-api-production.up.railway.app",
    "manifest_name": "wod-api-production.up.railway.app",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "example": {
      "constraints": {
        "contraindicated": [
          {}
        ],
        "equipment_inventory": [
          "string"
        ],
        "experience_level": "string",
        "goals": [
          "string"
        ],
        "injuries": [
          {}
        ],
        "needs_medical_clearance": true,
        "red_flags": [
          "string"
        ],
        "substitutions": [
          {}
        ]
      },
      "duration": "single",
      "markdown": "string",
      "model": "string",
      "title": "string",
      "weeks": 0
    },
    "type": "string"
  }
}