API de StructureCalcs

El mismo solucionador que impulsa el sitio: resuelva vigas y celosías, consulte 2.686 perfiles de acero y genere diagramas, todo por HTTP. Pensado para asistentes de IA, ingenieros, estudiantes e instituciones.

Inicio rápido

Cargas: negativo = hacia abajo. Una carga uniformemente distribuida hacia abajo se escribe start: -10: es el único convenio que hay que conocer antes de la primera llamada. Abajo, una llamada completa y funcional: una viga simplemente apoyada de 6 m con una carga uniformemente distribuida de 10 kN/m. No hace falta clave; el nivel anónimo gratuito responde de inmediato. El mismo motor impulsa el sitio: cómo se verifican los números.

curl -X POST https://api.structurecalcs.com/v1/beam/solve \
  -H 'Content-Type: application/json' \
  -d '{
    "units": "SI",
    "spans":    [{ "length": 6, "E": 200, "I": 1e8 }],
    "supports": [{ "type": "pin", "position": 0 },
                 { "type": "roller", "position": 6 }],
    "loads":    [{ "type": "udl", "start": -10, "from": 0, "to": 6 }]
  }'

Respuesta

{
  "reactions": [
    { "type": "pin",    "position": 0, "vertical": 30, "moment": 0 },
    { "type": "roller", "position": 6, "vertical": 30, "moment": 0 }
  ],
  "extremes": {
    "moment":     { "maxSagging": { "value": 45, "position": 3 }, ... },
    "deflection": { "max": { "value": -8.44, "position": 3 } }
  },
  "meta": { "engineVersion": "0.1.0+…", "units": "SI", "computeMs": 1 }
}

Precios

Precios fijos y publicados, sin medición por llamada. El nivel gratuito funciona en diez segundos, sin registro y sin comprobaciones de identidad. Cada resultado se verifica frente a cálculos manuales clásicos, y existe un extremo MCP para asistentes de IA.

Cómo funcionan los límites. Tres ventanas, todas en UTC: una ráfaga por minuto, un tope diario (solo para el nivel anónimo) y un tope mensual. Cada una se reinicia en su propio límite: el minuto siguiente, la medianoche UTC y el día 1 del mes. Superar cualquiera de ellas responde 429, nombrando la ventana alcanzada tanto en el detalle como en X-RateLimit-Window, con un Retry-After para esa ventana; las respuestas de cálculo llevan X-RateLimit-Remaining. Su clave de API es su cuenta: no hay inicio de sesión ni contraseña.

NivelPrecioIncluye
AnonymousFree30/día · 300/mes · 10/min. Try it instantly, no signup. Shared per IP address.No hay que hacer nada: empiece a llamar.
StudentFree2000/mes · 60/min. For students, learning, and evaluation.Your own budget — the anonymous tier is shared per IP, so on a campus or office network it is consumed by whoever else is on it.Solicitar una clave
Pro$19/mo50.000/mes · 300/min. For commercial projects — includes diagram rendering.
Consultancy$79/mo250.000/mes · 600/min. Team use for a practice or consultancy.
Institution$499/yr100.000/mes · 600/min. A yearly site licence for a school or department.
AI / Enterprise$499/mo1.000.000/mes · 1200/min. For AI assistants and platforms calling at scale, plus custom volumes.

Las claves de estudiante se emiten a mano, normalmente en un día.

Cómo funciona el pago

Elija un nivel de pago y pulse Suscribirse. Pagará en una página de Stripe en su navegador —nunca en la terminal ni en el código— y su clave aparecerá justo después, mostrada una sola vez. Los datos de su tarjeta no pasan en ningún momento por esta API. Puede gestionar o cancelar la suscripción cuando quiera desde el portal de clientes de Stripe: no hay un inicio de sesión aparte. ¿Cerró la pestaña o perdió la clave? Vaya a su página de cuenta y le enviaremos por correo un enlace seguro para gestionar la facturación o volver a emitir la clave.

Las claves de estudiante se siguen pidiendo a mano (son gratuitas), y el nivel anónimo no requiere nada en absoluto.

Preguntas frecuentes

