Splices

Per-fiber connectivity by closure — a JSON array, not GeoJSON. Join to structures by closure name for location.

GET/{key}/{scope}/{id}/splices

Record fields

FieldNotes
closureThe closure's client ID / label — join to structures.
cable_a / cable_bClient cable IDs. cable_b empty for dead/reserved records.
fiber_*_start/endSingle-fiber records have start == end; legacy range records span more.
statusspliced | crossed | dead | reserved
tubeTube number; positions follow TIA-598.
Status is derived from connectivity, never typed by hand: same position = spliced · different positions = crossed · A-side with no B path = dead · B-side held for future = reserved.
curl "https://app.fiberconstructioncompany.com/api/field/v1/geoexport/fck_YOURKEY/site/8/splices"
const res = await fetch(
  "https://app.fiberconstructioncompany.com/api/field/v1/geoexport/fck_YOURKEY/site/8/splices");
const data = await res.json();
<?php
$data = json_decode(
  file_get_contents("https://app.fiberconstructioncompany.com/api/field/v1/geoexport/fck_YOURKEY/site/8/splices"),
  true);
import requests
data = requests.get(
  "https://app.fiberconstructioncompany.com/api/field/v1/geoexport/fck_YOURKEY/site/8/splices",
  timeout=30).json()
200 application/json
[
  {
    "closure": "Manhole 3",
    "cable_a": "CBL-010",
    "fiber_a_start": "3",
    "fiber_a_end": "3",
    "cable_b": "CBL-011",
    "fiber_b_start": "3",
    "fiber_b_end": "3",
    "status": "spliced",
    "tube": "1",
    "type": "fusion",
    "created_at": "2026-07-29 10:25:41"
  }
]