The SPIDA service is the bidirectional bridge between SPIDAcalc and the Universal Pole Model. It accepts SPIDA project payloads, normalizes them into the platform’s shared representation, and generates SPIDA-compatible output for export.

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 SPIDA project payload (.spida file content) into the Universal Pole Model.

curl https://$VERTICAL_AI_BASE_URL/parse \
  -H "Authorization: Bearer $VERTICAL_AI_KEY" \
  -H "Content-Type: application/json" \
  -d @project.spida

Returns one Universal Pole Model per pole in the project, with cross-pole conductor IDs preserved (via SPIDA’s externalId) so downstream sag analysis can match conductors exactly.

POST /generate

Generate SPIDA-compatible output from one or more Universal Pole Models.

Multi-pole / whole-line export produces connected, voltage-aware wire chains with end-pole correctness. This means a multi-pole project exported from the platform will round-trip cleanly back into SPIDAcalc.

Round-trip workflow

The expected pattern:

  1. POST /parse your existing SPIDA file
  2. Run analysis (clearance, sag, framing) against the resulting pole models
  3. Apply approved HITL fix proposals — the pole models update in place
  4. POST /generate to get a new SPIDA payload with the corrected geometry

This is how the demo flows: SPIDA file in, fix-and-approve, SPIDA file out.

Field mapping notes

  • wire.externalId is the cross-pole conductor identifier — preserve it across edits to keep sag and span-clearance tooling working
  • usage_group is treated as authoritative for voltage when present, so a SPIDA project that tags usage_group correctly will classify and clear correctly even when downstream attachment metadata is sparse
  • Dimensional values follow the standard UPM measured-value convention — read value_si and convert as needed

See also