¿StructureCalcs tiene API? ¿Es REST?
Sí. StructureCalcs tiene una API REST pública en api.structurecalcs.com que ejecuta por HTTP el mismo solver que el sitio web. Se envía JSON por POST a endpoints como /v1/beam/solve y /v1/truss/solve, y los endpoints GET sirven la biblioteca de perfiles y las normas; también existen /v1/health y la especificación OpenAPI 3.1 en /v1/openapi.json. La referencia interactiva y los inicios rápidos de curl, Python y JavaScript para copiar y pegar están en la página /api.
¿Hay un servidor MCP de StructureCalcs para que los asistentes de IA resuelvan vigas, celosías y pórticos?
Sí. Hay un servidor MCP sin estado en https://api.structurecalcs.com/mcp que habla JSON-RPC sobre HTTP. Expone nueve herramientas: solve_beam, solve_truss, solve_frame, section_properties, get_section, search_sections, render_beam_diagram, render_truss_diagram y render_frame_diagram. Puedes añadirlo a Claude Code con "claude mcp add --transport http structurecalcs https://api.structurecalcs.com/mcp", o pegar la URL como conector personalizado en Claude.ai.
¿Qué se puede resolver y dibujar con la API de StructureCalcs?
Puedes resolver vigas de varios vanos (cargas puntuales, cargas repartidas uniformes y de variación lineal —que cubren las formas triangular y trapecial—, cargas de presión o superficiales y momentos aplicados, con reacciones más cortante, momento, giro y flecha con sus extremos), resolver celosías planas de nudos articulados (esfuerzos en las barras, reacciones, asientos de apoyo, efectos térmicos y de fabricación), consultar los 2.686 perfiles de acero de las seis normas y dibujar diagramas de vigas o de celosías. Los diagramas se devuelven en SVG. La versión actual no tiene endpoints de PDF, de PNG ni del generador de informes.
¿La API de StructureCalcs es gratuita? ¿Cuánto cuesta?
Hay un nivel anónimo gratuito que funciona sin registro, limitado a 30 peticiones al día y 300 al mes por dirección IP, con un pico de 10 por minuto. Una clave de estudiante, también gratuita, lo sube a 2.000 peticiones al mes. Los niveles de pago son Pro a 19 $/mes, Consultancy a 79 $/mes, Institution a 499 $/año y AI/Enterprise a 499 $/mes; la tarifa es plana, no por consumo. Los niveles de pago son de autoservicio: pulsa Suscribirse en la tabla de precios, paga con tarjeta en Stripe y tu clave se muestra una sola vez; puedes gestionarla o cancelar cuando quieras en el portal de facturación de Stripe.
¿Cómo me autentico en la API de StructureCalcs?
El nivel anónimo gratuito no necesita autenticación: puedes empezar a llamar de inmediato. Para límites más altos envías tu clave como cabecera HTTP, Authorization: Bearer sc_live_..., y esa clave es toda tu cuenta (no hay usuario ni contraseña). La clave de pago se emite en cuanto te suscribes y pagas en Stripe; la clave gratuita de estudiante se emite a mano cuando la solicitas.
¿Qué unidades y convenios de signos usa la API de StructureCalcs?
Cada petición puede fijar las unidades en SI (m, kN, kN/m, GPa, mm4) o imperiales (ft, kip, k/ft, ksi, in4), igual que en el sitio web; si omites el campo, el valor por defecto es SI. La única regla de signos que hay que saber es que las cargas son negativas hacia abajo, así que una carga uniforme de gravedad se escribe start: -10; los asientos de apoyo también son negativos hacia abajo, y los esfuerzos de las barras vuelven con tracción positiva y compresión negativa.

Referencia de la API

El contrato completo —cada extremo, esquema y error— generado a partir de la especificación OpenAPI 3.1.

v1.0.0
OpenAPI 3.1.0

The StructureCalcs public API: the same WASM solver that powers structurecalcs.com, at the edge.

Units — every request takes "units": "SI" (default) or "imperial"; each field documents its unit. SI = m · kN · kN/m · kPa · kN·m · GPa · mm⁴ · mm² · mm. Imperial = ft · kip · k/ft · ksf · k·ft · ksi · in⁴ · in² · in. Conversions are identical to the website’s. Sign conventions — loads negative = downward; applied moments clockwise-positive; support settlements DOWN IS NEGATIVE; truss and frame member axial forces tension-positive; frame REACTION moments clockwise-positive. Auth & limits — anonymous (no key) is a real, free, rate-limited tier. Authorization: Bearer sc_live_… lifts the limits. See the tiers below.

