> For the complete documentation index, see [llms.txt](https://developers.trooply.co.uk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.trooply.co.uk/members.md).

# Members

## List members in a group

> Returns a paginated list of the young people (members) registered in the group. Member records contain personal data about children; handle responses accordingly. Totals are reported in \`meta.total\`.

```json
{"openapi":"3.1.1","info":{"title":"Trooply API","version":"1.0"},"servers":[{"url":"https://api.trooply.co.uk/"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Bearer access token. Generate one from the **Developer** area of your Trooply account and send it as `Authorization: Bearer <token>`.","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"SuccessResponse":{"type":"object","properties":{"data":{},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ResponseMeta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"request_id":{"type":"string","format":"uuid"},"total":{"type":"integer"}}},"Member":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time"},"date_of_birth":{"type":"string","format":"date-time"},"dietary_requirements":{"type":"string"},"first_name":{"type":"string"},"gender":{"type":"string"},"id":{"type":"string","format":"uuid"},"last_name":{"type":"string"},"primary_email":{"type":"string"},"primary_phone":{"type":"string"},"profile_picture_asset_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"},"status":{"type":"integer"}}}}},"paths":{"/v1/groups/{group_id}/members":{"get":{"description":"Returns a paginated list of the young people (members) registered in the group. Member records contain personal data about children; handle responses accordingly. Totals are reported in `meta.total`.","tags":["members"],"summary":"List members in a group","parameters":[{"schema":{"type":"string","format":"uuid"},"description":"Group ID","name":"group_id","in":"path","required":true},{"schema":{"type":"integer","default":1,"minimum":1},"description":"Page number, 1-based","name":"page","in":"query"},{"schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"description":"Items per page","name":"per_page","in":"query"}],"responses":{"200":{"description":"Paginated list of members","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Member"}}}}]}}}},"400":{"description":"group_id is not a valid UUID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Create a member in a group

> Registers a new young person in the group. Only \`first\_name\` and \`last\_name\` are required; contact and dietary details are optional. The created member is returned in \`data\`.

```json
{"openapi":"3.1.1","info":{"title":"Trooply API","version":"1.0"},"servers":[{"url":"https://api.trooply.co.uk/"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Bearer access token. Generate one from the **Developer** area of your Trooply account and send it as `Authorization: Bearer <token>`.","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"SuccessResponse":{"type":"object","properties":{"data":{},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ResponseMeta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"request_id":{"type":"string","format":"uuid"},"total":{"type":"integer"}}},"Member":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time"},"date_of_birth":{"type":"string","format":"date-time"},"dietary_requirements":{"type":"string"},"first_name":{"type":"string"},"gender":{"type":"string"},"id":{"type":"string","format":"uuid"},"last_name":{"type":"string"},"primary_email":{"type":"string"},"primary_phone":{"type":"string"},"profile_picture_asset_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"},"status":{"type":"integer"}}},"CreateMemberRequest":{"type":"object","required":["date_of_birth","first_name","gender","last_name"],"properties":{"date_of_birth":{"type":"string","format":"date-time"},"dietary_requirements":{"type":"string"},"field_values":{"type":"array","items":{"$ref":"#/components/schemas/FieldValueInput"}},"first_name":{"type":"string","maxLength":100,"minLength":1},"gender":{"type":"string"},"last_name":{"type":"string","maxLength":100,"minLength":1},"primary_email":{"type":"string"},"primary_phone":{"type":"string","maxLength":50},"profile_picture_asset_id":{"type":"string","format":"uuid"},"section_id":{"type":"string","format":"uuid"}}},"FieldValueInput":{"type":"object","properties":{"field_def_id":{"type":"string","format":"uuid"},"value":{"type":"string"}}}}},"paths":{"/v1/groups/{group_id}/members":{"post":{"description":"Registers a new young person in the group. Only `first_name` and `last_name` are required; contact and dietary details are optional. The created member is returned in `data`.","tags":["members"],"summary":"Create a member in a group","parameters":[{"schema":{"type":"string","format":"uuid"},"description":"Group ID","name":"group_id","in":"path","required":true}],"responses":{"201":{"description":"The created member","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessResponse"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Member"}}}]}}}},"400":{"description":"group_id is not a valid UUID, or malformed JSON body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation failed; see error.fields","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMemberRequest"}}},"description":"Member to create","required":true}}}}}
```

## Get a member within a group

> Returns a single member, scoped to the given group, including their custom field values and (when set) the resolved profile picture asset with its public URL. Use this rather than the top-level member endpoint when you want to confirm the member belongs to a specific group.

```json
{"openapi":"3.1.1","info":{"title":"Trooply API","version":"1.0"},"servers":[{"url":"https://api.trooply.co.uk/"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Bearer access token. Generate one from the **Developer** area of your Trooply account and send it as `Authorization: Bearer <token>`.","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"SuccessResponse":{"type":"object","properties":{"data":{},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ResponseMeta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"request_id":{"type":"string","format":"uuid"},"total":{"type":"integer"}}},"Member":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time"},"date_of_birth":{"type":"string","format":"date-time"},"dietary_requirements":{"type":"string"},"first_name":{"type":"string"},"gender":{"type":"string"},"id":{"type":"string","format":"uuid"},"last_name":{"type":"string"},"primary_email":{"type":"string"},"primary_phone":{"type":"string"},"profile_picture_asset_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"},"status":{"type":"integer"}}}}},"paths":{"/v1/groups/{group_id}/members/{member_id}":{"get":{"description":"Returns a single member, scoped to the given group, including their custom field values and (when set) the resolved profile picture asset with its public URL. Use this rather than the top-level member endpoint when you want to confirm the member belongs to a specific group.","tags":["members"],"summary":"Get a member within a group","parameters":[{"schema":{"type":"string","format":"uuid"},"description":"Group ID","name":"group_id","in":"path","required":true},{"schema":{"type":"string","format":"uuid"},"description":"Member ID","name":"member_id","in":"path","required":true}],"responses":{"200":{"description":"The requested member","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessResponse"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Member"}}}]}}}},"400":{"description":"A path parameter is not a valid UUID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No such member in this group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Remove a member from a group

> Removes the member's membership of this group. The member's own record and any memberships of other groups are left intact. Returns \`204 No Content\` on success.

```json
{"openapi":"3.1.1","info":{"title":"Trooply API","version":"1.0"},"servers":[{"url":"https://api.trooply.co.uk/"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Bearer access token. Generate one from the **Developer** area of your Trooply account and send it as `Authorization: Bearer <token>`.","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"},"status":{"type":"integer"}}}}},"paths":{"/v1/groups/{group_id}/members/{member_id}":{"delete":{"description":"Removes the member's membership of this group. The member's own record and any memberships of other groups are left intact. Returns `204 No Content` on success.","tags":["members"],"summary":"Remove a member from a group","parameters":[{"schema":{"type":"string","format":"uuid"},"description":"Group ID","name":"group_id","in":"path","required":true},{"schema":{"type":"string","format":"uuid"},"description":"Member ID","name":"member_id","in":"path","required":true}],"responses":{"204":{"description":"Member removed from group"},"400":{"description":"A path parameter is not a valid UUID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No such member in this group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Update a member within a group

> Applies a partial update to a member, scoped to the given group. Only the fields present in the request body are changed. The updated member is returned in \`data\`.

```json
{"openapi":"3.1.1","info":{"title":"Trooply API","version":"1.0"},"servers":[{"url":"https://api.trooply.co.uk/"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Bearer access token. Generate one from the **Developer** area of your Trooply account and send it as `Authorization: Bearer <token>`.","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"SuccessResponse":{"type":"object","properties":{"data":{},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ResponseMeta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"request_id":{"type":"string","format":"uuid"},"total":{"type":"integer"}}},"Member":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time"},"date_of_birth":{"type":"string","format":"date-time"},"dietary_requirements":{"type":"string"},"first_name":{"type":"string"},"gender":{"type":"string"},"id":{"type":"string","format":"uuid"},"last_name":{"type":"string"},"primary_email":{"type":"string"},"primary_phone":{"type":"string"},"profile_picture_asset_id":{"type":"string","format":"uuid"},"updated_at":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"},"status":{"type":"integer"}}},"UpdateMemberRequest":{"type":"object","properties":{"date_of_birth":{"type":"string","format":"date-time"},"dietary_requirements":{"type":"string"},"field_values":{"type":"array","items":{"$ref":"#/components/schemas/FieldValueInput"}},"first_name":{"type":"string","maxLength":100,"minLength":1},"gender":{"type":"string"},"last_name":{"type":"string","maxLength":100,"minLength":1},"primary_email":{"type":"string"},"primary_phone":{"type":"string","maxLength":50},"profile_picture_asset_id":{"type":"string","format":"uuid"}}},"FieldValueInput":{"type":"object","properties":{"field_def_id":{"type":"string","format":"uuid"},"value":{"type":"string"}}}}},"paths":{"/v1/groups/{group_id}/members/{member_id}":{"patch":{"description":"Applies a partial update to a member, scoped to the given group. Only the fields present in the request body are changed. The updated member is returned in `data`.","tags":["members"],"summary":"Update a member within a group","parameters":[{"schema":{"type":"string","format":"uuid"},"description":"Group ID","name":"group_id","in":"path","required":true},{"schema":{"type":"string","format":"uuid"},"description":"Member ID","name":"member_id","in":"path","required":true}],"responses":{"200":{"description":"The updated member","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessResponse"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Member"}}}]}}}},"400":{"description":"A path parameter is not a valid UUID, or malformed JSON body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No such member in this group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation failed; see error.fields","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberRequest"}}},"description":"Fields to update","required":true}}}}}
```

## List a member's group memberships

> Returns every group membership for the member — each entry links the member to a group and records consent and join/leave dates. Scoped under a group the caller can view.

```json
{"openapi":"3.1.1","info":{"title":"Trooply API","version":"1.0"},"servers":[{"url":"https://api.trooply.co.uk/"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Bearer access token. Generate one from the **Developer** area of your Trooply account and send it as `Authorization: Bearer <token>`.","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"SuccessResponse":{"type":"object","properties":{"data":{},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ResponseMeta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"request_id":{"type":"string","format":"uuid"},"total":{"type":"integer"}}},"MembersMembership":{"type":"object","properties":{"consent_contact":{"type":"string"},"consent_given_at":{"type":"string","format":"date-time"},"consent_given_by":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"group_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"joined_at":{"type":"string","format":"date-time"},"left_at":{"type":"string"},"member_id":{"type":"string","format":"uuid"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"},"status":{"type":"integer"}}}}},"paths":{"/v1/groups/{group_id}/members/{member_id}/memberships":{"get":{"description":"Returns every group membership for the member — each entry links the member to a group and records consent and join/leave dates. Scoped under a group the caller can view.","tags":["members"],"summary":"List a member's group memberships","parameters":[{"schema":{"type":"string","format":"uuid"},"description":"Group ID","name":"group_id","in":"path","required":true},{"schema":{"type":"string","format":"uuid"},"description":"Member ID","name":"member_id","in":"path","required":true}],"responses":{"200":{"description":"The member's group memberships","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MembersMembership"}}}}]}}}},"400":{"description":"A path parameter is not a valid UUID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No such member in this group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Transfer a member to another group

> Moves a member from the source group (in the path) to the \`target\_group\_id\` in the body — for example when a young person moves up from Cubs to Scouts in a different group. Returns the new membership in \`data\`.

```json
{"openapi":"3.1.1","info":{"title":"Trooply API","version":"1.0"},"servers":[{"url":"https://api.trooply.co.uk/"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Bearer access token. Generate one from the **Developer** area of your Trooply account and send it as `Authorization: Bearer <token>`.","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"SuccessResponse":{"type":"object","properties":{"data":{},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ResponseMeta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"request_id":{"type":"string","format":"uuid"},"total":{"type":"integer"}}},"MembersMembership":{"type":"object","properties":{"consent_contact":{"type":"string"},"consent_given_at":{"type":"string","format":"date-time"},"consent_given_by":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"group_id":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"joined_at":{"type":"string","format":"date-time"},"left_at":{"type":"string"},"member_id":{"type":"string","format":"uuid"},"status":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"},"status":{"type":"integer"}}},"TransferRequest":{"type":"object","required":["target_group_id"],"properties":{"target_group_id":{"type":"string","format":"uuid"}}}}},"paths":{"/v1/groups/{group_id}/members/{member_id}/transfer":{"post":{"description":"Moves a member from the source group (in the path) to the `target_group_id` in the body — for example when a young person moves up from Cubs to Scouts in a different group. Returns the new membership in `data`.","tags":["members"],"summary":"Transfer a member to another group","parameters":[{"schema":{"type":"string","format":"uuid"},"description":"Source group ID","name":"group_id","in":"path","required":true},{"schema":{"type":"string","format":"uuid"},"description":"Member ID","name":"member_id","in":"path","required":true}],"responses":{"200":{"description":"The new membership in the target group","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessResponse"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MembersMembership"}}}]}}}},"400":{"description":"A path parameter is not a valid UUID, or malformed JSON body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No such member in the source group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation failed; see error.fields","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRequest"}}},"description":"Transfer target","required":true}}}}}
```

## List a member's activity feed

> Returns a curated, human-readable activity feed for a member, derived from the audit trail of the member, their guardians, and their group memberships. Newest first. Authorized identically to viewing the member: the caller must be able to view a group the member belongs to. The raw audit log, diffs, and internal metadata are never exposed.

```json
{"openapi":"3.1.1","info":{"title":"Trooply API","version":"1.0"},"servers":[{"url":"https://api.trooply.co.uk/"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Bearer access token. Generate one from the **Developer** area of your Trooply account and send it as `Authorization: Bearer <token>`.","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"SuccessResponse":{"type":"object","properties":{"data":{},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ResponseMeta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"request_id":{"type":"string","format":"uuid"},"total":{"type":"integer"}}},"MemberActivityEntry":{"type":"object","properties":{"action":{"type":"string"},"actor_name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"title":{"type":"string"}}},"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"},"status":{"type":"integer"}}}}},"paths":{"/v1/members/{member_id}/activity":{"get":{"description":"Returns a curated, human-readable activity feed for a member, derived from the audit trail of the member, their guardians, and their group memberships. Newest first. Authorized identically to viewing the member: the caller must be able to view a group the member belongs to. The raw audit log, diffs, and internal metadata are never exposed.","tags":["members"],"summary":"List a member's activity feed","parameters":[{"schema":{"type":"string","format":"uuid"},"description":"Member ID","name":"member_id","in":"path","required":true},{"schema":{"type":"integer","default":1,"minimum":1},"description":"Page number, 1-based","name":"page","in":"query"},{"schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"description":"Items per page","name":"per_page","in":"query"}],"responses":{"200":{"description":"The member's activity feed","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MemberActivityEntry"}}}}]}}}},"400":{"description":"member_id is not a valid UUID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"You do not have access to this member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No such member","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.trooply.co.uk/members.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
