Locus API v0.1.0
Generated at build time from the published API contract. The wire is protobuf JSON: camelCase keys, symbolic enum names, absent fields for proto defaults. Try-it calls ride the same-origin proxy to your configured data planes; with no plane running, the network error you see is the honest state.
Resolver plane
GET/healthLiveness probe; 200 whenever the process is up (no readiness check).
GET/readyReadiness probe; 200 once reference data is warm and request control is healthy, 503 while draining or the fail-closed control plane is unavailable.
GET/metricsEngine metrics; Prometheus text by default, JSON when format=json.
GET/metrics.jsonEngine metrics as a JSON snapshot.
POST/v1/resolveResolve one raw address.
POST/v1/resolve/retryRe-resolve a prior CandidateSet's addressKey with disambiguating evidence.
Single-shot retry for an address that first resolved to a CandidateSet. The client echoes the canonical addressKey and supplies at least one of the required evidence fields; a matching (key, evidence) pair resolves with status retry_resolved. An unambiguous key (no required evidence) resolves idempotently; an unmatched pair stays a CandidateSet with retryStatus evidenceNotMatched.
GET/v1/locations/{locationId}Dereference a minted location id to its canonical entity.
A minted id resolves to its canonical location entity: grain, status, parent link, and the entity's current address-key binding. Tombstoned ids still dereference - ids are never reused - with status telling the truth. 404 distinguishes an unknown id from a deployment without entity data provisioned.
try-it needs a concrete path parameter; use the workbenches for parameterized routes
POST/v1/bulk/resolveResolve a bounded batch of raw addresses.
Detail plane
GET/v1/locations/{parcelId}/detailsFull parcel_record cargo behind a resolved parcel id (every populated source column; nulls dropped server-side).
Typed error arms: not_found (routable id, no record), unroutable_parcel_id (maps to no county), integrity_refused (the key-verify gate refused a wrong row rather than serving it). x-locus-cache reports hit|miss.
try-it needs a concrete path parameter; use the workbenches for parameterized routes
GET/v1/addresses/{addressKey}/detailsInterim address-key shim: decisive parcel behind a canonical address key (x-locus-interim disclosed).
Interim shim, disclosed via the x-locus-interim response header until the claim-graph route replaces it. no_decisive_parcel is the honest ambiguous/absent arm: the shim refuses to guess between parcels.
try-it needs a concrete path parameter; use the workbenches for parameterized routes
Gateway (platform)
GET/v1/usageMetering readback: per-day, per-route, per-outcome-class rollups for the calling org (NEW gateway route).
Opaque cursor + limit pagination like every list endpoint. The gateway adds its own typed arms on every route: invalid_key, scope_missing, entitlement_missing, license_unacknowledged, rate_limited, quota_exhausted.