API: helical pile
POST /v1/helical — request and response fields for helical-pile capacity and the AC358 torque, with runnable examples.
Computes helical (screw) pile axial capacity by individual plate bearing and cylindrical shear, taking the lesser as governing, with the AC358 torque correlation. The methods and inputs are explained in Helical piles; the same analysis runs interactively at the helical tool.
Endpoint
https://api.pilecalc.com/v1/helical/v1/helical?key=…&req=…&fields=…(for header-less callers)The request takes the same soil object as /v1/axial, the shaft geometry, a helices array (1–8 plates, each with depth and diameter), loading mode, factor of safety, product structural limit, explicit cylinder and shaft interface factors, and numerical controls. torque is either a pre-install target or an installed-pile verification and always carries kt, its basis, and a traceable reference. The API never guesses a torque factor from shaft diameter.
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.
| Field | Type | Required | Constraints |
|---|---|---|---|
unitSystem | "si" | "us" | yes | |
method | "deep-individual-bearing-cylindrical-shear" | yes | |
shaftShape | "round" | yes | |
soil | object | yes | |
soil.layers[] | object[] | yes | min 1 item |
soil.layers[].top | number | yes | ≥ 0 |
soil.layers[].bottom | number | yes | > 0 |
soil.layers[].gamma | number | yes | > 0 |
soil.layers[].type | "cohesive" | "cohesionless" | "rock" | yes | |
soil.layers[].cohesion | number | no | ≥ 0 |
soil.layers[].phi | number | no | 0 – 60 |
soil.layers[].sptN | number | no | ≥ 0 |
soil.layers[].qu | number | no | ≥ 0 |
soil.layers[].rockJointCondition | "massive-intact" | "closed" | "open-or-gouge-filled" | no | |
soil.layers[].rqd | number | no | 0 – 100 |
soil.layers[].kDown | number | no | > 0 |
soil.layers[].kUp | number | no | > 0 |
soil.layers[].kc | number | no | > 0 |
soil.layers[].ka | number | no | > 0 |
soil.waterTableDepth | number | no | ≥ 0 |
soil.waterUnitWeight | number | no | > 0 |
shaftDiameter | number | yes | > 0 |
shaftLength | number | yes | > 0 |
helices[] | object[] | yes | min 1 item, max 8 items |
helices[].depth | number | yes | > 0 |
helices[].diameter | number | yes | > 0 |
mode | "compression" | "tension" | yes | |
fs | number | yes | > 0 |
structuralAxialCapacity | number | yes | > 0 |
cylinderEarthPressureCoefficient | number | yes | > 0 |
shaftInterface | object | yes | |
shaftInterface.mode = "neglected" | variant | yes | |
shaftInterface.mode = "included" | variant | yes | |
shaftInterface.earthPressureCoefficient | number | yes | > 0 |
shaftInterface.sandInterfaceFrictionRatio | number | yes | 0 – 1 |
shaftInterface.clayAdhesionFactor | number | yes | 0 – 1 |
torque | object | yes | |
torque.mode = "design-target" | variant | yes | |
torque.kt | number | yes | > 0 |
torque.basis | "evaluation-report" | "project-load-test" | yes | |
torque.reference | string | yes | |
torque.mode = "installation-verification" | variant | yes | |
torque.kt | number | yes | > 0 |
torque.basis | "evaluation-report" | "project-load-test" | yes | |
torque.reference | string | yes | |
torque.averageInstallationTorque | number | yes | > 0 |
torque.averagingLength | number | yes | > 0 |
segments | number | yes | integer, 20 – 500 |
convergenceTolerance | number | yes | 0 – 0.1 |
Response fields
| Field | Type | Description |
|---|---|---|
ultimate | number | Governing ultimate capacity, min(individual bearing, cylindrical shear) (kN). |
allowable | number | Ultimate / fs (kN). |
governing | "individual-bearing" | "cylindrical-shear" | "structural" | "installation-torque" | The soil, product, or field-evidence limit controlling the reported ultimate. |
byMethod.individualBearing / .cylindricalShear | number | Both methods' ultimate capacities (kN). |
perHelix[] | object[] | Individual-bearing contribution of each helix, sorted by depth. |
perHelix[].depth / .diameter | number | Helix depth and plate diameter, echoed from the input (m). |
perHelix[].bearing | number | Ultimate plate bearing q_ult·(π/4·D²) (kN). |
shaftAdhesion | number | Shaft adhesion above the top helix, included in both methods (kN). |
requiredTorque | number | Installation torque implied by the ultimate capacity, ultimate / Kt (kN·m). |
geotechnicalUltimate / structuralCapacity | number | Separate soil-model and product/evaluation-report limits. |
torque | object | Declared Kt, target torque, required averaging length, and installed-pile capacity/verification when supplied. |
interaction | object | Top H/D, adjacent s/D ratios, and whether the request matches the Hoyt-Clemence uplift population. |
convergence | object | Fine/coarse integration comparison; the request fails when tolerance is exceeded. |
method | object | Stable method ID, editions, released failure regime, shaft shape, and evidence boundary. |
Code examples
A complete, runnable request. Replace YOUR_API_KEY (or set PILECALC_API_KEY in your environment).
curl https://api.pilecalc.com/v1/helical \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"unitSystem": "si",
"method": "deep-individual-bearing-cylindrical-shear",
"shaftShape": "round",
"soil": {
"layers": [
{
"type": "cohesive",
"top": 0,
"bottom": 3,
"gamma": 17.5,
"cohesion": 40,
"ka": 0.9
},
{
"type": "cohesionless",
"top": 3,
"bottom": 8,
"gamma": 19,
"phi": 32
}
],
"waterTableDepth": 2,
"waterUnitWeight": 9.81
},
"shaftDiameter": 0.089,
"shaftLength": 6,
"helices": [
{
"depth": 4.5,
"diameter": 0.2
},
{
"depth": 5.25,
"diameter": 0.25
},
{
"depth": 6,
"diameter": 0.3
}
],
"mode": "compression",
"fs": 2,
"structuralAxialCapacity": 800,
"cylinderEarthPressureCoefficient": 1,
"shaftInterface": {
"mode": "included",
"earthPressureCoefficient": 1,
"sandInterfaceFrictionRatio": 0.67,
"clayAdhesionFactor": 0.7
},
"torque": {
"mode": "design-target",
"kt": 33,
"basis": "evaluation-report",
"reference": "Project product evaluation report"
},
"segments": 240,
"convergenceTolerance": 0.03
}'The GET variant returns ultimate,allowable,requiredTorque 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
governingtells you which mechanism limits the pile — closely spaced helices shear as a cylinder, widely spaced ones bear individually.requiredTorqueis the torque implied by the declaredkt. Treat it as a field criterion only when that factor and the evaluated product/install procedure are supported by the applicable AC358 evaluation report and project specification.mode: "tension"flips the cylindrical-shear leading helix to the top — use it for tie-downs and uplift anchors.- Helix depths must lie on the embedded shaft (
depth ≤ shaftLength); rock layers are rejected. The released deep domain also requires top H/D 5.1–134, adjacent spacing 1.55D–4.5D, a round shaft, and sand friction angle within the declared NAVFAC 26°–40° table.
The water-unit-weight trap
soil.waterUnitWeight — pass 9.81 when working in kN/m³, or the coherent US value in kip/ft³ (see Units & conventions).