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.agoohq.com/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}Download a document GET
Returns the file itself once its virus scan has passed, checked against its SHA-256 (sent as `Repr-Digest`). Each download through the API is recorded in the organisation's audit trail. Responses are never cached. `409` while it's still being checked. **Scope:** `documents:read` · **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.