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"));