API StructureCalcs

Le même solveur que celui du site — résolvez poutres et treillis, interrogez 2 686 profilés et générez des diagrammes, en HTTP. Conçu pour les assistants IA, les ingénieurs, les étudiants et les établissements.

Démarrage rapide

Charges : négatif = vers le bas. Une charge répartie vers le bas s’écrit start: -10 — la seule convention à connaître avant votre premier appel. Ci-dessous, un appel complet et fonctionnel : une poutre sur deux appuis simples de 6 m sous une charge répartie de 10 kN/m. Aucune clé n’est requise ; le palier anonyme gratuit répond immédiatement. Le même moteur fait tourner le site — comment les résultats sont vérifiés.

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 }]
  }'

Réponse

{
  "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 }
}

Tarifs

Des tarifs forfaitaires et publiés — sans facturation à l’appel. Le palier gratuit fonctionne en dix secondes, sans inscription ni vérification d’identité. Chaque résultat est vérifié face à des calculs manuels classiques, et un point de terminaison MCP est prévu pour les assistants IA.

Comment fonctionnent les limites. Trois fenêtres, toutes en UTC : une rafale par minute, un plafond par jour (palier anonyme seulement) et un plafond par mois. Chacune se réinitialise à sa propre échéance — la minute suivante, minuit UTC, le 1er du mois. Dépasser l’une d’elles renvoie 429, en nommant la fenêtre atteinte à la fois dans le détail et dans X-RateLimit-Window, avec un Retry-After propre à cette fenêtre ; les réponses de calcul portent X-RateLimit-Remaining. Votre clé d’API est votre compte — il n’y a ni identifiant ni mot de passe.

PalierTarifComprend
AnonymousFree30/jour · 300/mois · 10/min. Try it instantly, no signup. Shared per IP address.Rien à faire — appelez directement.
StudentFree2 000/mois · 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.Demander une clé
Pro$19/mo50 000/mois · 300/min. For commercial projects — includes diagram rendering.
Consultancy$79/mo250 000/mois · 600/min. Team use for a practice or consultancy.
Institution$499/yr100 000/mois · 600/min. A yearly site licence for a school or department.
AI / Enterprise$499/mo1 000 000/mois · 1 200/min. For AI assistants and platforms calling at scale, plus custom volumes.

Les clés étudiantes sont délivrées à la main, généralement sous un jour.

Comment se passe le paiement

Choisissez un palier payant et cliquez sur S’abonner. Vous payez sur une page hébergée par Stripe, dans votre navigateur — jamais dans votre terminal ni dans votre code — et votre clé apparaît juste après, affichée une seule fois. Aucune donnée de carte ne transite par cette API. Vous pouvez gérer ou résilier à tout moment via le portail client de Stripe : il n’y a pas de compte séparé. Onglet fermé ou clé perdue ? Rendez-vous sur votre page de compte et nous vous enverrons par e-mail un lien sécurisé pour gérer la facturation ou réémettre la clé.

Les clés étudiantes restent sur demande (elles sont gratuites), et le palier anonyme ne demande rien du tout.

Questions fréquentes

