Skip to main content

API Reference Overview

The public surface is small and shaped around one verb: ask the SDK a yes/no question about location, get back a Verdict with a signed proof.

The surface in one screen

Per-symbol reference

SymbolWhat it is
Octet.start(...)The single bring-up call. Verifies license, activates, returns an OctetSdk.
OctetSdkThe handle returned by start. Exposes loc and licenseStatus.
PredicatesisWithin, isOutside, contains on sdk.loc.
OctetRegionThe shape you query against. Factories: country, subdivision, usState, city, disc, ellipse, box3D, polygonSet, earth.
OctetVerdictThe answer. Carries result, reason, proof, validity, confidence.
License TypesLicenseStatus, LicenseState, LicenseError.
Serialization.toStr(), .toJson(), .toJsonl() on every public type.

Platform asymmetry notes (v1)

SurfaceiOSAndroid
OctetRegion factoriesAllAll
RegionSpec + getRegion(spec)
buildRegion { … } DSL
whatisRegion(r) / regionToStr(r) free functions(via .toStr() extension)✓ (also .toStr())

Closing the gap is on the roadmap. iOS callers use the factories directly and region.toStr() for the human-readable form.

Conventions used throughout

  • Code samples are shown in tabs, Swift on the left, Kotlin on the right. Pick your platform once. The choice is remembered across the site.
  • Async. Octet.start is async throws (Swift) / suspend (Kotlin). The predicates (isWithin, etc.) are async and do not throw. License or runtime problems become INDETERMINATE reasons on the verdict.
  • Validation is eager. Region factories trap on malformed inputs at construction. The predicate API never sees an invalid region.
  • Time is Date on iOS, java.time.Instant on Android. Both default to "now".
  • Meters is a Double typealias on both platforms (no value-class ceremony).
  • LatLon(latitude:, longitude:) is the coordinate type. WGS84, pre-validated.

Where to start

If you're integrating for the first time, go to the iOS Quick Start or Android Quick Start. They exercise every symbol on this page end-to-end.