Docs
API referenceAttendance

Update a site's attendance settings

Preview· P9
PATCH
/sites/{site_id}/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.

Authorization

headerAuthorizationBearer <token>

Send Authorization: Bearer <token> on every request. The token is one of:

PrefixWhat it isWhere it may be used
agoo_sk_live_Secret key, live modeYour servers only
agoo_sk_test_Secret key, test modeYour servers only
agoo_pk_live_Publishable key, live modeBrowsers 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 modeAs 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

Path Parameters

site_id*string

The site's ID.

Match^site_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example"site_01kjpt3yw0fz0v414608h9x65s"

Request Body

application/json
  1. body
Properties1 <= properties
methods?array<>|

At least one; null uses your organisation's.

Items1 <= items
selfie_mode?|null
break_punches?|

null uses your organisation's.

geofence?|

null removes it.

wifi_networks?array<>
Itemsitems <= 50

Response Body

The site's updated settings.

application/json
  1. response
site_id*SiteId

A site ID (TypeID with the site prefix).

Match^site_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example"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.

Formatdate-time
curl -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"}