StructureCalcs a-t-il une API, et est-elle REST ?
Oui. StructureCalcs dispose d’une API REST publique sur api.structurecalcs.com, qui exécute en HTTP le même solveur que le site. Vous envoyez du JSON en POST à des points d’entrée comme /v1/beam/solve et /v1/truss/solve, et les points d’entrée GET servent la bibliothèque de profilés et les normes ; il y a aussi /v1/health et la spécification OpenAPI 3.1 sur /v1/openapi.json. La référence interactive et les démarrages rapides curl, Python et JavaScript à copier-coller se trouvent sur la page /api.
Existe-t-il un serveur MCP pour StructureCalcs, afin que les assistants IA résolvent poutres, treillis et portiques ?
Oui. Un serveur MCP sans état est disponible sur https://api.structurecalcs.com/mcp ; il parle JSON-RPC sur HTTP. Il expose neuf outils : solve_beam, solve_truss, solve_frame, section_properties, get_section, search_sections, render_beam_diagram, render_truss_diagram et render_frame_diagram. Vous pouvez l’ajouter à Claude Code avec « claude mcp add --transport http structurecalcs https://api.structurecalcs.com/mcp », ou coller l’URL comme connecteur personnalisé dans Claude.ai.
Que peut-on résoudre et tracer via l’API StructureCalcs ?
Vous pouvez résoudre des poutres à plusieurs travées (charges ponctuelles, charges réparties uniformes et à variation linéaire — ce qui couvre les formes triangulaire et trapézoïdale —, charges de pression ou surfaciques, et moments appliqués, avec en retour les réactions plus l’effort tranchant, le moment, la rotation et la flèche avec leurs extrêmes), résoudre des treillis plans à nœuds articulés (efforts dans les barres, réactions, tassements d’appui, effets thermiques et de fabrication), interroger les 2 686 profilés des six normes, et tracer des diagrammes de poutre ou de treillis. Les diagrammes sont renvoyés en SVG. La version actuelle ne propose ni point d’entrée PDF ou PNG, ni générateur de rapports.
L’API StructureCalcs est-elle gratuite, et combien coûte-t-elle ?
Il existe un palier anonyme gratuit, utilisable sans inscription, plafonné à 30 requêtes par jour et 300 par mois et par adresse IP, avec une pointe de 10 par minute. Une clé Étudiant, gratuite elle aussi, porte cela à 2 000 requêtes par mois. Les paliers payants sont Pro à 19 $/mois, Consultancy à 79 $/mois, Institution à 499 $/an et AI/Enterprise à 499 $/mois ; la tarification est forfaitaire, non à l’usage. Les paliers payants sont en libre-service : cliquez sur S’abonner dans la grille tarifaire, payez par carte sur Stripe, et votre clé s’affiche une seule fois — gérez ou résiliez à tout moment dans le portail de facturation Stripe.
Comment s’authentifier auprès de l’API StructureCalcs ?
Le palier anonyme gratuit ne demande aucune authentification : vous pouvez appeler tout de suite. Pour des limites plus élevées, vous envoyez votre clé dans un en-tête HTTP, Authorization: Bearer sc_live_..., et cette clé constitue tout votre compte (il n’y a ni identifiant ni mot de passe). Une clé payante est délivrée dès l’abonnement et le paiement sur Stripe ; une clé Étudiant gratuite est délivrée à la main, sur demande.
Quelles unités et quelles conventions de signe l’API StructureCalcs emploie-t-elle ?
Chaque requête peut fixer les unités en SI (m, kN, kN/m, GPa, mm4) ou en impérial (ft, kip, k/ft, ksi, in4), comme sur le site ; en l’absence du champ, le SI s’applique. La seule règle de signe à retenir : les charges sont négatives vers le bas, donc une charge uniforme de pesanteur s’écrit start: -10 ; les tassements d’appui sont eux aussi négatifs vers le bas, et les efforts de barre reviennent traction positive, compression négative.

Référence de l’API

Le contrat complet — chaque point de terminaison, schéma et erreur — généré à partir de la spécification 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. Conditions d’utilisation

      En utilisant l’API StructureCalcs, vous acceptez ces conditions ainsi que les conditions d’utilisation et la politique de confidentialité du site.

      • Usage acceptable. Utilisez l’API pour ce à quoi elle est destinée — résoudre des modèles de structures, interroger la bibliothèque de profilés et générer des diagrammes. N’essayez pas de la surcharger, de contourner les limites d’usage, de revendre l’accès brut ni de vous en servir pour exploiter un solveur hébergé concurrent.
      • Aucune garantie ; ne remplace pas le jugement de l’ingénieur. Les résultats sont fournis « en l’état », sans garantie d’aucune sorte. L’API est un outil de calcul — un ingénieur qualifié reste responsable de la vérification et de la validation de toute conception.
      • Les limites et les paliers peuvent évoluer. Limites de débit, quotas, définition des paliers et tarifs peuvent changer moyennant un préavis raisonnable, à mesure que le service évolue.
      • Les clés peuvent être révoquées. Une clé d’API qui abuse du service — contournement des limites, atteinte à la disponibilité ou manquement à ces conditions — peut être bridée ou révoquée.

      Des questions ? Écrivez-nous.

      Verifying your link…