Group membership invitation API endpoint Table of contents Endpoints Fields List Add Detail Change Delete Custom actions Endpoints Private portal: https://www.brainstem.org/api/private/users/groupmembershipinvitation/ (needs a token; one record: append <id>/)Public portal: not availableResponse keys: group_membership_invitation (detail, create, update), group_membership_invitations (list)Permissions: see the permissions page Fields [required] fields must be sent on create; [read-only] fields are returned but cannot be set. A nestable relation can be traversed in filters (filter{field.other}) and sideloaded with include[]=field.*; other relations can only be compared with ids (filter{field}=<id>). See the query syntax .
Field Description idUUID string [read-only] user_account_invitationuser id [required] authgroupgroup id [required] new_managerboolean; nullable new_ownerboolean; nullable
List Allowed portals: privateRequest method: GETURL: https://www.brainstem.org/api/private/users/groupmembershipinvitation/Responses: 200 OK; 401 Not authenticated; 403 Not allowedresp = client . load ( ' groupmembershipinvitation ' , load_all = True )
records = resp [ ' group_membership_invitations ' ]
resp = client . load ( 'groupmembershipinvitation' , 'load_all' , true );
records = resp . group_membership_invitations ;
Response example {
"group_membership_invitations" : [
{
"id" : "<id>" ,
"user_account_invitation" : "<user-id>" ,
"authgroup" : "<group-id>" ,
"new_manager" : true ,
"new_owner" : true
}
],
"meta" : {
"page" : 1 ,
"per_page" : 100 ,
"total_results" : 1 ,
"total_pages" : 1
}
}
Add Allowed portals: privateRequest method: POSTURL: https://www.brainstem.org/api/private/users/groupmembershipinvitation/Data: JSON object with at least the required fieldsResponses: 201 Created; 400 Bad request (validation errors per field); 403 Not allowedresp = client . save ( ' groupmembershipinvitation ' , data = { " user_account_invitation " : " <user-id> " , " authgroup " : " <group-id> " })
record = resp . json ()[ ' group_membership_invitation ' ]
created = client . save ( struct ( 'user_account_invitation' , '<user-id>' , 'authgroup' , '<group-id>' ), 'groupmembershipinvitation' );
record = created . group_membership_invitation ;
Detail Allowed portals: privateRequest method: GETURL: https://www.brainstem.org/api/private/users/groupmembershipinvitation/<id>/Responses: 200 OK; 403 Not allowed; 404 Not foundresp = client . load ( ' groupmembershipinvitation ' , id = ' <id> ' )
record = resp . json ()[ ' group_membership_invitation ' ]
out = client . load ( 'groupmembershipinvitation' , 'id' , '<id>' );
record = out . group_membership_invitation ;
Response example {
"group_membership_invitation" : {
"id" : "<id>" ,
"user_account_invitation" : "<user-id>" ,
"authgroup" : "<group-id>" ,
"new_manager" : true ,
"new_owner" : true
}
}
Change Allowed portals: privateRequest method: PATCHURL: https://www.brainstem.org/api/private/users/groupmembershipinvitation/<id>/Data: JSON object with the fields to change. Lists (projects, tags, …) and JSON payloads (details, coordinates) are replaced as a whole: read the record first and send the full list or object.Responses: 200 OK; 400 Bad request; 403 Not allowed; 404 Not foundresp = client . save ( ' groupmembershipinvitation ' , id = ' <id> ' , data = { " new_manager " : True })
client . save ( struct ( 'id' , '<id>' , 'new_manager' , true ), 'groupmembershipinvitation' , 'method' , 'patch' );
Delete Allowed portals: privateRequest method: DELETEURL: https://www.brainstem.org/api/private/users/groupmembershipinvitation/<id>/Responses: 204 Deleted; 400 Still referenced by other records; 403 Not allowed; 404 Not foundresp = client . delete ( ' groupmembershipinvitation ' , id = ' <id> ' )
client . delete ( '<id>' , 'groupmembershipinvitation' );
Custom actions Action Request accept_invitationPOST /api/private/users/groupmembershipinvitation/<id>/accept/ cancel_invitationPOST /api/private/users/groupmembershipinvitation/<id>/cancel/ reject_invitationPOST /api/private/users/groupmembershipinvitation/<id>/reject/