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 full surface
flowchart TD
A[Octet.start config] --> B[OctetSdk handle]
B --> L[OctetSdk.loc]
B --> S[OctetSdk.licenseStatus]
L --> P1[isWithin region atTime]
L --> P2[isOutside region atTime]
L --> P3[contains center tol atTime]
P1 --> V[OctetVerdict]
P2 --> V
P3 --> V
V --> R[result YES NO INDETERMINATE]
V --> RC[reason ReasonCode]
V --> PR[proof LocationProof?]
V --> VAL[validity Interval?]
V --> C[confidence ConfidenceSummary]
Per-symbol reference
| Symbol | What it is |
|---|---|
Octet.start(...) |
The single bring-up call. Verifies license, activates, returns an OctetSdk. |
OctetSdk |
The handle returned by start. Exposes loc and licenseStatus. |
| Predicates | isWithin, isOutside, contains on sdk.loc. |
OctetRegion |
The shape you query against. Factories: country, subdivision, usState, city, disc, ellipse, box3D, polygonSet, earth. |
OctetVerdict |
The answer. Carries result, reason, proof, validity, confidence. |
| License Types | LicenseStatus, LicenseState, LicenseError. |
| Serialization | .toStr(), .toJson(), .toJsonl() on every public type. |
Platform asymmetry notes (v1)
| Surface | iOS | Android |
|---|---|---|
OctetRegion factories |
All | All |
RegionSpec + getRegion(spec) |
n/a | ✓ |
buildRegion { … } DSL |
n/a | ✓ |
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.startisasync throws(Swift) /suspend(Kotlin). The predicates (isWithin, etc.) areasyncand do not throw. License or runtime problems becomeINDETERMINATEreasons on the verdict. - Validation is eager. Region factories trap on malformed inputs at construction. The predicate API never sees an invalid region.
- Time is
Dateon iOS,java.time.Instanton Android. Both default to "now". Metersis aDoubletypealias on both platforms (a plainDouble, not a wrapper type).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.