All APIs
Browse every API across the platform. 6 APIs · 85 endpoints.
Push-style ingestion front door for building-data sources that would rather POST a reading directly than run their own MQTT loop. Same wire envelope, same underlying ingestreading() code path as the MQTT listener - two front doors, one code
CRUD for fault-detection rules and webhook subscriptions, plus a read endpoint over detected faults. This is a separate process/port from the ingest API (ingestapi.py, openapi.yaml) - each API's spec is served by the process it actually des
CRUD for derivations - definitions of synthetic/computed histories, computed via Baler's own rule engine. A derivation names a SPARQL query that selects what to run over and a Python function (the "lambda") that computes the value; the resu
Structural validation of the live entity graph against Brick's own SHACL shapes (vendored in ontology/Brick-only.ttl, v1.4.4). Separate process/port from ingest/fault/derivation - this document is served by the process it actually describes
Identity: login, API-key issuance/revocation, org/site directory CRUD. Separate process/port from ingest/fault/derivation/validate - this document is served by the process it actually describes. Role/site/rate-limit enforcement for every ro
The "SkySpark-easy, but via API" surface: discover BACnet devices, learn what points are on one, then create a connection with the points you picked - no hand-typed BACnet object identifiers anywhere in the flow. See docs/bacnet-discovery-a

