Update a site's attendance settings
Sets the site's own methods and selfie mode (null to use your organisation's again), its geofence (a
circle of 20 to 5,000 metres, or a polygon of 3 to 100 points) and the Wi-Fi networks that count as being
there. Send only what changes. Switching evidence on at a site needs a published notice for it.
Scope: attendance:manage · Plan: Pro and Enterprise in live mode; every plan in test mode.
AuthorizationBearer <token>Send Authorization: Bearer <token> on every request. The token is one of:
| Prefix | What it is | Where it may be used |
|---|---|---|
agoo_sk_live_ | Secret key, live mode | Your servers only |
agoo_sk_test_ | Secret key, test mode | Your servers only |
agoo_pk_live_ | Publishable key, live mode | Browsers and apps: create pre-registrations and bookings, read public booking types (with their intake questions) and their free slots, read the visit types open for pre-registration with their public forms. Never lists people. |
agoo_pk_test_ | Publishable key, test mode | As above, in test mode |
Admins create keys in Console → Developers → API keys and choose each key's scopes. A key is shown once. Never put a secret key in a URL, a browser or a mobile app.
Scope: attendance:manage
site_id*stringThe site's ID.
^site_[0-7][0-9a-hjkmnp-tv-z]{25}$"site_01kjpt3yw0fz0v414608h9x65s"application/json- body
1 <= propertiesmethods?array<>|At least one; null uses your organisation's.
1 <= itemsselfie_mode?|nullbreak_punches?|null uses your organisation's.
geofence?|null removes it.
wifi_networks?array<>items <= 50The site's updated settings.
application/json- response
site_id*SiteIdA site ID (TypeID with the site prefix).
^site_[0-7][0-9a-hjkmnp-tv-z]{25}$"site_01kjpt3yw0fz0v414608h9x65s"methods*array<>|This site's methods, or null to use your organisation's.
selfie_mode*|This site's selfie mode, or null to use your organisation's.
break_punches*|This site's break punches, or null to use your organisation's.
geofence*|The area phone clock-in accepts, or null.
wifi_networks*array<>effective*What applies at the site.
updated_at*|When this site's settings last changed, or null if it has none of its own.
date-timecurl -X PATCH 'https://api.agoohq.com/v1/sites/site_01kjpt3yw0fz0v414608h9x65s/attendance-settings' \ -H 'Content-Type: application/json' \ -d '{ "geofence": { "type": "circle", "latitude": 5.6037, "longitude": -0.187, "radius_m": 150 }, "wifi_networks": [ { "ssid": "RidgeMedical-Staff" } ]}'{ "site_id": "site_01kjpt3yw0fz0v414608h9x65s", "methods": null, "selfie_mode": "required", "geofence": { "type": "circle", "latitude": 5.6037, "longitude": -0.187, "radius_m": 150 }, "wifi_networks": [ { "ssid": "RidgeMedical-Staff" }, { "bssid": "a4:2b:b0:11:22:33" } ], "effective": { "methods": [ "qr", "pin", "face", "geofence", "terminal" ], "selfie_mode": "required" }, "updated_at": "2026-09-28T10:05:00Z"}Get a site's attendance settings GET
Returns the site's own methods and selfie mode (`null` where it uses your organisation's), its geofence and Wi-Fi networks, and what applies there (`effective`). **Scope:** `attendance:read` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.
List people's evidence status GET
Returns, for one evidence type, each active person on attendance with their status, sorted by person. Use `status=unacknowledged` for everyone who hasn't acknowledged the current notice yet, or `status=no_consent` in consent mode. **Scope:** `attendance:read` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.