The PLS service is the bridge between PLS-POLE / PLS-CADD and the Universal Pole Model. It accepts .pol files (with optional .loa context) and generates PLS-oriented output using a .frm-catalog-driven path: a UPM crossarm is matched to the closest of 68 RUS framing codes (scored on phase count, tangent/deadend/angle, pin-vs-post, neutral-on-arm), and a non-exploded donor POL is cloned with the framing code, pole class, and azimuth patched. Output is a single .pls.zip containing the POL + LOA + .cri + .wnd so PLS-CADD imports with no missing-sidecar warnings.
Direct REST access requires Tier B onboarding. URLs and bearer-token credentials are issued during embedder onboarding — until then, route equivalent calls through the Overhead gateway →. Email hello@epcstudio.io to start.
Endpoints
POST /parse
Parse a PLS payload into the Universal Pole Model. Accepts the .pol file body and, optionally, a companion .loa payload that supplies load-case context the .pol alone doesn’t carry.
curl https://$VERTICAL_AI_BASE_URL/parse \
-H "Authorization: Bearer $VERTICAL_AI_KEY" \
-H "Content-Type: application/json" \
-d '{
"pol": "<base64 .pol body>",
"loa": "<base64 .loa body>"
}'
Returns one Universal Pole Model. Cross-pole conductor identifiers are preserved where the source file supplies them.
POST /generate
Generate PLS-oriented output from a Universal Pole Model. Returns a payload suitable for round-tripping back into PLS-POLE.
Round-trip workflow
Same shape as the SPIDA flow:
POST /parseyour existing.pol(with optional.loa)- Run analysis (clearance, sag, framing) against the resulting pole model
- Apply approved HITL fix proposals
POST /generateto get a new PLS payload with the corrected geometry
Coverage notes
- Tangent, deadend, double-deadend, suspension-angle, and guyed (
tg-*) framings are covered with their RUS framing codes - Transformer + streetlight equipment ride as additional framing references
- Neutral-on-PMI and comm-PMI configurations supported via their own framing refs
- LOA conductor
set:phasetags + wire(x, y, z)positions are pulled directly from the patched POL’s STRUCT FILE so PLS-CADD sees consistent geometry between the structure and the loads .wircable-file parser (V9 / V11 / V14 / V15) lets the LOA generator pull real conductor specs (weight / area / RBS) from a customer-supplied cable directory instead of hardcoded defaults
If you hit a gap that blocks your workflow, please email hello@epcstudio.io.
See also
- Universal Pole Model → — the shape
/parsereturns and/generateconsumes - SPIDA API → — the most mature parser today
- O-Calc API → — sister parser for O-Calc
.pplx - Overhead gateway →