List teams
Returns your teams with their members, newest first. A team is who a visitor comes to see when it isn't one person ("I'm here for Finance"), and who reception passes a waiting visitor to.
Scope: people:read · 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: people:read
limit?integerHow many items to return, from 1 to 100.
1 <= value <= 10025cursor?stringThe next_cursor from the previous page. Leave it out for the first page.
length <= 512q?stringOnly teams whose name contains this.
length <= 80site_id?stringOnly teams at this site, and teams at every site.
^site_[0-7][0-9a-hjkmnp-tv-z]{25}$"site_01kjpt3yw0fz0v414608h9x65s"visitors_can_choose?booleanOnly teams visitors may (true) or may not (false) choose.
include_archived?booleanInclude archived teams.
falseA page of teams.
application/json- response
data*array<>next_cursor*|Pass this as cursor to get the next page. null on the last page.
"b3BhcXVlLWN1cnNvcg"has_more*booleancurl -X GET 'https://api.agoo.ardent.africa/v1/teams?limit=25'{ "data": [ { "id": "team_01m4r6y616e1b973vj50h0643y", "name": "Finance", "site_id": "site_01kjpt3yw0fz0v414608h9x65s", "lead_id": "person_01kjsesxm0e4zbyvkr7bcfxbfg", "visitors_can_choose": true, "archived": false, "members": [ { "id": "person_01kjsesxm0e4zbyvkr7bcfxbfg", "name": "Kwame Mensah", "job_title": "Head of Treasury", "active": true } ], "created_at": "2026-10-12T09:00:00Z", "updated_at": "2026-10-12T09:00:00Z" } ], "next_cursor": null, "has_more": false}Deactivate a person DELETE
Deactivates a person instead of deleting them, so their visit and attendance history stays intact. A deactivated person can't host visitors, clock in or sign in, and no longer counts towards your plan's limits. - Fires `person.deactivated`. - Upcoming visits they host keep their `host_id`. Reassign them with `PATCH /visits/{visit_id}`. - Deactivating someone who is already deactivated returns them unchanged and fires no event. **Scope:** `people:write` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.
Create a team POST
Creates a team, with its members if you name them. A team's name is unique among your teams that aren't archived; a second team of the same name returns `conflict`. Teams are on every plan and count against nothing. **Scope:** `people:write` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.