Skip to main content
This takes you from nothing to a worded answer about a place. The responses were captured against a development stack carrying the national frame index and Milsat’s baselines, with long coordinate lists shortened where it says so. You need a LOCI account with the Admin or Owner role in an organisation. Minting a key is something a person does in the app; there is no call for it, so a key can never mint another.
1

Mint a key

In the app, open Developers and choose New key. Four things to decide:
  • Name. What will hold this key, such as field-app-prod. It is how you will recognise the key later, in the list and in the audit trail.
  • Scope. Pick Analyst for this walkthrough. It grants the frame reads and the question call. Locality would be refused at step 5.
  • Datasets. Leave it at every dataset the organisation can read, or narrow the key to named ones.
  • Expiry. From seven days to a year. There is no never-expires option.
The secret is shown once, on the screen that mints it. The server keeps only a hash, so it cannot be shown again. Lose it and you revoke the key and mint another.
2

Export the secret

The key travels in the Authorization header and nowhere else:
3

The frame at a location

A point in Garki, Abuja:
Response (200) — coordinates abridged
The real ring has 64 vertices, because this frame is clipped where the grid meets a boundary. id is what the next three calls take. A point outside the grid is 404 not_found; a missing or malformed coordinate is 400 invalid_point.
4

The frames around it

There is no radius parameter. Build a box around the point instead. Frames are about 0.01° across, so ±0.01° returns the frame and its neighbours. This call is limited to three so the truncation flag shows:
Response (200) — coordinates abridged
Without limit the same box returns all thirteen frames it touches and no truncated flag. The cap is 5,000 frames per response; past it the flag is set rather than the call refused, and the fix is a smaller box.
5

What is recorded on a frame

Response (200) — four of six datasets shown
The real response also carried the Cultural and Physical baselines. Each dataset the key can read contributes its row on the frame as values, with the values as strings exactly as stored. A dataset of points, lines or polygons contributes features instead, and only to a key holding feature.read. Up to 100 ids per call, comma-separated.
6

Ask about it

Response (200) — sources and table omitted
narrative is the reply to show. headline and facets are the figures it was checked against, and sources in the full response names the dataset and attribute behind each one. Every number in the narrative was found among those figures before the answer was returned; had one not been, the narrative would be absent and engine would read deterministic.Up to 50 frames and 1,000 characters per question. Leave question out for a profile of the frames; send "format": "report" for a sectioned write-up.

Two failures worth seeing now

A typo in the body is refused, not ignored. Unknown fields are a 400:
Response (400)
The wrong scope is a 403 that names the missing capability. A Locality key on the question call:
Response (403)

Next

  • Authentication: how a key’s authority is re-derived on every request, and the one change that kills a key instantly.
  • Scopes: the three presets, and which calls each one reaches.
  • Errors: every code these four calls return.
  • Limits: the rate budgets, the caps that truncate, and what a question costs.