The Infractiv Platform API exposes the analytical outputs of the Infractiv water-infrastructure intelligence platform as a machine-readable contract, so that an enterprise asset-management or work-order system can consume Infractiv findings as work, and return what the field actually found.
The contract is deliberately vendor-neutral. It speaks the vocabulary every work-management system shares — service requests, work orders, inspections, labour and material cost — rather than any one vendor's object names. Mappings for specific systems are published under info.x-infractiv-integrations, so that adding the next system is a mapping exercise and not a rewrite.
The loop this API closes
- Infractiv → your system. Every pipe segment carries a modelled failure risk. Every satellite acquisition produces ranked leak candidates. Both are published here as stable, geolocated, incrementally-queryable resources.
- Your system → the field. The consuming system turns a detection into a service request or work order and dispatches a crew against its own business rules, its own asset registry, and its own mobile application. Infractiv does not decide what becomes work; it decides what is worth considering.
- Field → your system → Infractiv. When the work order closes, the crew's finding — leak confirmed, not found, already repaired — is posted back to
/observations, and the repair's labour, equipment and material cost is posted to /cost-actuals. - Infractiv recalibrates. Confirmed and rejected findings are recorded as ground truth against the detection they disposition, and realised repair costs are recorded against the segment. Consuming them automatically to retune the detector on the next cycle is designed and documented, but the automated consumer is not yet wired — today that evidence is applied through Infractiv's own model-refresh cycle. We state this rather than imply a loop that already closes itself.
Steps 3 and 4 are the part a one-way feed does not do. A detection feed that only pushes in one direction produces the same quality of finding in year three as in month one.
Design conventions
Versioning and deprecation
A Marketplace listing is a multi-year commitment, so the evolution rules are part of the contract rather than a support answer.
Additive within a major version. Within /v1 Infractiv may add operations, add optional request parameters, add response properties, and add members to an enumeration that describes a server-produced value. It will not remove or rename a property, narrow a type, tighten a constraint, make an optional request parameter required, or change the meaning of an existing value. Treat unknown response properties and unknown enum members as forward compatibility, not as errors — a client that rejects them is the one that breaks first.
What is a major version. Anything the list above excludes, and one thing specific to this domain: a change in the estimand behind a risk-bearing field. If the quantity currentRisk expresses changes — a different horizon, a conditional rather than an unconditional formulation, a different unit of ranking — that is a new major version even though the field name and its JSON type are unchanged, because a consumer's threshold would silently mean something else. Field names and types are not a sufficient contract for a modelled value.
Deprecation. A deprecated operation or property is marked deprecated in this document and answered with the Deprecation and Sunset response headers (RFC 9745 and RFC 8594) naming the date it stops being served, so a connector learns of a retirement from the responses it is already receiving rather than from a mailing list. The notice period between those two dates, and the period /v1 continues to be served after a /v2 exists, are set in the partner agreement rather than fixed in this document — they are commercial commitments and this contract does not state numbers nobody has signed. Nothing in this document is deprecated today.
Discovering what you are talking to. GET /health returns the running build identity, and GET /utilities/{utilityId} returns per-lane freshness and the scopes the calling credential holds on that utility. Between them a connector can tell which capabilities are live for a given customer without hard-coding per-utility assumptions. There is no minor-version discovery endpoint, because within a major version every change is additive and a client should feature-detect on the field rather than on a version number.
Authentication
Two mechanisms, both suited to unattended machine-to-machine integration and both standard authentication types in the connector frameworks that consume APIs like this one:
- OAuth 2.0 client credentials (RFC 6749 §4.4) — the default. A partner receives a client identifier and secret scoped to the utilities it is authorised for, and exchanges them at
/v1/oauth/token for a short-lived bearer token. - API key — a long-lived key presented in the
X-Api-Key header, for connector frameworks that prefer static credentials. Keys are per-partner, per-utility, and revocable independently.
Both mechanisms resolve to the same authorisation model: a token or key grants access to an explicit set of utility identifiers and an explicit set of scopes. There is no cross-utility read, and no implicit scope widening.
Data-protection posture
Platform compute and storage run in United States Azure regions, and the AI inference path is pinned to United States processing at the model provider. There is no inbound public network path to any utility environment.
Each utility runs in its own resource group, compute plan, subnet with a dedicated network security group, private endpoint and key vault, under its own workload identities. Diagnostic and application logs from every utility are collected into a single shared workspace in the same United States region, under role-based access control — stated because "isolated at every layer" would not be true of the observability plane, and a partner's security reviewer will ask.
One further bound is stated deliberately. The public edge that fronts platform surfaces is a commercial global content-delivery network; the controls that would pin its TLS termination and log storage to the United States are an enterprise add-on that has been requested and is not yet in place. Until it is, a recorded decision limits that edge to public content and the authenticated staff application, the tunnel connector is pinned to United States regions, and the edge's own authentication records are exported hourly to United States-resident storage.
Verifying these claims rather than believing them
Security statements in vendor documentation are usually assertions. Three of the ones above are commands, and we would rather you ran them than took our word. From a clone of the repository this contract lives in:
bash api/lint.sh clones Trimble's own MIT-licensed API-standard ruleset, pins it to a commit, and lints this document against it. It prints the resolved ruleset revision so a published result can be tied to the exact rules that produced it, and it fails on any warning that is not declared as a deviation in info.x-infractiv-deviations.Rscript api/plumber/tests/self-test.R runs the reference implementation's assertion suite over the helpers that decide who may read what, what a malformed request does, and what is published when a column is missing.node scripts/checks/no-external-subresources.mjs api/docs/index.html walks the published reference's markup and proves it loads nothing from a third-party host — it renders offline, behind an egress filter, with no external party observing who reads our documentation.
Two properties of that list matter more than any individual result. The checks run in continuous integration on every change, so they cannot rot quietly. And each is designed to be able to fail: the parser guard was proven to fail against a deliberately planted defect before it was trusted, which is the difference between a gate and a green tick.
What this API can and cannot evidence for an assurance programme
Stated plainly, because a control that has never run produces no evidence and an auditor will establish that in the first hour.
This contract and its reference implementation evidence control design: the authorisation model, the credential lifecycle including revocation, input validation, the error and audit surface, and change control over all of it. They do not yet evidence operating effectiveness, because no host is serving this contract — see x-release-status. Statements below about the platform's existing production surfaces are a different matter: those are as-built, dated, and carry run identifiers.
Where the honest answer is "not yet", this document says so rather than describing an intention in the present tense.