{
  "openapi": "3.1.1",
  "info": {
    "title": "17x7 API",
    "version": "1.1.0",
    "description": "Free, keyless JSON API behind the 17x7.com calculators and utilities. Every calculator response includes the arithmetic steps. Anonymous use is limited to 60 requests per minute per IP.",
    "contact": {
      "email": "hello@17x7.com",
      "url": "https://17x7.com/contact/"
    }
  },
  "servers": [
    {
      "url": "https://api.17x7.com"
    }
  ],
  "paths": {
    "/api/v1/time/convert": {
      "get": {
        "summary": "Convert a time between IANA time zones",
        "operationId": "convert_time_get",
        "parameters": [
          {
            "name": "time",
            "in": "query",
            "required": false,
            "description": "'now', wall time 'YYYY-MM-DDTHH:mm' in `from`, or an ISO instant with Z/offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Source IANA zone (default UTC)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Target IANA zones: comma-separated in a query string; a string or an array of strings in a JSON body (at most 20). Abbreviations such as BST or EST are refused.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`. `steps` is an empty array for this tool: each zone's `local` time is `instantUtc` plus that zone's `offset`."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      },
      "post": {
        "summary": "Convert a time between IANA time zones",
        "operationId": "convert_time_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "time": {
                    "type": "string",
                    "description": "'now', wall time 'YYYY-MM-DDTHH:mm' in `from`, or an ISO instant with Z/offset"
                  },
                  "from": {
                    "type": "string",
                    "description": "Source IANA zone (default UTC)"
                  },
                  "to": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "maxItems": 20
                      }
                    ],
                    "description": "Target IANA zones: comma-separated in a query string; a string or an array of strings in a JSON body (at most 20). Abbreviations such as BST or EST are refused."
                  }
                },
                "required": [
                  "to"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`. `steps` is an empty array for this tool: each zone's `local` time is `instantUtc` plus that zone's `offset`."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      }
    },
    "/api/v1/cron/explain": {
      "get": {
        "summary": "Explain a cron expression and list next runs",
        "operationId": "explain_cron_get",
        "parameters": [
          {
            "name": "expression",
            "in": "query",
            "required": true,
            "description": "5- or 6-field cron, or @daily-style nickname",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA zone (default UTC); `time_zone` is accepted too. Abbreviations are refused.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "Next runs to list, 1–20 (default 5)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "ISO instant to start from (default now)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`. `steps` is an empty array for this tool: `description` gives the schedule in words and `nextRuns` lists the upcoming times."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      },
      "post": {
        "summary": "Explain a cron expression and list next runs",
        "operationId": "explain_cron_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expression": {
                    "type": "string",
                    "description": "5- or 6-field cron, or @daily-style nickname"
                  },
                  "tz": {
                    "type": "string",
                    "description": "IANA zone (default UTC); `time_zone` is accepted too. Abbreviations are refused."
                  },
                  "count": {
                    "type": "integer",
                    "description": "Next runs to list, 1–20 (default 5)"
                  },
                  "from": {
                    "type": "string",
                    "description": "ISO instant to start from (default now)"
                  }
                },
                "required": [
                  "expression"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`. `steps` is an empty array for this tool: `description` gives the schedule in words and `nextRuns` lists the upcoming times."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      }
    },
    "/api/v1/calc/roof-pitch": {
      "get": {
        "summary": "Roof pitch, angle, rafter length, area, squares",
        "operationId": "roof_pitch_get",
        "parameters": [
          {
            "name": "rise",
            "in": "query",
            "required": false,
            "description": "Rise (same unit as run)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "run",
            "in": "query",
            "required": false,
            "description": "Run (default 12)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "angle",
            "in": "query",
            "required": false,
            "description": "Angle in degrees (instead of rise/run)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "span_ft",
            "in": "query",
            "required": false,
            "description": "Building width, ft",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "length_ft",
            "in": "query",
            "required": false,
            "description": "Building length, ft",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "overhang_in",
            "in": "query",
            "required": false,
            "description": "Overhang, inches",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "ridge_in",
            "in": "query",
            "required": false,
            "description": "Ridge board thickness, inches (default 1.5)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "waste_percent",
            "in": "query",
            "required": false,
            "description": "Shingle waste % (default 10)",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      },
      "post": {
        "summary": "Roof pitch, angle, rafter length, area, squares",
        "operationId": "roof_pitch_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "rise": {
                    "type": "number",
                    "description": "Rise (same unit as run)"
                  },
                  "run": {
                    "type": "number",
                    "description": "Run (default 12)"
                  },
                  "angle": {
                    "type": "number",
                    "description": "Angle in degrees (instead of rise/run)"
                  },
                  "span_ft": {
                    "type": "number",
                    "description": "Building width, ft"
                  },
                  "length_ft": {
                    "type": "number",
                    "description": "Building length, ft"
                  },
                  "overhang_in": {
                    "type": "number",
                    "description": "Overhang, inches"
                  },
                  "ridge_in": {
                    "type": "number",
                    "description": "Ridge board thickness, inches (default 1.5)"
                  },
                  "waste_percent": {
                    "type": "number",
                    "description": "Shingle waste % (default 10)"
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      }
    },
    "/api/v1/calc/deck-materials": {
      "get": {
        "summary": "Deck boards, joists, hangers, fasteners, optional material cost",
        "operationId": "deck_materials_get",
        "parameters": [
          {
            "name": "width_ft",
            "in": "query",
            "required": true,
            "description": "Width along the house, ft",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "depth_ft",
            "in": "query",
            "required": true,
            "description": "Depth from the house, ft",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "board_width_in",
            "in": "query",
            "required": false,
            "description": "Board face width (default 5.5)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "gap_in",
            "in": "query",
            "required": false,
            "description": "Gap between boards (default 0.1875)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "board_length_ft",
            "in": "query",
            "required": false,
            "description": "Stock length; 0 = auto",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "joist_spacing_in",
            "in": "query",
            "required": false,
            "description": "12, 16 or 24 (default 16)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "extra_percent",
            "in": "query",
            "required": false,
            "description": "Extra boards % (default 5)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "layout",
            "in": "query",
            "required": false,
            "description": "straight | diagonal",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "joist_size",
            "in": "query",
            "required": false,
            "description": "2x6 | 2x8 | 2x10 | 2x12 (span check)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fastener",
            "in": "query",
            "required": false,
            "description": "screws | hidden",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "board_price",
            "in": "query",
            "required": false,
            "description": "USD per decking board (optional; adds result.cost)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "joist_price",
            "in": "query",
            "required": false,
            "description": "USD per joist (optional; adds result.cost)",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`. When `board_price` or `joist_price` is given, `result.cost` is `{ boards, joists, total }` in USD (a missing price counts as 0) and a \"Material cost\" step is added."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      },
      "post": {
        "summary": "Deck boards, joists, hangers, fasteners, optional material cost",
        "operationId": "deck_materials_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "width_ft": {
                    "type": "number",
                    "description": "Width along the house, ft"
                  },
                  "depth_ft": {
                    "type": "number",
                    "description": "Depth from the house, ft"
                  },
                  "board_width_in": {
                    "type": "number",
                    "description": "Board face width (default 5.5)"
                  },
                  "gap_in": {
                    "type": "number",
                    "description": "Gap between boards (default 0.1875)"
                  },
                  "board_length_ft": {
                    "type": "number",
                    "description": "Stock length; 0 = auto"
                  },
                  "joist_spacing_in": {
                    "type": "number",
                    "description": "12, 16 or 24 (default 16)"
                  },
                  "extra_percent": {
                    "type": "number",
                    "description": "Extra boards % (default 5)"
                  },
                  "layout": {
                    "type": "string",
                    "description": "straight | diagonal"
                  },
                  "joist_size": {
                    "type": "string",
                    "description": "2x6 | 2x8 | 2x10 | 2x12 (span check)"
                  },
                  "fastener": {
                    "type": "string",
                    "description": "screws | hidden"
                  },
                  "board_price": {
                    "type": "number",
                    "description": "USD per decking board (optional; adds result.cost)"
                  },
                  "joist_price": {
                    "type": "number",
                    "description": "USD per joist (optional; adds result.cost)"
                  }
                },
                "required": [
                  "width_ft",
                  "depth_ft"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`. When `board_price` or `joist_price` is given, `result.cost` is `{ boards, joists, total }` in USD (a missing price counts as 0) and a \"Material cost\" step is added."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      }
    },
    "/api/v1/calc/etsy-fees": {
      "get": {
        "summary": "Etsy fees and profit for one order",
        "operationId": "etsy_fees_get",
        "parameters": [
          {
            "name": "item_price",
            "in": "query",
            "required": true,
            "description": "Item price, in the seller's currency (USD for US sellers)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "shipping_charged",
            "in": "query",
            "required": false,
            "description": "Shipping charged to buyer, seller's currency",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "quantity",
            "in": "query",
            "required": false,
            "description": "Quantity, a whole number (default 1)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sales_tax",
            "in": "query",
            "required": false,
            "description": "Sales tax collected, seller's currency",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "item_cost",
            "in": "query",
            "required": false,
            "description": "Your cost per item, seller's currency",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "shipping_cost",
            "in": "query",
            "required": false,
            "description": "Your postage cost, seller's currency",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "gift_wrap",
            "in": "query",
            "required": false,
            "description": "Gift wrap charged, seller's currency",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "seller_country",
            "in": "query",
            "required": false,
            "description": "Seller bank country code (default US); sets the currency",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offsite_ads",
            "in": "query",
            "required": false,
            "description": "none | 15 | 12",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "international",
            "in": "query",
            "required": false,
            "description": "Buyer in another country (CA/AU/NZ processing); for Canadian sellers US buyers count as domestic",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "share_save",
            "in": "query",
            "required": false,
            "description": "Sale came through your Share & Save link (4% credit)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "currency_conversion",
            "in": "query",
            "required": false,
            "description": "Listing currency differs from your bank currency (2.5%)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      },
      "post": {
        "summary": "Etsy fees and profit for one order",
        "operationId": "etsy_fees_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "item_price": {
                    "type": "number",
                    "description": "Item price, in the seller's currency (USD for US sellers)"
                  },
                  "shipping_charged": {
                    "type": "number",
                    "description": "Shipping charged to buyer, seller's currency"
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Quantity, a whole number (default 1)"
                  },
                  "sales_tax": {
                    "type": "number",
                    "description": "Sales tax collected, seller's currency"
                  },
                  "item_cost": {
                    "type": "number",
                    "description": "Your cost per item, seller's currency"
                  },
                  "shipping_cost": {
                    "type": "number",
                    "description": "Your postage cost, seller's currency"
                  },
                  "gift_wrap": {
                    "type": "number",
                    "description": "Gift wrap charged, seller's currency"
                  },
                  "seller_country": {
                    "type": "string",
                    "description": "Seller bank country code (default US); sets the currency"
                  },
                  "offsite_ads": {
                    "type": "string",
                    "description": "none | 15 | 12"
                  },
                  "international": {
                    "type": "boolean",
                    "description": "Buyer in another country (CA/AU/NZ processing); for Canadian sellers US buyers count as domestic"
                  },
                  "share_save": {
                    "type": "boolean",
                    "description": "Sale came through your Share & Save link (4% credit)"
                  },
                  "currency_conversion": {
                    "type": "boolean",
                    "description": "Listing currency differs from your bank currency (2.5%)"
                  }
                },
                "required": [
                  "item_price"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      }
    },
    "/api/v1/calc/amazon-fba": {
      "get": {
        "summary": "Amazon FBA fees, size tier and margin for one unit",
        "operationId": "amazon_fba_fees_get",
        "parameters": [
          {
            "name": "price",
            "in": "query",
            "required": true,
            "description": "Selling price, USD",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "length_in",
            "in": "query",
            "required": true,
            "description": "Longest side, inches",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "width_in",
            "in": "query",
            "required": true,
            "description": "Median side, inches",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "height_in",
            "in": "query",
            "required": true,
            "description": "Shortest side, inches",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "weight_lb",
            "in": "query",
            "required": true,
            "description": "Unit weight, lb",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Referral category id (default everything-else); the list is also at /api/v1/calc/amazon-fba/categories",
            "schema": {
              "type": "string",
              "enum": [
                "everything-else",
                "beauty-health",
                "baby",
                "grocery",
                "clothing",
                "pet",
                "electronics-accessories",
                "consumer-electronics",
                "computers",
                "full-size-appliances",
                "compact-appliances",
                "furniture",
                "jewelry",
                "watches",
                "automotive",
                "business-industrial",
                "power-tools",
                "3d-printers",
                "lawn-mowers",
                "tires",
                "device-accessories",
                "video-game-consoles",
                "media",
                "video-games"
              ]
            }
          },
          {
            "name": "product_cost",
            "in": "query",
            "required": false,
            "description": "Landed cost, USD",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "inbound_shipping",
            "in": "query",
            "required": false,
            "description": "Per-unit inbound shipping, USD",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "months_stored",
            "in": "query",
            "required": false,
            "description": "Average months in storage, counted back from ship_date (default 1)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "ship_date",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD the unit ships (default today); picks peak or non-peak fulfillment, and each calendar month of storage before it is billed at its own rate",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "peak_season",
            "in": "query",
            "required": false,
            "description": "Force the holiday peak fulfillment rate card; storage still follows the calendar months before ship_date",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "placement_fee",
            "in": "query",
            "required": false,
            "description": "Inbound placement fee per unit, USD (0 for Amazon-optimized splits)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "apparel",
            "in": "query",
            "required": false,
            "description": "Apparel rate card",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      },
      "post": {
        "summary": "Amazon FBA fees, size tier and margin for one unit",
        "operationId": "amazon_fba_fees_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "price": {
                    "type": "number",
                    "description": "Selling price, USD"
                  },
                  "length_in": {
                    "type": "number",
                    "description": "Longest side, inches"
                  },
                  "width_in": {
                    "type": "number",
                    "description": "Median side, inches"
                  },
                  "height_in": {
                    "type": "number",
                    "description": "Shortest side, inches"
                  },
                  "weight_lb": {
                    "type": "number",
                    "description": "Unit weight, lb"
                  },
                  "category": {
                    "type": "string",
                    "enum": [
                      "everything-else",
                      "beauty-health",
                      "baby",
                      "grocery",
                      "clothing",
                      "pet",
                      "electronics-accessories",
                      "consumer-electronics",
                      "computers",
                      "full-size-appliances",
                      "compact-appliances",
                      "furniture",
                      "jewelry",
                      "watches",
                      "automotive",
                      "business-industrial",
                      "power-tools",
                      "3d-printers",
                      "lawn-mowers",
                      "tires",
                      "device-accessories",
                      "video-game-consoles",
                      "media",
                      "video-games"
                    ],
                    "description": "Referral category id (default everything-else); the list is also at /api/v1/calc/amazon-fba/categories"
                  },
                  "product_cost": {
                    "type": "number",
                    "description": "Landed cost, USD"
                  },
                  "inbound_shipping": {
                    "type": "number",
                    "description": "Per-unit inbound shipping, USD"
                  },
                  "months_stored": {
                    "type": "number",
                    "description": "Average months in storage, counted back from ship_date (default 1)"
                  },
                  "ship_date": {
                    "type": "string",
                    "description": "YYYY-MM-DD the unit ships (default today); picks peak or non-peak fulfillment, and each calendar month of storage before it is billed at its own rate"
                  },
                  "peak_season": {
                    "type": "boolean",
                    "description": "Force the holiday peak fulfillment rate card; storage still follows the calendar months before ship_date"
                  },
                  "placement_fee": {
                    "type": "number",
                    "description": "Inbound placement fee per unit, USD (0 for Amazon-optimized splits)"
                  },
                  "apparel": {
                    "type": "boolean",
                    "description": "Apparel rate card"
                  }
                },
                "required": [
                  "price",
                  "length_in",
                  "width_in",
                  "height_in",
                  "weight_lb"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result with `result`, `steps` (the arithmetic) and `notes`."
          },
          "400": {
            "description": "Validation errors: `errors[]` with `field` and `message`."
          },
          "429": {
            "description": "Anonymous rate limit (60/min per IP). Retry-After is set."
          }
        }
      }
    },
    "/api/v1/health": {
      "get": {
        "summary": "Health check",
        "operationId": "health",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/health": {
      "get": {
        "summary": "Health check (alias)",
        "operationId": "health_alias",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    }
  }
}