REST — /api/xr
22 route handlers under /api/xr · 4 public (auth-optional).
Public flags are cross-referenced against
PUBLIC_API_PREFIXESinsrc/lib/route-access.ts. Routes without a public prefix require an authenticated session (or, where applicable, a signed federation request). See Auth models.
| Route | Methods | Access | Description |
|---|---|---|---|
/api/xr/buildings | GET | Public | Decoded z14 parent tiles (four cells each) from the vector-tile source. |
/api/xr/diagnostic | POST | Session | Snapshots older than this are dropped, on roughly one insert in a hundred. |
/api/xr/fountains | GET | Session | A cell answered from the seed while Overpass was down is cached briefly, so the real answer replaces it soon. |
/api/xr/group/[id] | GET | Session | GET /api/xr/group/{id}: a group's page for the headset's native app surface (XRGroupPage): its members and roles, |
/api/xr/hub/[hub] | GET | Session | GET /api/xr/hub/{hub}: a hub page for the headset's native app surface (XRHubPage): Home, Explore, Search, the |
/api/xr/item/[id] | GET | Session | GET /api/xr/item/{id}: an item's page for the headset's native app surface (XRItemPage, with the pages it links to |
/api/xr/job/[id] | GET | Session | GET /api/xr/job/{id}: a job's page for the headset (XRJobPage): its details, team, tasks, deliverables and costs, and |
/api/xr/lamps | GET | Session | Lamps and streets are cut to one z15 cell per request (about 1.2 km across at Boulder's latitude). |
/api/xr/landmarks | GET | Public | Every locale's name, point and page, for the XR globe's landmark pins (lib/xr/landmarks.ts). Public directory data. |
/api/xr/location | GET PUT | Session | The signed-in account's own latest phone fix, if fresh. Never anyone else's. |
/api/xr/me | GET | Session | GET /api/xr/me: the signed-in viewer's own profile, their editable name and bio, and the groups they belong to, for |
/api/xr/photoreal | GET | Session | Read at request time, not baked in at build: a key set or rotated in the server environment |
/api/xr/presence | GET PUT DELETE | Session | — |
/api/xr/profile/[handle] | GET | Session | GET /api/xr/profile/{handle}: a person's public page for the headset's native app surface, by username or id as |
/api/xr/project/[id] | GET | Session | GET /api/xr/project/{id}: a project's page for the headset (XRProjectPage): its status, lead and team, and its jobs |
/api/xr/streets | GET | Session | Decoded z14 parent tiles, four cells each. |
/api/xr/task/[parentId]/[taskId] | GET | Session | GET /api/xr/task/{parentId}/{taskId}: a task's page for the headset (XRTaskPage), under the job, project or group |
/api/xr/tools/[section] | GET | Session | GET /api/xr/tools/{section}[?id=]: a tool page for the headset's native app surface — Voice, Manage proxies, Docs |
/api/xr/voice | GET POST | Session | — |
/api/xr/water | GET | Public | GET /api/xr/water?z=&x=&y= — OpenStreetMap waterways and water bodies in one |
/api/xr/widgets | GET | Session | GET /api/xr/widgets?tz=<minutes east of UTC>: the headset's Take Action, Waiting on you and Today widgets for the |
/api/xr/world | GET PATCH | Public | — |