API: torsional load transfer

POST /v1/torsion — strict named capacity, calibrated monotonic transfer, service state, convergence, and applicability fields.


Computes named Florida District 7 or CDOT drilled-shaft torsional capacity plus a user-calibrated monotonic torque–rotation and depth-transfer response. The scientific basis is described in Torsional load transfer; the same analysis runs interactively at the torsion tool.

Endpoint

POST
https://api.pilecalc.com/v1/torsion
GET
/v1/torsion?key=…&req=…&fields=…(for header-less callers)

Set unitSystem explicitly. pile must describe a vertical, prismatic solid-circular drilled shaft with both E and G. Select the namedmethod, declare whether toe transfer is included, and provide a positiverotation50 for every soil layer and included toe. calibration must identify the evidence reference and maximum supported rotation; the requested curve may not extend beyond it. With groundwater,waterUnitWeight is mandatory.

Authentication, rate limits, and the error envelope are shared by every endpoint — see the API overview. Requests are unit-agnostic: any self-consistent unit system works, and results come back in the same units. The examples below use SI (m, kN, kPa, kN/m³).

Request fields

This table is generated from the same schema that validates the request, so it cannot drift. Where a field appears once per variant row, it belongs to that variant only.

FieldTypeRequiredConstraints
unitSystem"si" | "us"yes
method"florida-district-7" | "cdot-2004"yes
transferModel"user-calibrated-hyperbolic"yes
interactionModel"none" | "florida-district-7-toe-normal-force-only"yes
pileobjectyes
pile.kind"uniform"yes
pile.lengthnumberyes> 0
pile.diameternumberyes> 0
pile.elasticModulusnumberyes> 0
pile.shearModulusnumberyes> 0
pile.unitWeightnumberyes≥ 0
pile.displacementfalseyes
soilobjectyes
soil.layers[]object[]yesmin 1 item
soil.layers[].type = "cohesive"variantyes
soil.layers[].topnumberyes≥ 0
soil.layers[].bottomnumberyes> 0
soil.layers[].gammanumberyes> 0
soil.layers[].cohesionnumberno≥ 0
soil.layers[].qunumberno≥ 0
soil.layers[].rotation50numberyes> 0
soil.layers[].type = "cohesionless"variantyes
soil.layers[].topnumberyes≥ 0
soil.layers[].bottomnumberyes> 0
soil.layers[].gammanumberyes> 0
soil.layers[].phinumberyes0 – 60
soil.layers[].rotation50numberyes> 0
soil.layers[].lateralEarthPressureCoefficientnumberno> 0
soil.waterTableDepthnumberno≥ 0
soil.waterUnitWeightnumberno> 0
toeobjectyes
toe.mode = "excluded"variantyes
toe.mode = "included"variantyes
toe.rotation50numberyes> 0
calibrationobjectyes
calibration.referencestringyes
calibration.maxRotationnumberyes0 – 0.2617993877991494
loadingobjectyes
loading.type"monotonic"yes
loading.serviceTorquenumberyes> 0
loading.torqueStepnumberyes> 0
loading.maxRotationnumberyes0 – 0.2617993877991494
loading.rotationPointsnumberyesinteger, 21 – 201
appliedAxialLoadnumberyes≥ 0
factorOfSafetynumberyes> 1
segmentsnumberyesinteger, 200 – 500
convergenceTolerancenumberyes0 – 0.03

Response fields

FieldTypeDescription
capacity.shaft / .toe / .totalnumberNamed ultimate shaft and toe components and their exact sum (moment units declared by unitSystem).
capacity.allowablenumberTotal ultimate resistance divided by factorOfSafety.
capacity.legacyShaftSideComponentnumberLegacy ΣQside·r comparison component only; not total resistance.
capacity.segmentsarrayDepth intervals, layer index, ultimate interface resistance, side torque, and surface-exclusion flag.
serviceobjectService torque and rotation, shaft/toe shares, secant stiffness, centered tangent stiffness, and tangent bracket.
curvearrayStrictly monotonic head torque–rotation points through the declared maximum rotation.
depthTransferarrayService-state rotation and internal torque from pile head to toe.
equilibriumobjectHead/shaft/toe torque balance and service-load residuals.
convergenceobjectFine and half-resolution meshes plus capacity, response, rotation, and tangent-stiffness differences.
applicabilityobjectExplicit monotonic/calibrated scope and the cyclic and axial-interaction exclusions.
calibrationEvidenceobjectEchoed project calibration reference, supported maximum rotation, and a false extrapolation flag.
methodobjectStable method ID, FHWA edition, named capacity methods, response-model scope, and validation status.

Code examples

A complete, runnable request. Replace YOUR_API_KEY (or set PILECALC_API_KEY in your environment).

POST /v1/torsion
curl https://api.pilecalc.com/v1/torsion \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "unitSystem": "si",
  "method": "florida-district-7",
  "transferModel": "user-calibrated-hyperbolic",
  "interactionModel": "none",
  "pile": {
    "kind": "uniform",
    "length": 6,
    "diameter": 1,
    "elasticModulus": 30000000,
    "shearModulus": 12500000,
    "unitWeight": 24,
    "displacement": false
  },
  "soil": {
    "layers": [
      {
        "type": "cohesive",
        "top": 0,
        "bottom": 7,
        "gamma": 18,
        "cohesion": 50,
        "rotation50": 0.01
      }
    ]
  },
  "toe": {
    "mode": "excluded"
  },
  "calibration": {
    "reference": "Example only - replace with a project monotonic torsion test reference",
    "maxRotation": 0.08
  },
  "loading": {
    "type": "monotonic",
    "serviceTorque": 100,
    "torqueStep": 1,
    "maxRotation": 0.08,
    "rotationPoints": 41
  },
  "appliedAxialLoad": 0,
  "factorOfSafety": 3,
  "segments": 240,
  "convergenceTolerance": 0.02
}'

The GET variant returns capacity.total,capacity.allowable,service.rotation,service.tangentStiffness,equilibrium.relativeResidual as a plain-text CSV line — made for Excel's WEBSERVICE() and Sheets' IMPORTDATA() (see Use PileCalc in Excel). Omit fields to get the full JSON response.

Interpreting results

  • capacity.total is exactly shaft plus toe. The legacy side-friction-times-radius field is a comparison component and must not replace total.
  • service.secantStiffness reproduces the origin-to-service response;service.tangentStiffness is the centered local slope about that torque.
  • A response exists only when the service torque is bracketed, equilibrium closes, and all four fine/half-resolution comparisons pass the requested tolerance.
  • Nonzero axial load is legal only for the Florida District 7 cohesionless-toe normal-force term. The response does not represent generalized axial–torsional interaction.

Unsupported requests fail closed

Cyclic loading, rock, battered/tapered/displacement piles, uncalibrated layers, and unsupported combined loading return actionable validation or engine errors; no silent extrapolation is made.