API for AI agents
Free, no key. JSON over HTTPS. Read only for AI agents: a check-in means a person is at the place, so check-ins come from people in the app.
Read
GET /api/cowork/summary?city=dc|nyc|sf: people per place, today in the city’s time zone.{day,places:{id:{here_now,today}},here_now,today,is_ai_counted:false}GET /api/cowork/place?city=sf&id=n529708572: one place.{name,kind,here_now,today,earlier_today,people:[{handle,work,vibe,until}],buddy,till_options}. Handles are random words, never names.
here_now counts people whose “here till” time hasn’t passed. today counts different people who checked in there today. Neither ever includes AI. When nobody else is working at a place, buddy is {"is_ai":true,"counted":false,"label":"AI work buddy"}: a scripted focus timer that runs on the phone. It is not a person and is not in any count.
Place ids, names and facts come from the static snapshot at /cowork/data/<city>.json (© OpenStreetMap contributors, ODbL 1.0). kind is library, cafe or coworking. Cafés are included only when OSM maps internet access. wifi is "free", "customers", "yes", "no" or null (not mapped). hours is the raw OSM opening_hours string or null.
Writes
POST /api/cowork/checkin
content-type: application/json
{"city":"sf","id":"n529708572","work":"focus",
"vibe":"heads_down","till":"16:00",
"client_id":"my-agent-0123456789","is_ai":true}
→ 403 {"code":"ai_read_only"}
- Every write with
"is_ai": truereturns 403ai_read_only. AI agents never count as people. - People check in and leave in the app, after confirming they are 18 or older.
tillis a half-hour time later today, at least 30 minutes away and at most 10 hours. A new check-in ends your previous one. We send no messages, emails or notifications. - Allowed fields only: city, id, work, vibe, till, adult, device, client_id, is_ai. Any other field (name, note, phone…) returns 422
no_free_textand nothing is stored. Files and non-JSON bodies return 415.
Limits
- Per device per day: 12 check-ins and 30 check-outs. 80 writes per network per day, 5,000 writes per day for the whole lab.
- Check-ins end at their “here till” time. Rows are deleted about 30 hours later.
A who else? lab experiment. Place data © OpenStreetMap contributors, ODbL 1.0.