Accuracy — every result is held to the same hand-calculation standard as the website’s Learn examples (a permanent golden test reproduces the classical solutions through this API).

NOT in v1 (roadmap, named so nobody infers omission): server-side PDF or PNG export, the report-builder document endpoints, batch/bulk solving, async jobs, webhooks, and file storage/share links.

Server:https://api.structurecalcs.com

Production

No authentication selected
Client Libraries

Structural analysis.

SVG diagrams (the website’s figures).

The steel section library (2,600+ sections; 6 standards).

Health & the spec.

  • type
    Type: string Format: uri
    required
  • title
    Type: string
    required
  • status
    Type: integer
    required

    Integer numbers.

  • code
    Type: string enum
    required

    A stable machine code. invalid_input (400, schema/validation — see issues[]) · unauthorized (401, bad API key; ABSENCE of a key is the anonymous tier, not an error) · rate_limited (429, with Retry-After) · unstable_structure (422, a mechanism/singular system, never a 500) · engine_error (422) · payload_too_large (413) · not_found (404) · method_not_allowed (405) · stripe_error (502, an upstream Stripe rejection surfaced with Stripe’s own message + code — returned only by the self-serve account/billing endpoints, e.g. checkout/portal, never by the analysis API) · internal_error (500).

    values
    • invalid_input
    • unauthorized
    • rate_limited
    • payload_too_large
    • not_found
  • detail
    Type: string
  • issues
    Type: array object[]

    Per-field validation problems (invalid_input only) — path is the dotted JSON path.

  • units
    Type: string enum

    Unit system. SI: m, kN, kN/m, kPa, kN.m, GPa, mm4, mm2, mm. imperial: ft, kip, k/ft, ksf, k.ft, ksi, in4, in2, in.

    values
    • SI
    • imperial
  • spans
    Type: array object[] 1…20
    required

    Consecutive spans left to right; each carries its own E·I (stepped sections supported).

  • supports
    Type: array object[] 1…21
    required
  • loads
    Type: array …200
  • combinations
    Type: object
  • units
    Type: string enum

    Unit system. SI: m, kN, kN/m, kPa, kN.m, GPa, mm4, mm2, mm. imperial: ft, kip, k/ft, ksf, k.ft, ksi, in4, in2, in.

    values
    • SI
    • imperial
  • nodes
    Type: array object[] 2…300
    required
  • members
    Type: array object[] 1…1000
    required
  • materials
    Type: array object[] 1…100
    required
  • supports
    Type: array object[] 1…100
    required
  • loads
    Type: array …500
  • fabricationErrors
    Type: array …200
  • combinations
    Type: object
  • units
    Type: string enum

    Unit system. SI: m, kN, kN/m, kPa, kN.m, GPa, mm4, mm2, mm. imperial: ft, kip, k/ft, ksf, k.ft, ksi, in4, in2, in.

    values
    • SI
    • imperial
  • nodes
    Type: array object[] 2…300
    required
  • members
    Type: array object[] 1…1000
    required
  • materials
    Type: array object[] 1…100
    required
  • supports
    Type: array object[] 1…100
    required
  • nodalLoads
    Type: array object[] …500
  • memberLoads
    Type: array object[] …500
  • units
    Type: string enum

    Unit system. SI: m, kN, kN/m, kPa, kN.m, GPa, mm4, mm2, mm. imperial: ft, kip, k/ft, ksf, k.ft, ksi, in4, in2, in.

    values
    • SI
    • imperial
  • shapes
    Type: array 1…200
    required

    The pieces the section is made of. Overlapping solids are UNIONED — shared material is counted once, so you can build a section from pieces that lap over each other without inflating the area. A void removes material wherever it lies inside a solid.

  • units
    Type: string enum

    Unit system. SI: m, kN, kN/m, kPa, kN.m, GPa, mm4, mm2, mm. imperial: ft, kip, k/ft, ksf, k.ft, ksi, in4, in2, in.

    values
    • SI
    • imperial
  • spans
    Type: array object[] 1…20
    required

    Consecutive spans left to right; each carries its own E·I (stepped sections supported).

  • supports
    Type: array object[] 1…21
    required
  • loads
    Type: array …200
  • combinations
    Type: object
  • view
    Type: string enum

    Which figure: 'problem' (clean setup) · 'setup' (with reactions) · 'results' (reactions + deflected shape) · 'shear' | 'moment' | 'axial' | 'deflection' (the charts; the BMD uses the site's sagging-positive convention, and 'axial' is tension-positive and reads zero throughout unless a load is tilted).

    values
    • problem
    • setup
    • results
    • shear
    • moment
    • axial
    • deflection
  • deformed
    Type: boolean

    Overlay the deflected shape on the 'setup' view.

  • width
    Type: integer
    min:  
    400
    max:  
    2000

    SVG width in px (default 860 — the site figure width).

  • height
    Type: integer
    min:  
    150
    max:  
    1500

    SVG height in px (defaults per view: 250 beam · 240 charts · 460 truss).

  • theme
    Type: string enum

    Colour theme: 'light' (default — the paper look, byte-identical to the site's figures) or 'dark' (dark-mode figures on a slate ground).

    values
    • light
    • dark
  • style
    Type: string enum

    Drawing style: 'modern' (default — the site's textbook look: open-triangle supports with a solid hinge dot) or 'classic' (the original engineering-schematic glyphs).

    values
    • classic
    • modern
  • units
    Type: string enum

    Unit system. SI: m, kN, kN/m, kPa, kN.m, GPa, mm4, mm2, mm. imperial: ft, kip, k/ft, ksf, k.ft, ksi, in4, in2, in.

    values
    • SI
    • imperial
  • nodes
    Type: array object[] 2…300
    required
  • members
    Type: array object[] 1…1000
    required
  • materials
    Type: array object[] 1…100
    required
  • supports
    Type: array object[] 1…100
    required
  • loads
    Type: array …500
  • fabricationErrors
    Type: array …200
  • combinations
    Type: object
  • view
    Type: string enum

    Which figure: 'problem' (geometry + loads + supports) · 'results' (reactions + member forces coloured tension-red/compression-blue + deflected shape).

    values
    • problem
    • results
  • width
    Type: integer
    min:  
    400
    max:  
    2000

    SVG width in px (default 860).

  • height
    Type: integer
    min:  
    150
    max:  
    1500

    SVG height in px (default 460).

  • theme
    Type: string enum

    Colour theme: 'light' (default — the paper look, byte-identical to the site's figures) or 'dark' (dark-mode figures on a slate ground).

    values
    • light
    • dark
  • style
    Type: string enum

    Drawing style: 'modern' (default — the site's textbook look: open-triangle supports with a solid hinge dot) or 'classic' (the original engineering-schematic glyphs).

    values
    • classic
    • modern
  • units
    Type: string enum

    Unit system. SI: m, kN, kN/m, kPa, kN.m, GPa, mm4, mm2, mm. imperial: ft, kip, k/ft, ksf, k.ft, ksi, in4, in2, in.

    values
    • SI
    • imperial
  • nodes
    Type: array object[] 2…300
    required
  • members
    Type: array object[] 1…1000
    required
  • materials
    Type: array object[] 1…100
    required
  • supports
    Type: array object[] 1…100
    required
  • nodalLoads
    Type: array object[] …500
  • memberLoads
    Type: array object[] …500
  • view
    Type: string enum

    Which figure: 'problem' (geometry + supports + loads, no results) · 'results' (the solved frame with support reactions annotated) · 'deflected' (the exaggerated deflected shape, dashed, over the undeformed frame).

    values
    • problem
    • results
    • deflected
  • width
    Type: integer
    min:  
    400
    max:  
    2000

    SVG width in px (default 860).

  • height
    Type: integer
    min:  
    150
    max:  
    1500

    SVG height in px (default 420).

  • theme
    Type: string enum

    Colour theme: 'light' (default — the paper look, byte-identical to the site's figures) or 'dark' (dark-mode figures on a slate ground).

    values
    • light
    • dark
  • style
    Type: string enum

    Drawing style: 'modern' (default — the site's textbook look: open-triangle supports with a solid hinge dot) or 'classic' (the original engineering-schematic glyphs).

    values
    • classic
    • modern
  • reactions
    Type: array object[]
  • diagrams
    Type: object

    Each series is [position, value] pairs, in the display convention (sagging-positive BMD).

  • extremes
    Type: object

    Max/min with the position each occurs at.

  • meta
    Type: object ·
  • links
    Type: object ·

    links.view opens THIS EXACT model, solved, on structurecalcs.com — the SI-normalized, material-resolved model is deflate-raw + base64url encoded into the URL’s ?model= parameter. The whole links block is OMITTED when the encoded URL would exceed 2,000 characters: a model is never truncated, so the link can never show something different from this response.

  • reactions
    Type: array object[]
  • members
    Type: array object[]
  • displacements
    Type: array object[]
  • meta
    Type: object ·
  • area
    Type: number

    mm2 | in2.

  • centroid
    Type: object

    In the coordinates you supplied.

  • Ix
    Type: number

    Second moment about the centroidal x axis (mm4 | in4).

  • Iy
    Type: number
  • Ixy
    Type: number

    Product of inertia about the centroidal axes — zero for a section symmetric about either.

  • principal
    Type: object
  • rx
    Type: number
  • ry
    Type: number
  • Zx
    Type: number

    Governing ELASTIC section modulus, Ix/c (mm3 | in3). AS 4100 naming — AISC tables call this S.

  • Zy
    Type: number

    Governing ELASTIC section modulus about y, Iy/c (mm3 | in3). AS 4100 naming — AISC tables call this S.

  • elasticModuli
    Type: object

    Per-fibre elastic moduli.

  • Sx
    Type: number

    PLASTIC section modulus about x (mm3 | in3). AS 4100 naming — AISC tables call this Z.

  • Sy
    Type: number

    PLASTIC section modulus about y (mm3 | in3). AS 4100 naming — AISC tables call this Z.

  • plasticNeutralAxis
    Type: object
  • extents
    Type: object
  • notes
    Type: array string[]

    What is NOT included — currently that J and Cw are not computed.

  • meta
    Type: object ·
  • reactions
    Type: array object[]
  • memberForces
    Type: array object[]
  • displacements
    Type: array object[]
  • meta
    Type: object ·
  • links
    Type: object ·

    links.view opens THIS EXACT model, solved, on structurecalcs.com — the SI-normalized, material-resolved model is deflate-raw + base64url encoded into the URL’s ?model= parameter. The whole links block is OMITTED when the encoded URL would exceed 2,000 characters: a model is never truncated, so the link can never show something different from this response.

  • Type: array array number[][]

    [position, value] pairs.

  • engineVersion
    Type: string
  • units
    Type: string enum
    values
    • SI
    • imperial
  • unitLabels
    Type: object
  • computeMs
    Type: number
  • attribution
    Type: string

    One-line attribution: "Solved by StructureCalcs — structurecalcs.com".

  • warnings
    Type: array string[]

    Non-fatal advisories — e.g. every load points UPWARD (+), which usually means the caller assumed down-positive; the convention is NEGATIVE = downward.

  • view
    Type: string Format: uri

    Open this model, solved, in the interactive calculator.

    1. Condiciones de uso

      Al usar la API de StructureCalcs acepta estas condiciones, junto con las Condiciones de uso y la Política de privacidad del sitio.

      • Uso aceptable. Use la API para su finalidad: resolver modelos estructurales, consultar la biblioteca de perfiles y generar diagramas. No intente sobrecargarla, eludir los límites de uso, revender el acceso en bruto ni emplearla para operar un solucionador alojado que compita con este.
      • Sin garantía; no sustituye al criterio del ingeniero. Los resultados se ofrecen «tal cual», sin garantía de ningún tipo. La API es una herramienta de cálculo: un ingeniero cualificado sigue siendo responsable de revisar y firmar cualquier diseño.
      • Los límites y los niveles pueden cambiar. Los límites de uso, las cuotas, la definición de los niveles y los precios pueden cambiar con un preaviso razonable a medida que el servicio evolucione.
      • Las claves pueden revocarse. Las claves de API que abusen del servicio —eludiendo límites, perturbando la disponibilidad o incumpliendo estas condiciones— pueden limitarse o revocarse.

      ¿Alguna duda? Escríbanos.

      Verifying your link…