Python & curl

Copy-paste starters.

curl — save every layer

BASE="https://app.fiberconstructioncompany.com/api/field/v1/geoexport/fck_YOURKEY/site/8"
for L in marks structures segments cables splices photos; do
  curl -s "$BASE/$L" -o "$L.json"
done

Python — footage summary from segments

import requests

BASE = "https://app.fiberconstructioncompany.com/api/field/v1/geoexport/fck_YOURKEY/site/8"
segs = requests.get(f"{BASE}/segments", timeout=30).json()["features"]

by_method = {}
for s in segs:
    p = s["properties"]
    by_method[p["method"]] = by_method.get(p["method"], 0) + (p["length_ft"] or 0)

for method, ft in sorted(by_method.items()):
    print(f"{method:12s} {ft:>10,.0f} ft")

Python — splice completion by closure

import requests, collections

BASE = "https://app.fiberconstructioncompany.com/api/field/v1/geoexport/fck_YOURKEY/site/8"
rows = requests.get(f"{BASE}/splices", timeout=30).json()

tally = collections.Counter((r["closure"], r["status"]) for r in rows)
for (closure, status), n in sorted(tally.items()):
    print(f"{closure:20s} {status:9s} {n}")

Node — dump structures to CSV

const fs = require("fs");
const BASE = "https://app.fiberconstructioncompany.com/api/field/v1/geoexport/fck_YOURKEY/site/8";

const res = await fetch(`${BASE}/structures`);
const gj = await res.json();
const rows = gj.features.map(f => [
  f.properties.client_id, f.properties.kind,
  f.geometry.coordinates[1], f.geometry.coordinates[0]
].join(","));
fs.writeFileSync("structures.csv", "id,kind,lat,lon\n" + rows.join("\n"));