API: global slope stability

POST/GET /v1/global-slope — terrain, water, circular search and complete numerical diagnostics.


Compute global, unreinforced slope factor of safety with the Bishop simplified method for static, two-dimensional circular surfaces. Terrain must descend left to right; strata are horizontal and contiguous. Total soil unit weights, base strength parameters, a prescribed piezometric line and vertical strip surcharges define the slice forces.

Endpoint

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

Use explicit candidate circles or a bounded center/radius grid of at most 1,000 circles. Refine and widen the search and compare slice meshes. Piezometric pressure is water unit weight times head above the slice base; suction is not credited. Ponded surface water and water-filled cracks are rejected. An optional dryCrackDepth introduces an empty vertical entry crack; vary its depth independently.

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
method"bishop-simplified-circular"yes
unitSystem"si" | "us"yes
terrain[]object[]yesmin 2 items, max 100 items
terrain[].xnumberyes
terrain[].elevationnumberyes
layers[]object[]yesmin 1 item, max 50 items
layers[].topElevationnumberyes
layers[].bottomElevationnumberyes
layers[].unitWeightnumberyes> 0
layers[].cohesionnumberyes≥ 0
layers[].frictionAngleDegnumberyes0 – 60
waterobjectyes
water.mode = "dry"variantyes
water.mode = "piezometric"variantyes
water.line[]object[]yesmin 2 items, max 100 items
water.line[].xnumberyes
water.line[].elevationnumberyes
water.unitWeightnumberyes> 0
surcharges[]object[]yesmax 50 items
surcharges[].startXnumberyes
surcharges[].endXnumberyes
surcharges[].pressurenumberyes≥ 0
searchobjectyes
search.mode = "candidates"variantyes
search.circles[]object[]yesmin 1 item, max 1000 items
search.circles[].idstringyes
search.circles[].centerXnumberyes
search.circles[].centerElevationnumberyes
search.circles[].radiusnumberyes> 0
search.mode = "grid"variantyes
search.centerXobjectyes
search.centerX.minnumberyes
search.centerX.maxnumberyes
search.centerX.countnumberyesinteger, 2 – 20
search.centerElevationobjectyes
search.centerElevation.minnumberyes
search.centerElevation.maxnumberyes
search.centerElevation.countnumberyesinteger, 2 – 20
search.radiusobjectyes
search.radius.minnumberyes
search.radius.maxnumberyes
search.radius.countnumberyesinteger, 2 – 20
slicesnumberyesinteger, 20 – 500
dryCrackDepthnumberno≥ 0

Response fields

FieldTypeDescription
critical.factorOfSafetynumberMinimum FS among valid evaluated circles; not a certified global minimum.
candidatesarrayEvery evaluated circle, with converged slice data or a rejection reason.
search.coverageCompletebooleanFalse whenever any submitted circle was rejected; the search is then incomplete.

Code examples

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

POST /v1/global-slope
curl https://api.pilecalc.com/v1/global-slope \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "method": "bishop-simplified-circular",
  "unitSystem": "si",
  "terrain": [
    {
      "x": -20,
      "elevation": 10
    },
    {
      "x": 0,
      "elevation": 10
    },
    {
      "x": 20,
      "elevation": 0
    },
    {
      "x": 40,
      "elevation": 0
    }
  ],
  "layers": [
    {
      "topElevation": 10,
      "bottomElevation": -30,
      "unitWeight": 20,
      "cohesion": 0,
      "frictionAngleDeg": 25
    }
  ],
  "water": {
    "mode": "dry"
  },
  "surcharges": [],
  "search": {
    "mode": "candidates",
    "circles": [
      {
        "id": "trial-1",
        "centerX": 8,
        "centerElevation": 18,
        "radius": 22
      }
    ]
  },
  "slices": 100
}'

The GET variant returns critical.factorOfSafety,search.coverageComplete 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.

The method satisfies vertical force and overall moment equilibrium, not horizontal force equilibrium. Negative effective base normal forces are rejected. Interslice tension and crack-depth optimality require independent review. No pile contribution, seismic force, noncircular slip or Spencer verification is included. No design acceptance is reported.

Source: USACE EM 1110-2-1902 (2003), Appendix F Eqs F-4/F-5, Appendix C-3 and Section 2-7. The implemented pore-pressure projection follows F-4 (u times horizontal width), independently checked by vertical and tangential equilibrium.