{
  "openapi": "3.1.1",
  "info": {
    "title": "Section Properties Calculator: Area, Moments of Inertia, Torsion Constant API",
    "version": "1.0.0",
    "summary": "A, Iy, Iz, J and section moduli of rectangles, round bars, tubes, box and I-sections.",
    "description": "Every endpoint performs the same calculation as the human page and returns inputs, result, units, assumptions, sources, warnings and computedAt. MCP endpoint: /mcp."
  },
  "servers": [
    {
      "url": "https://prooflinesectionproperties.usefulweb.app"
    }
  ],
  "paths": {
    "/api/v1/calculate": {
      "post": {
        "operationId": "calculate",
        "summary": "A, Iy, Iz, J and section moduli of rectangles, round bars, tubes, box and I-sections.",
        "description": "Enter the shape and dimensions of a beam cross-section — solid rectangle, solid circle, circular tube, rectangular hollow section or doubly symmetric I-section — and get the area, the second moments of area about both axes, the St. Venant torsion constant, the elastic section moduli, the torsion modulus, the radii of gyration and, with a typical steel, stainless, aluminium or timber material, the mass per metre and the bending and torsional stiffness. A drawing shows the section with its local axes, and a ready line feeds the 3-D frame model of Proofline’s truss and frame solver. Part of the Proofline math notebook.\n\nMethodology:\n- Local axes as in Eurocode 3: y across the width b, z along the depth h, so Iy is the strong axis of an upright rectangle or I-section. A, Iy and Iz from the exact formulas of each shape (I-sections and box sections without root or corner radii).\n- Torsion: circles and tubes J = πd⁴/32 (difference for the tube), τ = T·r/J; solid rectangles by Roark’s formulas, J = a·c³·[1/3 − 0.21·(c/a)·(1 − c⁴/(12a⁴))] and τmax = 3T/(a·c²)·[1 + 0.6095r + 0.8865r² − 1.8023r³ + 0.9100r⁴]; box sections by Bredt’s thin-wall formula J = 4Am²t/p; I-sections as thin open rectangles J = (2·b·tf³ + (h − 2tf)·tw³)/3, warping ignored.\n- Section moduli W = I/(distance to the extreme fibre), torsion modulus Wt = T/τmax, radii of gyration i = √(I/A); with a material the mass per metre ρ·A and the stiffnesses E·I and G·J.\n- Verified against closed forms (b·h³/12, πd⁴/64), the square-bar torsion constant 0.1406·a⁴ and τmax = T/(0.208·a³), Bredt’s formula for a thin square tube and steel-table values of IPE 200 (Iz 142 cm⁴; A and Iy within 6 % because of the fillets).\n\nNominal geometry without fillets, corner radii or tolerances; open sections ignore warping torsion. Material values are typical, not those of a certified grade. Use the manufacturer’s section tables for design.",
        "tags": [
          "apps"
        ],
        "x-mcp-tool": "proofline_section_properties",
        "x-owner-app": "proofline",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProoflineSectionPropertiesInput"
              },
              "examples": {
                "example1": {
                  "summary": "I-section like an IPE 200 (100 × 200, tf 8.5, tw 5.6)",
                  "value": {
                    "shape": "i",
                    "b": 100,
                    "h": 200,
                    "tf": 8.5,
                    "tw": 5.6,
                    "material": "steel",
                    "name": "IPE200"
                  }
                },
                "example2": {
                  "summary": "Timber joist 100 × 200 mm, C24",
                  "value": {
                    "shape": "rect",
                    "b": 100,
                    "h": 200,
                    "material": "timber",
                    "name": "C24"
                  }
                },
                "example3": {
                  "summary": "Steel tube 88.9 × 4 mm",
                  "value": {
                    "shape": "tube",
                    "d": 88.9,
                    "t": 4,
                    "material": "steel",
                    "name": "CHS89"
                  }
                },
                "example4": {
                  "summary": "Aluminium box section 100 × 50 × 4 mm",
                  "value": {
                    "shape": "rhs",
                    "b": 50,
                    "h": 100,
                    "t": 4,
                    "material": "aluminium",
                    "name": "RHS"
                  }
                },
                "example5": {
                  "summary": "Solid round bar 30 mm, stainless",
                  "value": {
                    "shape": "circle",
                    "d": 30,
                    "material": "stainless",
                    "name": "BAR30"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Calculation result envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProoflineSectionPropertiesResult"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON body.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "422": {
            "description": "Invalid input (see errors[]).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (see Retry-After).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tool": {
      "get": {
        "operationId": "getToolDefinition",
        "summary": "Inputs, output schema and examples for this tool",
        "responses": {
          "200": {
            "description": "Tool definition.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Problem": {
        "type": "object",
        "description": "RFC 9457 problem details. 422 responses include per-field `errors`.",
        "required": [
          "type",
          "title",
          "status",
          "detail"
        ],
        "properties": {
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "detail": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "field",
                "message"
              ],
              "properties": {
                "field": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "ProoflineSectionPropertiesInput": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "shape": {
            "title": "Shape",
            "type": "string",
            "enum": [
              "rect",
              "circle",
              "tube",
              "rhs",
              "i"
            ],
            "default": "rect"
          },
          "b": {
            "title": "Width b",
            "description": "Rectangle, hollow section and I-section: the width along the local y axis (flange width of an I-section).",
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "x-unit": "mm"
          },
          "h": {
            "title": "Depth h",
            "description": "Rectangle, hollow section and I-section: the depth along the local z axis.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "x-unit": "mm"
          },
          "d": {
            "title": "Diameter d",
            "description": "Circle and tube: the outside diameter.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "x-unit": "mm"
          },
          "t": {
            "title": "Wall thickness t",
            "description": "Tube and hollow section.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "x-unit": "mm"
          },
          "tf": {
            "title": "Flange thickness tf",
            "description": "I-section.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "x-unit": "mm"
          },
          "tw": {
            "title": "Web thickness tw",
            "description": "I-section.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "x-unit": "mm"
          },
          "material": {
            "title": "Material",
            "description": "Typical values for the mass per metre and the stiffnesses EI and GJ.",
            "type": "string",
            "enum": [
              "steel",
              "s355",
              "stainless",
              "aluminium",
              "timber",
              "none"
            ],
            "default": "steel"
          },
          "name": {
            "title": "Section name for the frame model",
            "type": "string",
            "maxLength": 24,
            "default": "S1"
          }
        },
        "required": []
      },
      "ProoflineSectionPropertiesResult": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schemaVersion",
          "tool",
          "computedAt",
          "inputs",
          "summary",
          "result",
          "units",
          "assumptions",
          "sources",
          "warnings",
          "presentation",
          "links"
        ],
        "properties": {
          "schemaVersion": {
            "type": "string",
            "const": "1.0"
          },
          "tool": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "version"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "version": {
                "type": "string"
              }
            }
          },
          "computedAt": {
            "type": "string",
            "format": "date-time"
          },
          "inputs": {
            "type": "object",
            "description": "Normalised inputs actually used, including applied defaults."
          },
          "summary": {
            "type": "string"
          },
          "result": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "shape",
              "dims",
              "A",
              "Iy",
              "Iz",
              "J",
              "Wy",
              "Wz",
              "Wt",
              "iy",
              "iz",
              "zMax",
              "yMax",
              "material",
              "massPerMetre",
              "EIy",
              "EIz",
              "GJ",
              "modelLine"
            ],
            "properties": {
              "shape": {
                "type": "string",
                "enum": [
                  "rect",
                  "circle",
                  "tube",
                  "rhs",
                  "i"
                ]
              },
              "dims": {
                "type": "object",
                "additionalProperties": {
                  "type": "number"
                },
                "description": "Dimensions used, mm."
              },
              "A": {
                "type": "number",
                "description": "Area, cm²."
              },
              "Iy": {
                "type": "number",
                "description": "Second moment of area about the local y axis (horizontal), cm⁴."
              },
              "Iz": {
                "type": "number",
                "description": "Second moment about the local z axis, cm⁴."
              },
              "J": {
                "type": "number",
                "description": "St. Venant torsion constant, cm⁴."
              },
              "Wy": {
                "type": "number",
                "description": "Elastic section modulus Iy/zmax, cm³."
              },
              "Wz": {
                "type": "number",
                "description": "Elastic section modulus Iz/ymax, cm³."
              },
              "Wt": {
                "type": "number",
                "description": "Torsion modulus T/τmax, cm³."
              },
              "iy": {
                "type": "number",
                "description": "Radius of gyration, mm."
              },
              "iz": {
                "type": "number"
              },
              "zMax": {
                "type": "number"
              },
              "yMax": {
                "type": "number"
              },
              "material": {
                "type": [
                  "object",
                  "null"
                ],
                "additionalProperties": false,
                "required": [
                  "id",
                  "name",
                  "E",
                  "G",
                  "fy",
                  "rho"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "E": {
                    "type": "number"
                  },
                  "G": {
                    "type": "number"
                  },
                  "fy": {
                    "type": "number"
                  },
                  "rho": {
                    "type": "number"
                  }
                }
              },
              "massPerMetre": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "kg/m."
              },
              "EIy": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "kN·m²."
              },
              "EIz": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "GJ": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "modelLine": {
                "type": "string",
                "description": "Section line for the 3-D frame model of proofline-truss-frame-solver."
              }
            }
          },
          "units": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "assumptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "title"
              ],
              "properties": {
                "title": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "publisher": {
                  "type": "string"
                },
                "retrievedAt": {
                  "type": "string"
                },
                "note": {
                  "type": "string"
                }
              }
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "presentation": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "description": "Display blocks used by the human page (same data)."
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "human",
              "api",
              "openapi",
              "methodology"
            ],
            "properties": {
              "human": {
                "type": "string",
                "format": "uri"
              },
              "api": {
                "type": "string",
                "format": "uri"
              },
              "openapi": {
                "type": "string",
                "format": "uri"
              },
              "methodology": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        }
      }
    }
  }
}