How it works
Hear
The client collects the radios around it: Wi-Fi access points, cell towers and BLE beacons, each with its signal level and age. Nothing else is needed — no GPS lock, no phone number.
Look up
The service matches what was heard against its own anchor database of radio positions. At least two known radios must agree before anything is answered.
Trilaterate
Weighted least squares turn the matches into one position, on our servers. The answer carries a radius calibrated against satellite truth: 95 % and 68 % confidence.
Why Corvus.Instinct
Own anchor database
Positions come from Corvus's own measurements, not from a broker. Every anchor carries its provenance, and only cleared sources are ever served.
No third party at query time
A lookup never leaves our servers. There is no fallback to an outside provider, and no IP-address positioning: the answer is computed, not resold.
A standard API
The Mozilla Location Service's API, so clients written for MLS or beaconDB — GeoClue, microG, NeoStumbler, Tower Collector — need only the address.
Calibrated accuracy
Each answer carries two radii, at 95 % and 68 % confidence, calibrated out of sample against satellite truth. A fix is never blended across technologies.
Privacy by design
A miss is a miss: the service never tells a prober which address it knows. Network names are never stored, contributions are voluntary, and scans of military areas are refused.
Self-hosted, on our own hardware
No shared cloud tenancy in the answer path: the same cluster and domain that serve Corvus's own clients, offered globally.
One request
Send what the device hears; receive a position with a calibrated radius. The full request and response grammar, the fields of every radio type, the error table and the limits are in the API documentation.
$ curl -X POST https://instinct.corvusintell.com/v1/geolocate \ > -H "Content-Type: application/json" \ > -d '{"wifiAccessPoints": [ > {"macAddress": "b0:95:75:b0:1c:b9", "signalStrength": -60, "frequency": 2412}, > {"macAddress": "50:ff:20:11:68:9a", "signalStrength": -74, "frequency": 5180} > ]}' HTTP/1.1 200 OK X-Corvus-Snapshot: 2026-10-18.1 { "location": {"lat": 50.4497236, "lng": 30.5232617}, "accuracy": 29.0, "corvus": {"method": "access_points", "accuracy68": 18.0} }
The position, the 95 % radius in metres, and Corvus's extension: which technology carried the fix, and the 68 % radius.
Access
Positioning and contributing need no key: send a request and the service answers, rate-limited per address. The database itself is never handed out — a position, never a download.
Positioning and contributing are separate. A client can locate itself without sending anything back, and contributions, when they are made, carry only what the user agreed to share. The protected zone extracts of the offline mode are the one thing Corvus still issues keys for.
Integrate Corvus.Instinct into your product.
Read the API documentation Zone-extract keys are issued by Corvus — contact@corvusintell.com